Index: a.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/a.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/a.bat	(working copy)
@@ -0,0 +1,10 @@
+e pu
+e 8043 00
+
+::e hu output/romcode.rom 2000
+::e ku
+::e pu
+e hu output/ramcode.rom 0
+e pu
+e su output/sched.rom
+e cu
\ No newline at end of file
Index: do_sdk.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/do_sdk.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/do_sdk.bat	(working copy)
@@ -0,0 +1,96 @@
+@set FPGA_PATH=fpgajic\fpga
+@set ROM_PATH=.
+@set MV_PATCH=mv\src\yichip
+@set YC_PATCH_FILE=yc_patch_yc1021.h
+@set enc=1
+@set enckey=0000000000000000
+@rem set device_option=rfbqb
+@rem set device_option=mouse
+@rem set device_option=shutter
+@rem set device_option=shutter_dy
+@rem set device_option=hci
+@rem set device_option=antilost
+@rem set device_option=dongle
+@rem set device_option=module
+@set device_option=keyboard
+@rem set device_option=car
+@rem set device_option=remote_car
+@rem set device_option=mesh
+@rem set device_option=otp
+@rem set device_option=flippen
+@echo off
+
+set now_path=%~dp0
+set util_path=%now_path%util
+
+setlocal enabledelayedexpansion
+copy program\patch_sdk.prog + program\patch.prog  output\bt_program23.meta
+copy format\rom.format + format\labels.format + format\command.format  output\bt_format.meta > nul
+
+::perl util/memalloc.pl output/bt_format.meta
+
+if "%device_option%" equ "hci" (
+  copy sched\hci_boot.dat output\sched.rom
+) else if "%device_option%" equ "keyboard" (
+  copy sched\keyboard.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "mouse" (
+  copy sched\mouse.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "module" (
+  copy sched\DM_module.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "shutter" (
+  copy sched\shutter.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "shutter_dy" (
+  copy sched\shutter_dy.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "antilost" (
+  copy sched\antilost.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "dongle" (
+  copy sched\dongle.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "car" (
+  copy sched\car.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "remote_car" (
+  copy sched\remote_car.dat + sched\1305.dat output\sched.rom
+ ) else if "%device_option%" equ "mesh" (
+  copy sched\1305.dat +sched\mesh.dat output\sched.rom
+) else if "%device_option%" equ "otp" (
+  copy sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "flippen" (
+  copy sched\mouse.dat + sched\flippen.dat + sched\1305.dat output\sched.rom
+)else  (
+
+cd ..
+echo **********************************
+echo Error: illegal device_option !
+echo **********************************
+goto end
+) 
+
+perl util/mergepatch.pl 
+
+cd output
+osiuasm bt_program23 -O-W
+
+%util_path%/geneep  -n -s -i
+
+echo create auth rom
+perl ../util/mergepatch.pl mouse_ble_att_list usb_kbdata_vendor_define usb_kbdata usb_msdata usb_devicedata usb_confdata ble_shutter_gatt_list ble_shutter_key_value_list ble_car_att_list sha256 
+perl ../util/romcrc.pl romcode.rom
+perl  ../util/mergepatch.pl otp
+
+
+if "%device_option%" equ "keyboard" (
+cd ..\output
+copy eeprom.dat ..\util\eeprom.dat
+cd ..\util
+eeprom2fulleeprom.exe eeprom.dat 64>compare2.dat
+crc16.exe compare2.dat 2 >..\output\eeprom.dat
+del eeprom.dat
+del compare2.dat
+cd ..\output
+copy eeprom.dat ..\output\flash.dat 
+)
+
+
+:end
+
+
+
Index: format/command.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/format/command.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/format/command.format	(working copy)
@@ -0,0 +1,1446 @@
+
+/* Parse Command:
+TX: take bits from tx fifo, jam it into shift and a destination (rf,bucket)
+RX: take bits from demod,  jam it into shift and a destination (acl,sco,bucket) */
+
+/* Inject Command:
+TX: 0 into shift, send tail of shift into a destination (rf,bucket)
+RX: 0 into shift, send tail of shift into a destination (acl,sco,bucket) */
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ /* High 5 bytes of channel map */
+format
+  ! 15 pulse   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   /* set flag to 0 */
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  /* set selected bit of reg to 0 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  /* set selected bit of reg to 1 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          /* alu op demux */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  /* set selected bit of the reg to the polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  /* set the selected bit of the reg to the opposite polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    /* invert the selected bit of the reg */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            /* this is alu op */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      /* demux the lowest 4 bit of queue and OR it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 1 */
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      /* demux the lowest 4 bit of queue and AND it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 0 */
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   /* set the bit in reg index by queue to same as flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   /* set the bit in the reg index by queue to opposite of flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      /* flip the bit in reg index by queue */
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       /* take bits out of source (sco_tx,tx_buffer,rx-elas) into pdata and dest (sco_rx,rx_fifo,tx-elas) */
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      /* voice, data, demod */
+  [2] 0
+  [6] 0    
+  [2] 0           /* parse or inject */ 
+  [4] dest        /* acl, sco, mod, bucket */
+  [9] immediate   /* number of bits to parse off */
+end
+
+format
+  ! 1 inject      /* shift data from pdata into destination (tx-elas,rx_fifo,sco_rx) */
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] immediate   /* number of bits to be injected */
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       /* contain the number of bits to inject */
+  [6] 3
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] 0 
+end
+
+format
+  ! 1 stuff  /* automatic parse, stuff_counter decrement on every bit until hits zero */
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] immediate
+end
+
+format    /* force whatever is on shift_reg to regsiters */
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    /* alu operation add */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  /* pdata */
+  [6] 1   /* alu add */
+  [6] -1  /* back to pdata */
+  [9] immediate
+end
+
+format    /* force immediate value into registers */
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    /* pdata & regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] 0
+end
+  
+
+format    /* and whatever is in shiftreg with reg */
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   /* jump to location stored in reg */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   /* alu operation copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   /* copy the register content thru alu to shift register, not prealigned like preload */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] -1  /* pdata */
+  [9] 0
+end
+
+format
+  ! 3 icopy     /* copy the shift register lsb content directly to register, not aligned */
+  % regw
+  [5] opcode
+  [6] -1  /* pdata */
+  [6]  4  /* alu copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 add
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 iadd       /* regr + pdata -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          /* immediate - regr -> regw */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       /* pdata - regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 flip
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 iflip  /* use shift register as immediate to do xor */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 xor
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 3 xor_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 ixor  /* pdata xor regr and store result in regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 invert
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 8
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 pinvert    /* invert pdata into itself */
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 /* regr div immediate div */
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           /* pdata div regr data ready at most after 41 nops */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 idiv48           /* pdata div regr data 48bit */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 17                   /* generate diven pulse to div */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            /* harvest div remainder */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 quotient             /* harvest div quotient */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 15
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 6
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 22
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 18
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 35
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 25
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 34
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift32
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 30
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 7
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 23
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 26
+  [6] regw
+  [9] 0
+end
+
+  
+format
+  ! 3 lshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 19
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 36
+  [6] regw
+  [9] 0
+end
+  
+
+format
+  ! 3 lshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 32
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 bcrc         // calculate regr's byte crc value into pdata
+  % regr
+  [5] opcode
+  [6] regr
+  [6] 24
+  [6] 63
+  [9] 0
+end
+
+
+format
+  ! 3 random               /* random number into regw */
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     /* bit reverse within a byte */
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    /* priority encode reg into regw, lsb is the top priority, ie, priority(8'b00010000) = 4 */
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   /* set a section of pdata */
+  % section    /* 0 sets 17:0 of pdata with set_data, 1 sets 35:18, 2 sets 53:36, 3 sets 71:54 */
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   /* load stuff into pdata according to fhs format, check us.v */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  /* load register with pdata content, according to fhs format, check us.v */
+  ! 10 ialigned   /* all bits are in position */
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format  /* load register to another according to fhs format */
+  ! 10 aligned
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 4 branch
+  % addr
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 call
+  % addr
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 rtn
+  % flag
+  [5] opcode
+  [6] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 63
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 2
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        /* write pdata to memory, address from regaddr */
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c istoret        /* write temp to memory, address from regaddr */
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 2            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d crc         // read from memory, count from loopcnt, put crc result into pdata 
+  % addr
+  [5] opcode
+  [6] 63
+  [6] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         /* read from memory, address from reg, count from loopcnt, put crc result into pdata */
+  % reg
+  [5] opcode
+  [6] 63
+  [15] 0
+  [6] reg
+end
+
+
+format
+  ! 0x0c storer          /* write reg to memory, address from immediate then mem_ptr */
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+
+format
+  ! 0x1c istorer        /* write regr to memory, address from regaddr */
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x1c lstorer        /* write regr to memory, address from regaddr, length from loopcnt */
+  % regr
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstore        /* write pdata to memory, address from regaddr, length from loopcnt */
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstorew        /* 32bit write pdata to memory, address from regaddr, length from loopcnt */
+  % regaddr
+  [5] opcode
+  [6] 63
+  [6] 42
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d fetchr          /* read reg from memory, address from immediate then mem_ptr */
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetchr        /* read regr from memory, address from regaddr */
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [16] addr
+  [8] immediate
+end
+
+format			/* 0x242... */
+  ! 4 nbranch
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 ncall
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 nrtn
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 4 nop
+  % addr  /* no-op for addr+2 clocks */
+  [5] opcode
+  [6] 0     
+  [6] 0     /* always */ 
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    /* always */
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   /* quit if 1. flag is true 2, regr time up 3, found sync,(cond_true) */
+  % reg          /* expire counter to check against */
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           /* correlate */
+  [9] 0           
+end
+
+format
+  ! 5 compare   /* sets cond flag,  if reg equals immediate */
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   /* sets cond flag,  if reg equals pdata */
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   /* sets cond. flag, if reg equals LS half of shift reg with MS half of reg being mask */
+  ! 5 iverify
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 2
+  [18] 0
+end
+
+format
+  ! 0x15 qisolate1
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] -1
+end
+
+format
+  ! 0x15 qisolate0
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] 0
+end
+
+	/* REVAB bug: cannot access bit above 35 */
+format
+  ! 5 isolate1
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] -1
+  [9] addr
+end
+
+format
+  ! 5 isolate0
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] 0
+  [9] addr
+end
+
+format
+  ! 11 setarg
+  % immediate
+  [5] opcode
+  [27] immediate
+end
+
+format
+  ! 0x1b arg
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [21] immediate
+end
+
+  
+format
+  ! 0 sleep
+  [5] opcode
+  [27] 0
+end
+
+format
+  ! 0 snooze
+  [5] opcode
+  [6] -1
+  [21] 0
+end
+
+format
+  ! 0 revision
+  % rev_num
+  [5] opcode
+  [27] rev_num
+end
+
+format
+  ! 0x18 loop   /* branch when loopcnt is NOT zero, and decrease loopcnt */
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   /* branch when pdata is equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   /* branch when pdata is NOT equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   /* return when pdata is equal to immediate */
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   /* return when pdata is NOT equal to immediate */
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   /* branch when pdata's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   /* branch when pdata's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 8
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 8	bpatch
+  % imme
+  % addr
+  [5] opcode
+  [4] 9
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 8	bpatchx
+  % imme
+  % addr
+  [5] opcode
+  [4] 14
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark1   /* branch when mark's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   /* branch when mark's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 3 mul32                  /* immediate mult regr */ 
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32           /* pdata mult regr 32x32=64bit */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 imults           /* pdata mult regr 32x32=64bit, signed */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 16
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          /* SHA256 Sx operation, immediate is Sx */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	/* regext[0] <- regext[7], regext[1] <- regext[0], regext[2] <- regext[1] ... */
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 adpcm         // encode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 43
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 pcm         // decode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 44
+  [6] regw
+  [9] 0
+end
+
+
Index: format/labels.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/format/labels.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/format/labels.format	(working copy)
@@ -0,0 +1,4128 @@
+0x2000 start
+0x2001 soft_reset
+0x200e main_loop
+0x2018 connection_dispatch
+0x201d connection_incontext
+0x2025 connection_nosniff
+0x202a idle_dispatch
+0x2031 idle_exit
+0x2033 idle_le_create_conn
+0x2036 context_load
+0x2041 context_save
+0x2047 context_get_next
+0x2049 context_get_next_loop
+0x204d context_get_next_cont
+0x2054 context_get_next_sniff
+0x2056 context_new
+0x205d context_check_idle
+0x205f context_search_conn_handle
+0x2060 context_search_conn_handle2
+0x2062 context_search_plap
+0x2064 context_search_plap2
+0x2066 context_search_insniff
+0x2068 context_search_sniff_window
+0x2069 context_search
+0x206c context_search_loop
+0x206e context_search_next
+0x2073 context_search_empty
+0x2075 context_search_lap
+0x2076 context_search_lap_cont
+0x207b context_search_handle
+0x2081 context_search_sniff
+0x2082 context_search_sniff_loop
+0x2090 context_search_sniff_sc
+0x2093 context_search_meet1
+0x2094 context_search_meet
+0x2097 context_search_sniff_miss
+0x209d sign_pdata_temp
+0x20a7 sign_pdata_temp_p0
+0x20ad context_check_inconn
+0x20af context_check_a_wack
+0x20b4 context_get_anchor
+0x20c0 context_next_anchor
+0x20c7 context_search_window
+0x20cf end_of_packet
+0x20dc sniff_check_window
+0x20e4 calc_slot_offset
+0x20ee calc_bt_portion
+0x20f0 calc_slot_offset_loop
+0x20f2 calc_skip_bt
+0x20f7 calc_clke_offset
+0x2105 calc_clke_pos
+0x2107 calc_clke
+0x2109 calc_clke2
+0x2113 calc_clke_pos2
+0x2115 calc_clke_pos_adj
+0x2117 qsetxor
+0x211c qset1_p
+0x211d qset_start
+0x211e qset_p
+0x2122 rx_dcoc_avg
+0x2123 btdma
+0x212f rx_dcoc_loop
+0x2135 rx_dcoc
+0x2148 rx_dcoc_loop2
+0x2155 shutdown_radio
+0x2164 set_sync_on
+0x2173 set_freq_rx
+0x217d aac_res_lookup
+0x218b aac_res_lookup_end
+0x218d set_lemode_2m_16m
+0x2190 set_lemode_1m_16m
+0x2193 set_lemode
+0x219b set_lemode_2m
+0x21a6 set_lemode_1m
+0x21aa rf_rx_enable
+0x21be rf_rx_agc_set
+0x21c5 rf_rx_enable_no_soft_agc
+0x21ca set_freq_tx_int
+0x21d4 calc_freq
+0x21ee ghp_lookup
+0x21f4 ghp_1m
+0x21ff set_freq_tx
+0x2202 txon
+0x2212 set_tx_power
+0x221d set_tx_power_0db
+0x2220 set_tx_power_8a63_28
+0x2222 set_tx_power_3db
+0x2225 set_tx_power_8a63_2f
+0x2227 set_tx_power_5db
+0x222b set_tx_power_7db
+0x222f set_tx_power_10db
+0x2234 set_tx_power_f3db
+0x2238 set_tx_power_f5db
+0x223c set_tx_power_f10db
+0x2240 set_tx_power_f20db
+0x2244 initialize_radio
+0x2245 initialize_radio_wait
+0x2249 initialize_radio_loop
+0x224f initialize_radio_cont
+0x2266 initialize_radio2
+0x2276 initialize_radio_16m
+0x2281 set_xtal_cap
+0x2287 rfpll_aac_ghpc
+0x2293 rfpll_aac_ghpc_once
+0x2296 rfpll_cal_loop
+0x229d dpll_on
+0x22a3 dpll_on_24m
+0x22ab aac_ghpc
+0x22af wait_cal_done
+0x22be aac_ghpc_1m
+0x22c5 read_cal_result
+0x22cb dpll_ring_ibias_calc
+0x22cd save_rssi
+0x22e1 save_rssi_store
+0x22e3 byte_sign_extern
+0x22e8 rssi_hex2dec
+0x22ec bcd
+0x22f3 gain_control
+0x2312 add_negative
+0x231a gain_increase
+0x231e gain_descend
+0x2321 set_rx_gain2
+0x2323 set_rx_gain0
+0x2325 set_rx_gain1
+0x2327 ahead_window
+0x2336 get_clk
+0x233a get_clkbt
+0x233e assert
+0x2340 sleep
+0x2343 sleep_loop
+0x2347 init_param
+0x2369 lpmstate
+0x2377 lpmwake
+0x2383 power_up
+0x2384 boot_load
+0x2387 lpm_poweron_retmem
+0x2397 xtal_fast_wake
+0x239c lpm_write_lock
+0x23a5 lpm_write_ice_disable
+0x23a9 lpm_write_ice_enable
+0x23ad lpm_preon_counter
+0x23af lpm_write_3bytes
+0x23b1 lpm_write_mpu_s0
+0x23b2 lpm_write_dword
+0x23b3 lpm_write_loop
+0x23b8 lpm_write_mpu_s1
+0x23ba lpm_disable_exen_output
+0x23be lpm_disable_io_dozed
+0x23c2 lpm_save_sel_hv
+0x23c3 lpm_write_sel_hv
+0x23c4 lpm_write_wait
+0x23c7 lpm_write_io_vsel
+0x23c9 lpm_load_context
+0x23d7 lpm_save_context
+0x23e1 lpm_write_gpio_wakeup
+0x23e5 lpm_write_gpio_loop
+0x23eb lpm_write_gpio_loop_next
+0x23f0 lpo_calibration
+0x23f7 lpo_cal_inited
+0x23fc lpm_doze
+0x23ff lpm_hibernate
+0x2406 lpm_sleep
+0x2409 lpm_sleep_skip_cb_function
+0x2417 lpm_sleep_loop
+0x241d lpm_enter_sleep
+0x2421 lpm_recover_clk
+0x242a lpm_recover_xtal
+0x242c lpm_recover_timeout
+0x2449 lpm_adjust_clk
+0x245d lpm_adjust_positive
+0x2460 lpm_clear_counter
+0x2463 lpm_dispatch
+0x246d lpm_dispatch_next
+0x248b lpm_dispatch_sleep
+0x248c lpm_dispatch_lpo
+0x2494 lpm_dispatch_unconn
+0x2498 lpm_unconn_cont
+0x249a lpm_sleep_btclk
+0x249f lpm_mult_wait_timeout
+0x24a9 lpm_match
+0x24ae lpm_lost
+0x24b7 lpm_mult_short
+0x24bb lpm_mult_long
+0x24be lpm_get_wake_lock
+0x24c2 lpm_put_wake_lock
+0x24c6 lpm_check_wake_lock
+0x24d8 lpm_uart_wake_lock
+0x24dd le_init_conn
+0x24f0 le_init_master
+0x24fc le_init_slave
+0x250d le_conn_dispatch
+0x2516 le_master_dispatch
+0x2524 le_master_disconn
+0x2525 le_disable_master
+0x2527 le_slave_dispatch
+0x2538 le_slave_crc_fail
+0x2538 le_slave_match
+0x2547 le_slave_cont
+0x254d le_slave_unsync
+0x2551 le_check_md
+0x2555 le_slave_more_data
+0x255b le_slave_disconn
+0x255b le_disconnect
+0x2562 le_clear_connection_info
+0x2567 le_clear_pairing_state
+0x256c le_got_first_packet
+0x2579 le_enable_phy_by_pdata
+0x257b le_enable_phy_by_pdata1
+0x2582 le_enable_2m
+0x2585 le_enable_coded_s2
+0x2585 le_enable_coded
+0x2589 le_enable_coded_s8
+0x258d le_enable
+0x2591 le_disable
+0x2597 le_prep
+0x259d le_prep_next
+0x25a1 le_rx_setfreq
+0x25a2 le_rf_rx_enable
+0x25a6 le_tx_setfreq
+0x25a8 le_tx_setfreq0
+0x25aa le_setfreq
+0x25b7 le_ctf_normal
+0x25ba le_ctf_low
+0x25bd le_ctf_test
+0x25c0 le_sca_map
+0x25d0 le_setup
+0x25d9 le_setup_master
+0x25de le_context_nextevent
+0x25ef le_context_nexthop
+0x25f7 le_nexthop_nowrap
+0x25f9 le_calc_channel_map
+0x25fd le_count_channels_loop
+0x25ff le_count_channels_notused
+0x2605 le_map_channel
+0x260b le_map_channel_next
+0x2610 le_map_channel_cont
+0x2612 le_map_channel_loop
+0x2615 le_map_channel_skip
+0x261a le_map_channel_end
+0x261d le_wait_tx
+0x2620 le_wait_master
+0x2623 le_receive_adv
+0x2627 le_receive_slave
+0x262d le_receive_packet
+0x262e le_receive_rxon
+0x2635 le_receive_nolr
+0x263e le_receive_on_attempt
+0x264b le_receive_skip
+0x2657 le_rx_loop
+0x265c le_rx_dec
+0x2668 le_rx_dec_loop
+0x266f le_rx_dec_loop_end
+0x2671 le_rx_nopayload
+0x2683 le_rx_match
+0x2686 le_crc_fail_tx
+0x268d le_match_set_sync_on
+0x268f le_match_set_txfreq
+0x2692 le_dec_init
+0x2697 le_dec_start
+0x26ab le_pcnt_rx_sub1
+0x26b0 le_pcnt_rx_sub1_0
+0x26b5 le_dec
+0x26bd le_dec_end
+0x26c6 le_retransmit_end_of_packet
+0x26c9 le_crc_fail
+0x26ce le_unsync_end
+0x26ce le_crc_fail_consecutive
+0x26d0 le_end_of_packet
+0x26d3 calc_clke_all_modem
+0x26dd calc_clke_all_modem_1
+0x26e3 calc_clke_modem_coded
+0x26e7 calc_clke_modem_2m
+0x26eb le_set_until_tx_timer
+0x26f2 le_set_until_tx_timer_rx_lr
+0x26f4 le_set_until_tx_timer_rx_1m
+0x26f5 le_set_until_tx_timer_rx_2m
+0x26f7 le_set_until_tx_timer_rx_coded_s2
+0x26fa le_set_until_tx_timer_rx_coded_s8
+0x26fc le_set_until_tx_timer_rx_coded
+0x26ff le_calc_stop_watch
+0x2707 le_transmit_receive_sifs_without_change_mode
+0x270e le_transmit_receive_sifs
+0x2712 le_transmit_receive_sifs_notx
+0x271c le_transmit_norx
+0x271f le_transmit
+0x272f le_transmit_packet
+0x273c le_transmit_packet_not_enc
+0x273d le_tr_loop
+0x2740 le_tr_nopayload
+0x2747 le_transmit_skip
+0x274e le_check_start_pause_enc
+0x2757 le_transmit_packet_enc
+0x275b le_transmit_packet_enc_loop
+0x2762 le_transmit_lr
+0x2763 le_transmit_lr_preamble_loop
+0x276d le_transmit_lr_s2
+0x2771 le_transmit_lr_s8
+0x2774 le_transmit_2m
+0x2780 le_update_param
+0x2784 le_update_param_ahead1_cb
+0x279a le_update_param_cb
+0x27a2 le_update_channel_map
+0x27a6 le_update_channel_map_cb
+0x27ab le_update_phy
+0x27af le_update_phy_cb
+0x27bc le_update_phy_cb_m2s
+0x27c4 le_update_phy_cb_m2s_no_change
+0x27ca le_update_phy_cb_s2m
+0x27d3 le_update_phy_cb_s2m_no_change
+0x27d9 le_check_update_flag
+0x27e7 le_update_ahead1
+0x27e9 le_update
+0x27ee le_check_update_small
+0x27fa le_check_retransmit
+0x2801 le_acknowledge
+0x281a le_ack_unenc
+0x2828 le_check_wak
+0x2835 le_set_enc
+0x283a le_clear_enc
+0x2846 le_scan_check_sender_addr_type
+0x284b le_get_master_rx_max
+0x284f le_prepare_tx
+0x2870 le_check_tx_md
+0x2877 le_check_continue
+0x2880 le_set_md
+0x2882 le_clear_md
+0x2884 le_update_tx_type
+0x2888 le_att_check_notification_enable
+0x2894 le_send_empty
+0x2896 le_send_packet
+0x28a6 le_send_no_txlen
+0x28ac le_send_packet_enc
+0x28ae get_lpm_wake_ble_rx_lock
+0x28b0 put_lpm_wake_ble_rx_lock
+0x28b2 le_parse
+0x28c0 le_parse_l2cap
+0x28cd le_check_l2cap_complete
+0x28d1 le_check_l2cap_cid_legal
+0x28dc le_check_l2cap_llid_start
+0x28ef le_check_l2cap_continue_legal
+0x28f3 le_check_l2cap_llid_continue
+0x2908 le_writeatt_cb
+0x290a le_supervision_update
+0x2914 le_supervision_flush
+0x2917 le_receive_window_size
+0x2931 le_modified_name
+0x2934 le_modified_name_att_list
+0x2945 le_name_length_longer_than_att
+0x2948 le_modified_name_adv
+0x2955 le_modified_name_adv_and_scan
+0x2967 le_modified_name_adv_and_scan_store_data
+0x296d le_modified_name_adv_and_scan_name_overflow
+0x296f le_modified_name_adv_loop
+0x297a le_modified_name_adv_loop2
+0x297e le_modified_name_adv_found_name
+0x2980 memcpy_empty
+0x2984 le_lpm_set_mult
+0x2988 le_lpm_set_mult_attempt
+0x2997 le_lpm_lost
+0x29a0 le_set_config_fixed_tk
+0x29a2 le_clr_config_fixed_tk
+0x29a4 le_set_config_fixed_ltk
+0x29a6 le_clr_config_fixed_ltk
+0x29a8 le_set_config_more_data
+0x29aa le_clr_config_more_data
+0x29ac le_set_config_read_authentication
+0x29ae le_clr_config_read_authentication
+0x29b0 le_set_config_write_authentication
+0x29b2 le_clr_config_write_authentication
+0x29b4 le_set_config_short_mult
+0x29b5 le_set_config
+0x29b9 le_clr_config_short_mult
+0x29ba le_clr_config
+0x29be le_set_fixed_ltk
+0x29ca le_set_justwork
+0x29d0 le_fifo_malloc_tx_empty
+0x29d3 le_fifo_malloc_tx_ll
+0x29d9 le_fifo_malloc_tx_l2cap
+0x29e3 le_fifo_malloc_tx
+0x29ee le_fifo_get_first_tx_ptr
+0x29f2 le_fifo_get_second_tx_ptr
+0x29f4 le_fifo_get_last_tx_ptr
+0x29f7 le_fifo_get_last_tx_ptr0
+0x29f9 le_fifo_get_first_l2cap_ptr
+0x29fc le_fifo_get_first_att_ptr
+0x29ff le_fifo_get_last_att_ptr
+0x2a02 le_fifo_get_last_l2cap_ptr
+0x2a05 le_fifo_check_full
+0x2a06 le_fifo_check_nearly_full
+0x2a07 le_fifo_check_empty
+0x2a08 le_fifo_release_first_node
+0x2a09 le_set_dle
+0x2a0b le_set_phys
+0x2a0e le_set_rx_phy
+0x2a10 le_set_tx_phy
+0x2a11 le_set_phy_common
+0x2a16 le_set_feature_2m_phy
+0x2a18 le_set_feature_coded_phy
+0x2a1a le_set_feature_data_packet_length_extension
+0x2a1b le_set_feature
+0x2a1f le_set_fixed_ltk_justwork
+0x2a23 le_advertising_dispatch
+0x2a2d le_scan
+0x2a4c le_wait_adv
+0x2a53 le_create_conn
+0x2a66 le_connect_request
+0x2a71 le_con_req_hop_retry
+0x2aad le_adv
+0x2ab2 le_adv_loop
+0x2ac4 le_adv_not_match
+0x2ad4 le_send_adv_protect_txbuf
+0x2ad7 le_send_adv_recover_txbuf
+0x2ada le_init_adv
+0x2adc le_adv_access
+0x2ae3 le_send_adv_ind
+0x2af4 le_send_adv_direct_ind
+0x2afa le_send_adv_transmit
+0x2b01 le_send_scan_request
+0x2b12 le_send_scan_response
+0x2b25 le_parse_connect_req
+0x2b4d le_next_adv_channel
+0x2b52 le_next_adv_channel_curr_channel_39
+0x2b57 set_le_next_adv_channel_39
+0x2b5a set_le_adv_channel_map_temp
+0x2b5c le_next_adv_channel_curr_channel_37
+0x2b61 set_le_next_adv_channel_37
+0x2b65 le_next_adv_channel_curr_channel_38
+0x2b6a set_le_next_adv_channel_38
+0x2b6e le_parse_att
+0x2b76 le_parse_att2
+0x2b84 le_send_att_exchange_mtu_requset
+0x2b87 le_send_att_exchange_mtu_common
+0x2b8b le_parse_att_exchange_mtu_request
+0x2b8c le_send_att_exchange_mtu_response
+0x2b90 le_parse_att_exchange_mtu_response
+0x2b93 le_parse_att_find_information_request
+0x2b96 le_att_handle_inrange
+0x2ba1 le_send_att_find_information_response
+0x2ba3 le_send_att_find_information_res_loop
+0x2bba le_send_att_find_information_res_uuid16
+0x2bbd le_send_att_find_information_res_uuid128
+0x2bc1 le_send_att_find_information_res_store_info2
+0x2bc6 le_send_att_find_information_res_store_info
+0x2bcf le_send_att_find_information_res_cont
+0x2bd1 le_send_att_find_information_res_next
+0x2bd3 le_send_att_find_information_res_end
+0x2bd5 le_parse_att_find_by_type_value_request
+0x2bde le_start_end_handle_check_1
+0x2be5 le_start_end_handle_check_1_fail
+0x2be8 le_send_att_find_by_type_value_response
+0x2bef le_send_att_find_by_type_value_res_primary
+0x2bf4 le_send_att_find_primary_search_loop
+0x2c04 le_send_att_find_primary_search_loop1
+0x2c08 le_send_att_error_response_notfound2
+0x2c0b le_send_att_find_primary_search_end_start_handle_found
+0x2c13 le_send_att_find_primary_search_end_ending_handle_found
+0x2c19 le_send_att_find_primary_search_end
+0x2c22 le_parse_att_read_by_type_request
+0x2c25 le_send_att_read_by_type_response
+0x2c34 le_send_att_read_by_type_response_loop
+0x2c55 le_send_att_read_by_type_response_next_handle
+0x2c57 le_send_att_read_by_type_response_end
+0x2c59 le_send_att_read_by_type_res_found_next
+0x2c67 le_send_att_read_by_type_write_properties
+0x2c6e le_send_att_read_by_type_write_uuid
+0x2c7a le_send_att_read_by_type_res_not_characteristic
+0x2c90 le_send_att_read_by_type_res_device_name
+0x2ca5 le_init_attlist_search
+0x2cad le_att_get_handle_ptr
+0x2cb0 le_att_get_handle_ptr2
+0x2cb3 le_att_get_handle_loop1
+0x2cbb le_att_get_handle_ptr_found
+0x2cbb le_att_contr_add_len
+0x2cbe le_att_get_uuid_ptr
+0x2cc1 le_att_get_uuid_loop
+0x2cd1 le_att_get_uuid_ptr_next
+0x2cd4 le_att_get_last_handle
+0x2cd8 le_att_get_last_handle_loop
+0x2ce0 le_att_get_handle_info_from_ptr
+0x2ce2 le_att_get_handle_info
+0x2ce4 le_att_get_handle_info_fast
+0x2ce5 le_att_get_handle_loop
+0x2ced le_att_unfind_handle
+0x2cee le_att_finded_handle
+0x2cf7 le_parse_att_read_request
+0x2cfb le_send_att_read_response
+0x2d0b le_send_att_read_response_less
+0x2d14 le_send_device_name
+0x2d20 le_send_att_read_response_check_auth
+0x2d24 le_send_att_read_response_error_insufficient_auth
+0x2d26 le_send_att_read_response_check_handle
+0x2d2a le_parse_att_read_blob_request
+0x2d2e le_send_att_read_blob_response
+0x2d37 le_send_att_read_blob_response_less
+0x2d41 le_parse_att_read_by_group_type_request
+0x2d44 le_send_att_read_by_group_type_response
+0x2d4b le_send_att_read_by_group_type_response_loop
+0x2d68 le_send_att_read_by_group_type_store_write_record
+0x2d6e le_send_att_read_by_group_type_store_record
+0x2d72 le_send_att_read_by_group_type_next_handle
+0x2d74 le_send_att_read_by_type_res_check_pair_length_type
+0x2d76 le_send_att_read_by_group_type_check_pair_length_type
+0x2d7a le_send_att_read_by_group_type_check_pair_length_type_16byte
+0x2d7c le_send_att_read_by_group_type_end0
+0x2d7f le_send_att_read_by_group_type_end1
+0x2d83 le_send_att_read_by_group_type_end_common
+0x2d86 le_parse_att_write_request
+0x2d8a le_send_att_write_response_check_auth
+0x2d9a le_send_att_write_response
+0x2d9f le_send_att_write_response_check_handle
+0x2da3 le_send_att_write_response_error_invalid_handle
+0x2da5 le_check_encrypt_state
+0x2dac le_parse_att_prepare_write_request
+0x2db1 le_send_att_prepare_write_response
+0x2dbf le_parse_att_execute_write_request
+0x2dbf le_send_att_execute_write_response
+0x2dc4 le_parse_handle_value_confirmation
+0x2dc8 le_parse_att_write_command
+0x2dcc le_att_malloc_tx_notify
+0x2dd5 le_att_malloc_tx_indication
+0x2de1 le_send_att_error_response_notfound
+0x2de3 le_send_att_error_response
+0x2dee le_fifo_malloc_tx_l2cap_gatt
+0x2df1 le_att_next_handle
+0x2df5 le_att_check_handle_end
+0x2df9 le_att_same_type
+0x2dfc le_att_check_same_common
+0x2e02 le_store_att_record
+0x2e08 le_write_att_record
+0x2e0e le_write_att_record_common
+0x2e12 le_send_auto_len_by_mem
+0x2e1f le_get_search_handle_start_end_common
+0x2e24 le_get_search_max_mtu_data
+0x2e28 le_get_search_att_type
+0x2e2b le_get_search_common
+0x2e2d le_get_search_common2
+0x2e31 le_parse_writing_attribute_start
+0x2e3f le_clear_l2cap_att_states_deal_with_contiune_packet
+0x2e43 le_parse_writing_attribute_continue
+0x2e4c le_parse_attribute_write_request
+0x2e4e le_send_attribute_write_response_check_auth
+0x2e51 le_parse_attribute_write_command
+0x2e55 le_parse_attribute_check_complete_packet_init
+0x2e5c le_parse_l2cap_continue_common
+0x2e62 le_parse_attribute_check_complete_packet
+0x2e68 le_parse_signaling
+0x2e6d le_l2cap_parse_conn_parameter_update_rsp
+0x2e71 le_l2cap_tx_update_req
+0x2e79 le_fifo_malloc_tx_l2cap_signaling
+0x2e81 le_l2cap_update_signaling_identifier
+0x2e85 le_l2cap_reset_signaling_identifier
+0x2e87 le_pairing_mode_init
+0x2e8f le_set_pairing_mode_secure_justwork
+0x2e91 le_set_pairing_mode_secure_numeric
+0x2e94 le_set_pairing_mode_secure_passkey
+0x2e96 le_set_no_pairing
+0x2e97 le_set_noinputnooutput
+0x2e99 le_set_pairing_mode_lagacy_just_work
+0x2e9b le_set_pairing_mode_lagacy_passkey
+0x2e9c le_set_displayonly
+0x2e9e le_secure_connection_enable
+0x2ea2 le_secure_connection_disable
+0x2ea6 le_parse_smp
+0x2eb3 le_send_smp_security_request
+0x2eba le_parse_smp_pairing_request
+0x2ec6 le_parse_smp_pairing_request2
+0x2ece le_set_tk_0
+0x2ed1 le_parse_smp_pairing_req_passkey
+0x2ed3 le_genernate_tk
+0x2eda le_parse_smp_pairing_req_fixed_passkey
+0x2edc le_send_smp_pairing_response
+0x2ee1 le_parse_smp_pairing_confirm
+0x2ee9 le_parse_smp_pairing_confirm_passkey_res_input
+0x2eeb le_parse_smp_pairing_confirm_secure_passkey
+0x2eee le_parse_smp_pairing_confirm_sc_passkey_res_input
+0x2ef1 le_send_smp_pairing_confirm
+0x2efa le_send_smp_pairing_confirm_sc
+0x2f02 le_parse_smp_pairing_random
+0x2f08 le_send_pairing_confirm_value_failed
+0x2f09 le_send_pairing_failed
+0x2f0f le_parse_smp_pairing_failed
+0x2f15 le_smp_pairing_fail_reason_not_support_pairing
+0x2f17 le_parse_smp_pairing_random_sc
+0x2f23 le_parse_smp_pairing_random_sc_passkey
+0x2f2c le_parse_smp_pairing_random_success
+0x2f31 le_send_smp_pairing_random
+0x2f37 le_send_smp_encryption_information
+0x2f3f le_send_fixed_ltk
+0x2f41 le_send_smp_master_identification
+0x2f4d le_send_smp_identity_information
+0x2f55 le_send_smp_identity_address_information
+0x2f5e le_send_pairing_fail_unspecified_reason
+0x2f60 le_check_init_key_distribution
+0x2f64 le_parse_smp_identity_information
+0x2f6e le_check_master_addr_type
+0x2f74 le_parse_smp_identity_address_information
+0x2f78 le_parse_smp_signing_information
+0x2f78 le_parse_smp_security_request
+0x2f79 le_parse_smp_public_key
+0x2f7e le_parse_smp_dhkey_check
+0x2f83 le_send_smp_pairing_public_key
+0x2f89 le_send_smp_pairing_dhkey_check
+0x2f8f le_check_paring_time
+0x2f98 le_pairing_sm
+0x2fa5 le_pairing_sm_null
+0x2fa5 le_pairing_sm_send_sec_req
+0x2fab le_pairing_sm_start
+0x2fad le_pairing_sm_rcv_pairing_req
+0x2fb1 le_pairing_sm_after_auth
+0x2fb4 le_pairing_sm_after_auth_start_enc
+0x2fb8 le_pairing_sm_after_auth_start_enc_common
+0x2fbf le_pairing_sm_after_auth_start_enc_sc
+0x2fc1 le_pairng_sm_send_enc_information
+0x2fc3 le_pairng_sm_send_master_indentification
+0x2fca le_pairng_sm_send_indentity_information
+0x2fcc le_parse_start_enc_rsp_after_auth_end
+0x2fd3 le_secure_connect_sm
+0x2fe1 le_sc_state_clear
+0x2fe5 le_sc_sm_passkey_wait_confirm
+0x2fef le_sc_sm_wait_confirm_gkey
+0x2ff4 le_sc_confirm_gkey_ok
+0x2ff8 le_sc_sm_receive_dhkey
+0x2ffc le_dhkey_ready
+0x3001 le_dhkey_ready_common
+0x3007 le_dhkey_check_fail
+0x3009 le_dhkey_check_ok
+0x3013 le_sc_sm_send_public_key
+0x3017 le_sc_sm_ready_send_pairing_confirm
+0x3018 le_sc_sm_send_public_key_passkey
+0x301b le_sc_sm_receive_public_key
+0x301f le_public_key_ready
+0x3022 le_sc_sm_wait_send_public_key
+0x3025 le_fifo_malloc_tx_l2cap_smp
+0x3028 le_parse_ll
+0x303f le_parse_connection_update_ind
+0x3047 le_parse_channel_map_ind
+0x304b le_update_map_enable
+0x304f le_parse_terminate_ind
+0x3053 le_parse_enc_req
+0x3065 le_parse_enc_req_after_auth
+0x3068 le_parse_enc_req_fixed_ltk
+0x306d le_ltk_lost
+0x3071 le_parse_enc_rsp
+0x3076 le_parse_start_enc_req
+0x307a le_parse_start_enc_rsp
+0x307f le_parse_unknown_rsp
+0x3080 le_parse_feature_req
+0x3081 le_parse_feature_rsp
+0x3082 le_parse_pause_enc_req
+0x3086 le_parse_pause_enc_rsp
+0x3087 le_parse_version_ind
+0x3089 le_parse_reject_ind
+0x308a le_parse_ping_req
+0x308b le_parse_ping_rsp
+0x308c le_parse_length_req
+0x308e le_parse_length_rsp
+0x3099 le_parse_phy_req
+0x309a le_parse_phy_update_ind
+0x30a3 le_send_terminate_ind_user_terminated
+0x30a4 le_send_terminate_ind
+0x30aa le_send_enc_rsp
+0x30b8 le_send_start_enc_req
+0x30bb le_send_start_enc_rsp
+0x30bd le_send_unknown_rsp
+0x30c2 le_send_feature_rsp
+0x30c9 le_send_pause_enc_rsp
+0x30cb le_send_version_ind
+0x30d1 le_send_reject_ind
+0x30d7 le_send_ping_rsp
+0x30d9 le_send_data_length_req
+0x30db le_send_data_length_res
+0x30dc le_send_data_length
+0x30e1 le_send_phy_rsp
+0x30eb le_send_ll_one_lenth
+0x30ed g24_dispatch
+0x30f1 g24_prep
+0x30f8 g24_receive_packet
+0x3100 g24_receive_rxon
+0x3105 g24_receive_nolr
+0x3114 g24_receive_skip_fec1
+0x3127 g24_receive_skip
+0x3130 g24rx_loop
+0x3133 g24rx_nopayload
+0x3138 g24_receive_skip_rssi
+0x313f g24_receive_skip_next
+0x314c g24_receive_skip_disable_fec1
+0x314e g24_lr_receive_pdu_len
+0x3155 g24_lr_receive_pdu_norssi
+0x3157 g24_lr_receive_payload_len
+0x315c g24_receive_byte
+0x315f g24_sync_timeout
+0x3162 g24_end_of_packet
+0x3167 g24_hec_error
+0x3169 g24_lr_len_error
+0x316b g24_type_error
+0x316d g24_len_over_error
+0x316f g24_crc_error
+0x3171 g24_set_freq_tx
+0x3174 g24_transmit
+0x3187 g24_transmit_packet
+0x318d g24_transmit_nolr
+0x3192 g24tr_loop
+0x319c g24_transmit_skip
+0x31a3 g24_transmit_skip_disable_fec1
+0x31a6 g24_transmit_lr
+0x31a7 g24_transmit_lr_preamble_loop
+0x31b1 g24_transmit_lr_s2
+0x31b5 g24_transmit_lr_s8
+0x31b8 g24_transmit_2m
+0x31ba g24_transmit_2m_dealy
+0x31c4 g24_transmit_prep
+0x31cf g24_transmit_prep_pdu
+0x31e5 g24_lr_transmit_prep
+0x31e9 g24_lr_transmit_prep_skip
+0x31f3 g24_read_len_pid_crc
+0x3201 g24_ch
+0x3206 g24_ch_map_size
+0x320b g24_ch_calc
+0x3215 g24_update_addr_and_synccrc8
+0x3217 g24_syncword_crc8
+0x321a g24_syncword_crc8_loop
+0x3224 g24_timer_check
+0x3234 g24_timer_timeout
+0x3237 g24_timer_init
+0x323a g24_chmap_param_init
+0x324a g24_chamap_param_update
+0x3257 g24_rx_window_init
+0x325e g24_rx_window_store
+0x3260 g24_enable_1m
+0x3263 g24_enable_2m
+0x3266 g24_pair_param_init
+0x326c g24_pair_timeout_timer
+0x326f g24_pair_start
+0x327a g24_pair_init_param
+0x3281 g24_pair_dispatch
+0x3290 g24_pair_sm_1
+0x3292 g24_pair_sm_2
+0x3296 g24_pair_sm_2_skip
+0x3298 g24_pair_sm_3
+0x329e g24_pair_sm_4
+0x329f g24_pair_sm_prep
+0x32a1 g24_pair_sm_common
+0x32b4 g24_pair_sm_reinit
+0x32b9 g24_pair_sm_1_waiting_ack
+0x32bb g24_pair_sm_2_waiting_ack
+0x32bf g24_pair_sm_2_waiting_ack_skip
+0x32c1 g24_pair_sm_3_waiting_ack
+0x32c7 g24_pair_sm_3_waiting_ack_skip
+0x32c9 g24_pair_sm_4_waiting_ack
+0x32cf g24_pair_sm_4_waiting_ack_skip
+0x32d6 g24_pair_exit
+0x32da g24_bind_mode_enable
+0x32dd g24_bind_init
+0x32e8 g24_bind_ackpayload_prep
+0x32ec g24_bind_data_process
+0x32f9 g24_bind_data_error
+0x32fb g24_bind_data_parse
+0x3306 g24_bind_first_step
+0x330a g24_bind_first_step_device1
+0x330d g24_bind_dvc1_payload_cfg
+0x330e g24_bind_payload_cfg
+0x3312 g24_bind_first_step_device2
+0x3315 g24_bind_dvc2_payload_cfg
+0x3317 g24_bind_second_step
+0x331d g24_bind_second_step_skip
+0x3321 g24_bind_second_step_device1
+0x3326 g24_bind_dvc1_step_set2
+0x3329 g24_bind_dvc1_payload_cfg_transmitter_addr
+0x332a g24_bind_payload_cfg_transmitter_addr
+0x332e g24_bind_second_step_device2
+0x3333 g24_bind_dvc2_step_set2
+0x3338 g24_bind_third_step
+0x333e g24_bind_third_step_skip
+0x3342 g24_bind_third_step_device1
+0x3347 g24_bind_dvc1_step_success
+0x334c g24_bind_exit
+0x334f g24_bind_third_step_device2
+0x3354 g24_bind_dvc2_step_success
+0x335b g24_binding_device_check
+0x335f g24_binding_dvc1_status
+0x3361 disable_user3
+0x3363 g24_binding_dvc2_status
+0x3366 g24_binding_dvc1_living
+0x336c g24_binding_dvc2_living
+0x3372 g24_bind_device_status_check
+0x3374 g24_bind_device_status
+0x3378 g24_receive_init
+0x337c g24_receive_dispatch
+0x337e g24_ackpayload_prep
+0x3384 g24_receive_packet_start
+0x3386 g24_receive_packet_parse
+0x3397 g24_rx_interrupt_clear
+0x339b g24_data_receive_attemp
+0x339d g24_data_device1
+0x33ac g24_data_device2
+0x33b2 g24_data_attemp_device1_abort
+0x33b7 g24_data_attemp_device2_abort
+0x33b9 g24_receive_packet_parse_pid_crc
+0x33c7 g24_receive_transmit_ack
+0x33ca g24_transmit_ack
+0x33d0 g24tx_with_ack
+0x33d3 g24tx_no_ack
+0x33d4 g24_enable_nodata_timer
+0x33d5 g24_enable_nodata_timer_init
+0x33d8 g24_mode_switch_init
+0x33dd g24_mode_switch_bind_work
+0x33ea g24_bind_mode_continue
+0x33ef g24_work_mode_switch
+0x33f2 g24_bind_mode_switch
+0x33f5 g24_mode_b_s_switch_init
+0x3403 g24_mode_switch_bind_search
+0x341e g24_mode_switch_search
+0x3421 g24_mode_b_s_switch_exit
+0x3423 g24_mode_b_s_switch_stop
+0x3425 g24_mode_b_s_switch_start
+0x3427 g24_work_init
+0x3436 g24_switch_work_mode
+0x3437 g24_work_mode_enable
+0x343a g24_work_mode_start
+0x343f g24_bind_mode_auto
+0x344c g24_search_mode_init
+0x345e g24_search_mode_auto
+0x347d g24_self_ch_num_reinit
+0x347e g24_current_ch_num_reinit
+0x3480 g24_device2_ch_num_reinit
+0x3482 g24_device1_ch_num_reinit
+0x3484 g24_auto_addr_ch_search
+0x348e g24_auto_bind_config_device1
+0x34a3 g24_device1_config_ch_once
+0x34a8 g24_auto_bind_config_device2
+0x34bd g24_device2_config_ch_once
+0x34c2 g24_auto_bind_config_self
+0x34d6 g24_self_config_ch_once
+0x34da g24_ackpayload_disable
+0x34dc g24_receiver_addr_check
+0x34e0 g24_nodata_process
+0x34ea g24_search_mode_enable
+0x34ee g24_ch_process
+0x3502 g24_ch_receive_hop_pac
+0x3504 g24_ch_timer_reinit
+0x3507 g24_reconn_timeout_timer
+0x350a g24_reconn_start
+0x3517 g24_reconn_fast_conn
+0x351f g24_reconn_receiver_addr
+0x3526 g24_reconn_device_3_0_addr
+0x352d g24_store_receiver_addr
+0x3530 g24_ch_syncword_crc8_init
+0x3532 g24_reconn_dispatch
+0x353b g24_reconn_dispatch_next
+0x3546 g24_reconn_dispatch_success
+0x3553 g24_txbuf_clear
+0x3557 g24_reconn_data_prep
+0x355e g24_reconn_device_fail
+0x356b g24_reconn_fast_conn_and_receiver
+0x356d g24_reconn_fast_conn_and_3_0
+0x356f g24_reconn_receiver_and_3_0
+0x3571 g24_reconn_pair_and_3_0
+0x3573 g24_data_attemp
+0x3577 g24_data_attemp_device1
+0x357b g24_store_device1_addr
+0x357d g24_data_attemp_device2
+0x3581 g24_store_device2_addr
+0x3583 rssi_store
+0x358c rssi_average
+0x3593 rssi_average_loop
+0x35a0 save_rssi_dec
+0x35a1 rssi_transmitter_buff_init
+0x35a3 rssi_signal
+0x35ae rssi_receiver_buff_init
+0x35b5 rssi_buff_clear
+0x35bb rssi_noise
+0x35c2 rssi_noise_monitor
+0x35c8 g24_transmit_init
+0x35cb g24_interval_param_4ms
+0x35d3 g24_interval_param_8ms
+0x35db g24_transmit_dispatch
+0x35e0 g24_transmit_no_interrupt
+0x35e3 g24_transmit_start
+0x35e8 g24_transmit_start_next
+0x35ee g24_short_sleep
+0x35f5 g24_long_sleep
+0x35fa g24_long_seep2
+0x35fd g24_txdata_prep
+0x3600 g24_package_data
+0x3606 g24_accumulate_data
+0x360e g24_transmit_rf_ctrl_clear
+0x3612 g24_transmit_process
+0x3615 g24_transmit_loop
+0x361f g24_transmit_no_ack
+0x3620 g24_transmit_next_packet
+0x3625 g24_transmit_abandon
+0x362a g24_transmit_receive_ack
+0x3638 g24_retransmit
+0x363b g24_retransmit0
+0x3647 g24_ackpayload_parse
+0x364f g24_tx_attempt_fail
+0x3653 g24_stop_24g_mode
+0x3655 g24_transmit_hop_process
+0x3658 g24_transmit_hop_process_next
+0x3664 g24_transmit_hop_process_4ms
+0x3668 g24_hop_ch_enable
+0x3668 g24_txpayload_type_update
+0x366b g24_lr_type_update
+0x366d g24_hop_enable_packet
+0x366f g24_hop_ch_disable
+0x3675 g24_tx_fast_hop
+0x367c g24_search_receiver
+0x367e g24_nodata_transmit
+0x3685 g24_send_abort_packet
+0x3694 g24_lpm_wait
+0x369e g24_setgpio_lpm_before
+0x36a0 g24_transmit_by_interrupt
+0x36aa g24_transmit_by_interrupt_exit
+0x36af g24_interval_min
+0x36b1 g24_interval_store
+0x36b3 g24_interval_max
+0x36b5 g24_interval_calibrate
+0x36bb g24_transmit_by_interrupt_enable
+0x36bf g24_factory_check
+0x36c1 pdata_0xff_check
+0x36c3 pdata_0xff_check_loop
+0x36c8 power_ctrl_start
+0x36d3 power_ctrl_start_next
+0x36db power_ctrl_txpower_decrs_check
+0x36e0 power_ctrl_txpower_decrs
+0x36e4 power_ctrl_txpower_decrs_next
+0x36ed power_ctrl_txpower_incrs_force
+0x36ee power_ctrl_txpower_incrs
+0x36f4 power_ctrl_incrs_level3
+0x36f6 power_ctrl_decrs_level2
+0x36f6 power_ctrl_incrs_level2
+0x36f8 power_ctrl_decrs_level1
+0x36f8 power_ctrl_incrs_level1
+0x36fa power_ctrl_decrs_level0
+0x36fc power_ctrl_pac_succ_incrs
+0x3700 power_ctrl_pac_succ_decrs
+0x3708 power_ctrl_pac_succ_cnt_reinit
+0x370a app_init
+0x3717 app_param_init
+0x3722 app_process_idle
+0x3727 app_process_ble
+0x3729 app_process_bb_event
+0x3730 app_discard_event
+0x3732 app_event_normal_process
+0x3736 app_process_bb_event_priority
+0x3738 app_check_wake_lock
+0x373a app_will_enter_lpm
+0x373c app_le_event_bb_connected
+0x3740 app_le_event_bb_disconn
+0x3745 app_evt_button_long_pressed
+0x3749 app_evt_timer
+0x374a app_evt_100ms_loop
+0x3755 timer_single_step
+0x375c timer_single_step_2b
+0x3763 app_power_timer
+0x3767 app_power_timer_timeout
+0x3769 app_enter_power_off_state
+0x376a app_enter_power_stanby_state
+0x376d app_power_cb_common
+0x376f app_bb_hibernate
+0x3771 app_disconn_reason_clear
+0x3774 app_disconn_reason_flag_clear
+0x3777 app_disconn_reason_collect_ble
+0x377d app_get_lpm_wake_lock
+0x377f app_put_lpm_wake_lock
+0x3781 app_lpm_wake_auto_lock
+0x3783 app_lpm_wake_auto_lock_timer
+0x3786 app_ble_start_direct_adv
+0x3788 app_ble_stop_direct_adv
+0x378a app_ble_stop_adv
+0x378c app_ble_start_adv
+0x378e app_ble_start_scan
+0x3790 app_ble_stop_scan
+0x3792 app_ble_start_conn
+0x3794 app_ble_disconnect
+0x3796 app_led_start_blink
+0x3798 app_led_on
+0x379a app_led_stop_blink
+0x379a app_led_off
+0x379c app_enter_hibernate
+0x379e app_ble_store_reconn_info
+0x37a0 app_lpm_mult_enable
+0x37a2 app_lpm_mult_disable
+0x37a4 app_button_long_pressed
+0x37a6 app_power_starting
+0x37aa app_power_common
+0x37ae app_power_shutting_down
+0x37b4 app_power_off_end
+0x37b8 app_got_power_state_common
+0x37bc app_event_button_up
+0x37bf app_power_release
+0x37c1 car_init
+0x37d3 car_default_init
+0x38b9 car_system_clk
+0x38bb car_lpm_xtalcnt
+0x38bd car_lpm_isogate
+0x38bf car_lpm_hibernate_switch
+0x38c1 car_lpm_ldo_sel
+0x38c3 car_lpm_sysctl
+0x38c5 car_lpm_hv_sel
+0x38c7 car_fcomp_div
+0x38c9 car_xtal_c_sel
+0x38cb car_version
+0x38cd car_le_tx2m_delay
+0x38cf car_gain_fix
+0x38d1 car_rx_window_sniff
+0x38d3 car_gain_table
+0x38d5 car_gain_second_agc_en
+0x38d7 car_ring_ibias_trim
+0x38d9 car_ring_ibias_vtune_high
+0x38db car_ring_ibias_vtune_low
+0x38dd car_ring_ibias_calc_adc_gpio
+0x38df car_ring_ibias_calc_adc_channel
+0x38e1 car_tx_power
+0x38e3 car_24g_tx_phy
+0x38e5 car_24g_rx_phy
+0x38e7 car_motor_gpio_map
+0x38ea car_pwm_gpio
+0x38ef car_24g_addr
+0x38f1 car_24g_ch_map1
+0x38f3 car_init_environment
+0x38fb car_rxid_check
+0x3904 car_add_mac_to_local_name
+0x390c car_add_mac_to_local_name_loop
+0x3917 car_convert_hex_to_ascii
+0x3919 car_convert_hex_to_ascii_a_f
+0x391b car_convert_hex_to_ascii_0_9
+0x391d car_le_param_init
+0x3924 car_process_bb_event
+0x3928 car_ble_disconnted
+0x3930 car_ble_connted
+0x3933 car_ble_receive_data
+0x3936 car_ble_receive_writeatt
+0x393d car_ble_receive_writeatt_parse
+0x394b car_gpio_control_stop
+0x394f car_whitening_24g_addr
+0x3952 car_24g_whitening_loop
+0x3956 car_24g_whitening_byte
+0x3957 car_24g_whitening_byte_loop
+0x395e car_24g_whitening_byte_xor
+0x3963 car_get_rxid
+0x3981 car_pwm_control_init
+0x398b car_idle_process
+0x39a7 car_pwm_io_control
+0x39ae car_g24_sim_rx
+0x39be car_cb_24g_ackpayload
+0x39c4 car_soft_timer_process
+0x39c5 car_soft_timer_process_check_timer
+0x39cb car_soft_timer_process_wait_timeout
+0x39cf car_soft_timer_timeout
+0x39d3 car_timer_1khz_enable
+0x39d5 car_timer_500hz_enable
+0x39d7 car_pwm_change_1khz
+0x39e5 car_pwm_change_500hz
+0x39f1 car_period_change_timer
+0x39fb car_set_24g_ch
+0x3a00 car_set_ch0
+0x3a03 car_set_ch1
+0x3a06 car_set_ch2
+0x3a09 car_set_ch3
+0x3a0c car_set_ch_reset
+0x3a0f car_stop_run
+0x3a21 car_set_motor
+0x3a38 car_set_unconnect
+0x3a3c car_run_factory_mode_select
+0x3a40 car_run_mode_select
+0x3a47 car_pwm_mode_adv_flag_init
+0x3a50 car_factory_mode_time
+0x3a55 car_motor_mode_1
+0x3a59 car_motor_mode_2
+0x3a5d car_f
+0x3a62 car_b
+0x3a67 car_l
+0x3a6c car_r
+0x3a71 car_fl
+0x3a74 car_fr
+0x3a77 car_bl
+0x3a7a car_br
+0x3a7d car_reconnect
+0x3a88 car_recive_pair_request
+0x3a8e car_send_pair_response
+0x3a97 car_send_pair_response_juge
+0x3a9c car_cb_event_timer
+0x3aa1 car_100ms_timer_adv_control
+0x3aa8 car_100ms_timer_adv_control_timeout
+0x3aae car_100ms_timer_factory_test_control
+0x3ab3 car_100ms_timer_factory_test_timeout
+0x3ab7 car_motor1_status_select
+0x3abc car_motor2_status_select
+0x3ac1 car_lr_motor_stop
+0x3ac5 car_lr_motor_left
+0x3ac9 car_lr_motor_right
+0x3acd car_fb_motor_stop
+0x3ad1 car_fb_motor_front
+0x3ad5 car_fb_motor_back
+0x3ad9 car_le_stop_random_delay_check
+0x3adc car_check_close_ice
+0x3adf remote_car_init
+0x3aee remote_car_default_init
+0x3b5f remote_car_system_clk
+0x3b61 remote_car_lpm_xtalcnt
+0x3b63 remote_car_lpm_isogate
+0x3b65 remote_car_lpm_hibernate_switch
+0x3b67 remote_car_lpm_ldo_sel
+0x3b69 remote_car_lpm_sysctl
+0x3b6b remote_car_lpm_hv_sel
+0x3b6d remote_car_fcomp_div
+0x3b6f remote_car_xtal_c_sel
+0x3b71 remote_car_version
+0x3b73 remote_car_le_tx2m_delay
+0x3b75 remote_car_gain_fix
+0x3b77 remote_car_rx_window_sniff
+0x3b79 remote_car_gain_table
+0x3b7b remote_car_gain_second_agc_en
+0x3b7d remote_car_ring_ibias_trim
+0x3b7f remote_car_ring_ibias_vtune_high
+0x3b81 remote_car_ring_ibias_vtune_low
+0x3b83 remote_car_ring_ibias_calc_adc_gpio
+0x3b85 remote_car_ring_ibias_calc_adc_channel
+0x3b87 remote_car_tx_power
+0x3b89 remote_car_24g_tx_phy
+0x3b8b remote_car_24g_rx_phy
+0x3b8d remote_car_key_conf0
+0x3b8f remote_car_key_public_gpio
+0x3b91 remote_car_24g_tx_led_map
+0x3b93 remote_car_24g_addr
+0x3b95 remote_car_24g_ch_map1
+0x3b97 remote_car_set__lpm_timer_set
+0x3b9b remote_car_set_uconnect_lpm_time
+0x3ba0 remote_car_set_connected_lpm_time
+0x3ba5 remote_car_get_txid
+0x3bc3 remote_car_txid_check
+0x3bcc remote_car_whitening_24g_addr
+0x3bcf remote_car_24g_whitening_loop
+0x3bd3 remote_car_24g_whitening_byte
+0x3bd4 remote_car_24g_whitening_byte_loop
+0x3bdb remote_car_24g_whitening_byte_xor
+0x3be0 remote_car_lpm_gpio_config_flag_init
+0x3be3 remote_car_iocfg_pullup_loop
+0x3bec remote_car_idle_process
+0x3bf3 remote_car_24g_matching_process
+0x3bf7 remote_car_set_24g_ch
+0x3bfc remote_car_set_ch0
+0x3bff remote_car_set_ch1
+0x3c02 remote_car_set_ch2
+0x3c05 remote_car_set_ch3
+0x3c08 remote_car_set_ch_reset
+0x3c0b remote_car_send_pair_request
+0x3c0f remote_car_g24_sim_tx_with_datalen_set
+0x3c1f remote_car_g24_sim_tx
+0x3c2b remote_car_g24_transmit_no_ack
+0x3c30 remote_car_24g_recved_ack
+0x3c32 remote_car_g24_recved_ack_parse
+0x3c38 remote_car_g24_tx_connected
+0x3c45 remote_car_send_remote_control
+0x3c52 remote_car_scan_key
+0x3c58 remote_car_key_scan_lr
+0x3c66 remote_car_key_scan_fb
+0x3c74 remote_car_set_keyf
+0x3c77 remote_car_set_keyb
+0x3c7a remote_car_set_keyl
+0x3c7d remote_car_set_keyr
+0x3c80 remote_car_set_keym
+0x3c83 remote_car_set_tx_key_led
+0x3c8a remote_car_24g_tx_send_none
+0x3c8e remote_car_24g_set_led
+0x3c96 remote_car_24g_led_on
+0x3c98 remote_car_24g_led_off
+0x3c9b remote_car_lpm_timeout_set
+0x3ca4 remote_car_cb_event_timer
+0x3ca6 remote_car_enter_lpm
+0x3cab remote_car_enter_lpm_gpio_config
+0x3cad remote_car_enter_lpm_gpio_config_loopcnt
+0x3cb3 remote_car_enter_lpm_gpio_config_pull_up
+0x3cb9 remote_car_set_value
+0x3cba remote_car_gpio_wakeup_cfg
+0x3cc2 remote_car_wakeup_config
+0x3cc7 remote_car_wakeup_config_loop
+0x3cd1 dongle_init
+0x3cdc dongle_default_init
+0x3ce5 dongle_default_no_eeprom
+0x3cff dongle_xtal_select
+0x3d04 dongle_dispatch
+0x3d09 dongle_read_kb_bind_status
+0x3d0e dongle_write_kb_bind_status
+0x3d13 dongle_usb_config
+0x3d17 dongle_usb_config_kb
+0x3d1b dongle_usb_config_param
+0x3d20 dongle_usb_vid_pid_config
+0x3d24 dongle_usb_vid_pid_for_mouse_only_auto_pair
+0x3d25 dongle_usb_vid_pid_store
+0x3d27 dongle_usb_vid_pid_for_suit
+0x3d29 dongle_usb_hid_icon_config
+0x3d2f dongle_usb_kb_hidreportdesc
+0x3d33 dongle_usb_device_name
+0x3d39 dongle_all_powerful
+0x3d3a dongle_all_powerful_loop
+0x3d3d dongle_pc_bind
+0x3d3e dongle_pc_bind_loop
+0x3d42 dongle_g24_blank_data_process
+0x3d48 dongle_g24_ms_blank_data
+0x3d52 dongle_usb_tx_ms_data
+0x3d53 dongle_usb_tx_enable_ep2
+0x3d57 dongle_g24_kb_blank_data
+0x3d61 dongle_usb_tx_kb_data
+0x3d62 dongle_usb_tx_enable_ep1
+0x3d67 dongle_g24_kb_sys_ctrl_blank_data
+0x3d72 dongle_usb_tx_sys_ctrl_data
+0x3d74 dongle_g24_kb_mul_blank_data
+0x3d7f dongle_usb_tx_multikey_data
+0x3d81 dongle_g24_kb_bit_consumer_blank_data
+0x3d8c dongle_usb_tx_bit_consumer_data
+0x3d8e dongle_usb_dispatch
+0x3da1 dongle_usb0_data_ready_report_set0
+0x3da3 dongle_dispose_cmd_mode
+0x3da6 dongle_enter_bind_mode
+0x3da7 dongle_usb0_data_ready_report_set1
+0x3da9 dongle_dispose_cmd_bind
+0x3dae dongle_dispose_cmd_get_bind
+0x3db1 dongle_dispose_cmd_exit_bind
+0x3db3 dongle_dispose_cmd_read_mode
+0x3db3 dongle_dispose_in_bind_mode
+0x3db5 dongle_dispose_cmd_current_project
+0x3db7 dongle_dispose_cmd_current_mode
+0x3dbb dongle_dispose_in_work_mode
+0x3dbd dongle_dispose_cmd_current_fw_version
+0x3dc0 dongle_auto_bind
+0x3dc1 dongle_auto_bind_loop
+0x3dc8 dongle_work_mode_auto
+0x3dd0 dongle_ackpayload_prep
+0x3dd3 dongle_ackpayload_prep_mouse
+0x3dd6 dongle_set_pc_sleep_flag
+0x3dda dongle_clear_pc_sleep_flag
+0x3ddc dongle_ackpayload_prep_keyboard
+0x3dde dongle_ackpayload_prep_end
+0x3de2 dongle_pc_sleep_ackpayload_prep_mouse
+0x3de6 dongle_pc_sleep_ackpayload_prep_keyboard
+0x3de9 dongle_pc_sleep_ackpayload_prep
+0x3ded dongle_g24_bind_ackpayload_prep
+0x3df6 dongle_g24_kb_led_ackpayload_prep
+0x3dfe dongle_g24_mouse
+0x3e07 dongle_g24_ms_enable_blank_data_forcibly
+0x3e0b dongle_g24_ms_disable_blank_data_forcibly
+0x3e0f dongle_g24_kb
+0x3e15 dongle_g24_kb_type0
+0x3e28 dongle_g24_kb_enable_blank_data_forcibly
+0x3e2c dongle_g24_kb_disable_blank_data_forcibly
+0x3e30 dongle_g24_kb_type3
+0x3e40 dongle_g24_kb_mul_enable_blank_data_forcibly
+0x3e44 dongle_g24_kb_mul_disable_blank_data_forcibly
+0x3e48 dongle_g24_kb_type_bit_consumer
+0x3e58 dongle_g24_kb_bit_consumer_enable_blank_data_forcibly
+0x3e5c dongle_g24_kb_bit_consumer_disable_blank_data_forcibly
+0x3e60 dongle_g24_kb_type2
+0x3e70 dongle_g24_kb_sys_enable_blank_data_forcibly
+0x3e74 dongle_g24_kb_sys_disable_blank_data_forcibly
+0x3e78 dongle_usb_tx_sys_data
+0x3e7a dongle_g24_store_dvc2_bind_flag
+0x3e7e dongle_prep_soft_reset
+0x3e80 dongle_kb_bind_soft_reset
+0x3e85 dongle_wirte_efuse_bind_status
+0x3e8f keyboard_softreset_process
+0x3e9a keyboard_wakeup_from_power_check
+0x3ea1 keyboard_default_init
+0x3ea5 keyboard_xtal_init
+0x3eaa keyboard_24g_phy_select
+0x3eae keyboard_init
+0x3eb7 keyboard_init_wireless
+0x3ebd keyboard_setting_config
+0x3ecb keyboard_param_common_init
+0x3edb keyboard_param_init
+0x3eed keyboard_ble_store_le_name
+0x3ef2 keyboard_ble_name_set_no_swift_pair
+0x3ef4 keyboard_compare_addr_init
+0x3ef9 keyboard_gpio_init
+0x3f09 keyboard_key_cow_init
+0x3f0f keyboard_key_row_init
+0x3f12 keyboard_key_row_init_loop
+0x3f18 keyboard_gpio_set_low_pullup
+0x3f1b keyboard_gpio_pu_idle
+0x3f1d keyboard_gpio_pu_idle_loop
+0x3f22 keyboard_gpio_pu_idle_configured
+0x3f29 keyboard_key_row_wake_set
+0x3f2c keyboard_pairing_check_otp_offset
+0x3f31 keyboard_load_otp_info
+0x3f35 keyboard_load_otp_device_info_g24_init
+0x3f3f keyboard_load_otp_device_info_ble_init
+0x3f49 keyboard_load_otp_device_info
+0x3f4d keyboard_load_otp_info_check_page_loop
+0x3f5f keyboard_load_otp_info_check_first_time
+0x3f61 keyboard_load_otp_info_check_first_time_loop_init
+0x3f63 keyboard_load_otp_info_check_first_time_loop
+0x3f72 keyboard_load_otp_info_check_first_time_process
+0x3f74 keyboard_load_otp_info_check_offset_process
+0x3f81 keyboard_load_otp_info_check_offset_process_g24
+0x3f87 keyboard_load_otp_info_check_offset_process_ble
+0x3f96 keyboard_load_eeprom_info
+0x3f9d keyboard_load_eeprom_device_info_next
+0x3fa2 keyboard_load_info_check
+0x3faa keyboard_load_info_24g
+0x3fac keyboard_load_info_fn_lock
+0x3fb0 keyboard_load_info_bt1
+0x3fb5 keyboard_load_info_bt
+0x3fbb keyboard_load_info_bt2
+0x3fbf keyboard_load_info_bt3
+0x3fc3 keyboard_load_info_usb
+0x3fc6 keyboard_app_initflag_check
+0x3fd5 keyboard_load_flash_info
+0x3fd7 keyboard_store_device_info
+0x3fdd keyboard_store_otp_device_info
+0x3fe1 keyboard_store_otp_device_info_g24
+0x3feb keyboard_store_otp_device_info_ble
+0x3fee keyboard_wirte_otp_ble
+0x4004 keyboard_store_eeprom_device_info
+0x400b keyboard_store_eeprom_device_info_next
+0x400c keyboard_store_eeprom_device_info_typer_check
+0x4014 keyboard_store_eeprom_device_all_info
+0x4019 keyboard_store_eeprom_device_info_ble_addr
+0x4025 keyboard_store_eeprom_device_info_g24_addr
+0x402d keyboard_store_eeprom_device_info_fn_lock
+0x4035 keyboard_store_eeprom_device_info_device_os
+0x403d keyboard_store_eeprom_device_info_rgb_tpye
+0x4045 keyboard_store_device_number
+0x4049 keyboard_eeprom_init
+0x404e keyboard_cb_fuction
+0x4066 keyboard_priority_bb_event
+0x4075 keyboard_bb_event_timer
+0x4093 keyboard_adc_vol_init
+0x4098 keyboard_adc_vol_1v5_init
+0x409d keyboard_adc_vol_3v0_init
+0x40a2 keyboard_adc_vol_4v2_init
+0x40a7 keyboard_adc_init
+0x40a9 keyboard_adc_gpio_set
+0x40b2 keyboard_channel_set_gpio
+0x40c4 keyboard_adc_read_start
+0x40cc keyboard_adc_read
+0x40cf keyboard_adc_data_process
+0x40d4 keyboard_adc_low_voltage
+0x40d6 keyboard_adc_no_low_voltage
+0x40dd keyboard_adc_gpio_set_before_hibernate
+0x40e0 keyboard_low_voltage_param_set
+0x40e8 keyboard_low_voltage_param_reset
+0x40eb keyboard_low_vol_mult_set
+0x40f3 keyboard_low_vol_mult_ble_set
+0x40f9 keyboard_mult_auto_get
+0x4100 keyboard_low_voltage_led_timer
+0x4119 keyboard_adc_low_volatage_led_timer_count_clean
+0x411b keyboard_low_voltage_led_blink_new_data
+0x4131 keyboard_device_poweron_timer
+0x4139 keyboard_device_poweron_030_led
+0x413a keyboard_power_led_on
+0x413c keyboard_power_led_off
+0x413e keyboard_mode_led_timer
+0x4146 keyboard_device_pair_led_timer
+0x414b keyboard_device_24g_pair_led
+0x414d keyboard_device_pair_led
+0x415f keyboard_device_clear_power_timer
+0x4161 keyboard_device_led_all_off
+0x4166 keyboard_device_led_off
+0x416c keyboard_device_led_on
+0x4172 keyboard_device_24g_led_off
+0x4174 keyboard_device_bt1_led_off
+0x4176 keyboard_device_bt2_led_off
+0x4178 keyboard_device_bt3_led_off
+0x417a keyboard_device_24g_led_on
+0x417c keyboard_device_bt1_led_on
+0x417e keyboard_device_bt2_led_on
+0x4180 keyboard_device_bt3_led_on
+0x4182 keyboard_low_voltage_led_on
+0x4184 keyboard_low_voltage_led_off
+0x4186 keyboard_num_capslock_led_on_timer
+0x4193 keyboard_usb_led_check
+0x4196 keyboard_num_cap_scoll_led_check
+0x4199 keyboard_numlock_led_check_on
+0x419b keyboard_numlock_led_on
+0x419d keyboard_numlock_led_off
+0x419f keyboard_capslock_led_check_on
+0x41a3 keyboard_capslock_led_off
+0x41a5 keyboard_scrolllock_led_check_on
+0x41a9 keyboard_scrolllock_led_off
+0x41ab keyboard_rgb_on_timer
+0x41b7 keyboard_pwm_init
+0x41c0 keyboard_rgb_pwm_disable
+0x41c6 keyboard_rgb_pwm_set
+0x41c9 keyboard_load_rgb
+0x41d0 keyboard_rgb_mode_switch
+0x41de keyboard_rgb_mode_switch_next
+0x41e2 keyboard_rgb_on_type_switch
+0x41ef keyboard_rgb_on_type_switch_next
+0x41f3 keyboard_rgb_process
+0x4203 keyboard_rgb_off
+0x4209 keyboard_rbg_breathe_process
+0x4211 keyboard_rbg_breathe_up
+0x421a keyboard_rbg_breathe_color_switch
+0x4221 keyboard_rgb_pwm
+0x4224 keyboard_breathe_tpye_select
+0x422c keyboard_breathe_tpye_red
+0x4231 keyboard_breathe_tpye_green
+0x4236 keyboard_breathe_tpye_blue
+0x423b keyboard_breathe_tpye_cyan
+0x423d keyboard_breathe_tpye_orange
+0x423f keyboard_breathe_tpye_purple
+0x4241 keyboard_breathe_tpye_white
+0x4244 keyboard_rgb_on_process
+0x424e keyboard_rgb_led_control
+0x425b keyboard_rgb_red_led_on
+0x425d keyboard_rgb_red_led_off
+0x425f keyboard_rgb_green_led_on
+0x4261 keyboard_rgb_green_led_off
+0x4263 keyboard_rgb_blue_led_on
+0x4265 keyboard_rgb_blue_led_off
+0x4267 keyboard_key_press_timer
+0x426d keyboard_device_select_g24_press_timer
+0x4278 keyboard_device_select_g24_nopress_timer
+0x427e keyboard_device_select_bt_press_timer
+0x4289 keyboard_device_select_bt_nopress_timer
+0x428f keyboard_commbination_key_process
+0x4294 keyboard_commbination_key_press_type_check
+0x4299 keyboard_check_discovery_timeout_timer
+0x429c keyboard_check_discovery_timeout
+0x429e keyboard_store_information_delay_timer
+0x42a1 keyboard_le_auto_recognize_timer
+0x42a4 keyboard_check_direct_timeout_timer
+0x42aa keyboard_check_direct_timeout
+0x42ad keyboard_le_battery_updata_timer
+0x42b2 keyboard_le_send_conn_param_update_timer
+0x42b5 keyboard_24g_repeat_send_data
+0x42bf keyboard_24g_led_status_get_timer
+0x42c2 keyboard_24g_led_status_clear
+0x42c4 keyboard_same_key_long_press_timer
+0x42c7 keyboard_long_press_timerout
+0x42c9 keyboard_commbination_delay_release_timer
+0x42cc keyboard_usb_updata_timer
+0x42d5 keyboard_check_no_data_timeout_timer
+0x42da keyboard_check_no_data_timeout
+0x42dd keyboard_idle
+0x42e3 keyboard_check_select_device_by_switch
+0x42f0 keyboard_check_select_device_by_switch_vdd_check
+0x42f8 keyboard_check_select_device_by_switch_vdd
+0x42fd keyboard_check_select_device_by_switch_gnd
+0x4302 keyboard_select_btdevice
+0x4308 keyboard_check_select_24g_device
+0x430e keyboard_start_work
+0x431a keyboard_start_work_next
+0x4324 keyboard_start_ble1_reconnect
+0x4325 keyboard_start_ble_reconnect
+0x4329 keyboard_start_ble2_reconnect
+0x432b keyboard_start_ble3_reconnect
+0x432d keyboard_24g_start_mode
+0x4330 kscan_dispatch
+0x4334 keyboard_keyscan
+0x4342 keyboard_keyscan_exmcu_start_check
+0x434a keyboard_keyscan_wait_wake_next
+0x4351 keyboard_keyscan_copy_value
+0x4354 keyboard_compare_col_excol_gpio_loop
+0x4359 keyboard_compare_col_gpio_loop
+0x435e keyboard_compare_col_excol_gpio_loop_next
+0x4366 keyboard_copy_value_exmcu_to_mcu
+0x4372 keyboard_keyscan_get_exmcu_value
+0x4373 keyboard_keyscan_exmcu_start_loop
+0x437a keyboard_keyscan_exmcu_get_col_value
+0x437d keyboard_keyscan_value_store
+0x4386 keyboard_keyscan_get_mcu_value
+0x4389 keyboard_keyscan_mcu_start
+0x4393 keyboard_keyscan_mcu_start_loop
+0x4399 keyboard_keyscan_get_col_value
+0x439e keyboard_keyscan_get_col_value_loop
+0x43a7 keyboard_clk_state_high
+0x43a9 keyboard_clk_state_low
+0x43ab keyboard_clk_input
+0x43ad keyboard_stb_state_high
+0x43af keyboard_stb_state_low
+0x43b1 keyboard_press_change_or_no_key
+0x43b5 keyboard_key_process
+0x43c6 keyboard_keyvalue_process
+0x43cf keyboard_keyvalue_change
+0x43de keyboard_keyvalue_change_loop
+0x43e9 keyboard_keyvalue_process_loop
+0x43f1 keyboard_keyscan_value_current_zero_check
+0x43fd keyboard_ghost_key_check
+0x4402 keyboard_ghost_key_check_loop
+0x4405 keyboard_current_col_press_key_count_check
+0x4418 keyboard_same_row_key_check
+0x4429 keyboard_ghost_key_check_next_loop
+0x442c keyboard_same_row_key_check_loop
+0x442e keyboard_keyvalue_normal_replace
+0x4435 keyboard_keyvalue_fn_replace
+0x4440 keyboard_fn_lock_check
+0x4451 keyboard_keyvalue_fn_esc
+0x4457 keyboard_keyvalue_fn_esc_next
+0x4459 keyboard_keyvalue_fn_delete
+0x445b keyboard_keyvalue_fn_replace_press
+0x4468 keyboard_keyvalue_fn_lock_replace
+0x447e keyboard_keyvalue_fn_lock_24g
+0x4481 keyboard_keyvalue_fn_lock_bt1
+0x4484 keyboard_keyvalue_fn_lock_bt2
+0x4487 keyboard_keyvalue_fn_lock_bt3
+0x448a keyboard_keyvalue_fn_lock_usb
+0x448d keyboard_keyvalue_fn_up_arrow
+0x4491 keyboard_keyvalue_fn_down_arrow
+0x4495 keyboard_keyvalue_fn_left_arrow
+0x4499 keyboard_keyvalue_fn_right_arrow
+0x449d keyboard_keyvalue_fn_left_ctrl
+0x44a5 keyboard_keyvalue_windows_osk
+0x44a7 keyboard_keyvalue_fn_space
+0x44aa keyboard_keyvalue_store_temp
+0x44ac keyboard_keyvalue_os_android
+0x44b2 keyboard_keyvalue_os_switch_end
+0x44b7 keyboard_store_eeprom_or_flash
+0x44b9 keyboard_store_device_info_delay
+0x44bc keyboard_keyvalue_os_windows
+0x44c3 keyboard_keyvalue_os_ios
+0x44ca keyboard_keyvalue_clear_temp
+0x44cc keyboard_store_computer_system
+0x44d3 keyboard_store_computer_system_bt1
+0x44d6 keyboard_store_computer_system_bt2
+0x44d9 keyboard_store_computer_system_bt3
+0x44dc keyboard_keyvalue_commbination_replace
+0x44ec keyboard_commbination_delay_release_set
+0x44f0 keyboard_commbination_delay_release_clear
+0x44f2 keyboard_commination_screen_shot_replace
+0x44f8 keyboard_commination_pageup_replace
+0x44f9 keyboard_commination_ios_mac_command_commiation
+0x44fe keyboard_commination_pagedown_replace
+0x4500 keyboard_commination_home_replace
+0x4502 keyboard_commination_end_replace
+0x4504 keyboard_commination_select_all
+0x4505 keyboard_commbination_text_edit
+0x450b keyboard_commbination_copy
+0x450d keyboard_commbination_paste
+0x450f keyboard_commbination_cut
+0x4511 keyboard_commination_os_lock
+0x4516 keyboard_commination_windows_lock
+0x4519 keyboard_commination_mac_lock
+0x451c keyboard_commbination_osk
+0x4520 keyboard_commbination_windows_osk
+0x4523 keyboard_commbination_search
+0x4527 keyboard_commbination_mac_search
+0x452a keyboard_commbination_language
+0x452e keyboard_commbination_language_next
+0x4531 keyboard_commbination_language_windows
+0x4533 keyboard_commbination_language_android
+0x4535 keyboard_commbination_app_tiling
+0x453b keyboard_commbination_app_tiling_windows_android
+0x453e keyboard_commbination_keypress
+0x4543 keyboard_commbination_key_press_set
+0x4545 keyboard_commbination_key_wait_release_set
+0x4547 keyboard_commbination_key_null_set
+0x4549 keyboard_commbination_key_value_store
+0x454e keyboard_commbination_key_press_process
+0x4551 keyboard_commbination_key_hold_set
+0x4553 keyboard_commbination_key_hold_process
+0x4557 keyboard_commbination_key_wait_release_process
+0x455d keyboard_commbination_key_release_set
+0x455f keyboard_commbination_key_release_process
+0x4560 keyboard_commbination_key_null_process
+0x4564 keyboard_keyvalue_in_out
+0x456e keyboard_keyvalue_control_key_out
+0x4572 keyboard_keyvalue_control_key_in
+0x4576 keyboard_keyvalue_standard
+0x4579 keyboard_keyvalue_standard_out
+0x457c keyboard_keyvalue_standard_out_loop
+0x4585 keyboard_keyvalue_standard_out_next
+0x458a keyboard_keyvalue_standard_out_n_key_rollover
+0x458d keyboard_keyvalue_standard_in
+0x4590 keyboard_keyvalue_standard_in_loop
+0x4599 keyboard_keyvalue_standard_in_n_key_rollover
+0x459c keyboard_keyvalue_standard_in_data
+0x459f keyboard_keyvalue_n_key_rollover_data_in_out
+0x45ad keyboard_keyvalue_consumer
+0x45b2 keyboard_consumer_key_release_status
+0x45b4 keyboard_special_key_check
+0x45bf keyboard_special_key_check_loop
+0x45c9 keyboard_commbination_key_press_check
+0x45d7 keyboard_commbination_key_press_check_bt
+0x45e8 keyboard_commbination_key_down_24g
+0x45ea keyboard_commbination_key_down_bt
+0x45ec keyboard_commbination_key_down_bt_fast_conn
+0x45ee keyboard_commbination_key_down
+0x45f2 keyboard_device_select
+0x45fe keyboard_clear_change_flag
+0x4600 keyboard_device_select_g24
+0x460c keyboard_device_select_g24_press
+0x4616 keyboard_device_select_bt1
+0x4620 keyboard_device_select_bt1_press
+0x4627 keyboard_device_select_bt2
+0x4631 keyboard_device_select_bt2_press
+0x4638 keyboard_device_select_bt3
+0x4642 keyboard_device_select_bt3_press
+0x4649 keyboard_device_select_bt_set_press_flag
+0x464e keyboard_device_select_usb
+0x465a keyboard_device_select_usb_press
+0x4660 keyboard_pairing_button_check
+0x466c keyboard_pairing_button_release
+0x4670 keyboard_enable_bt_button_pairing
+0x4675 keyboard_long_button_bt_discovery
+0x4680 keyboard_24g_start_pair_mode
+0x468f keyborad_control_key_set
+0x4697 keyboard_alt_flag_set
+0x4699 keyboard_fn_set
+0x469b keyboard_pb_set
+0x469d keyboard_motion
+0x46b7 keyboard_current_mult_update
+0x46ba keyboard_no_key_press
+0x46ca keyboard_motion_data_check
+0x46d1 keyboard_value_tpye_check
+0x46dc keyboard_tx_data_store
+0x46e3 keyboard_tx_data_store_loop
+0x46e6 keyboard_motion_data_check_next
+0x46ea device_send_keyboard_data
+0x46ec keyboard_motion_data_check_n_key_rollover_key
+0x46ef keyboard_value_release_all_key
+0x46f5 keyboard_value_tpye_consumer_set
+0x4715 keyboard_value_media
+0x4716 keyboard_consumer_value_store
+0x4718 keyboard_value_vol_down
+0x471a keyboard_value_vol_up
+0x471c keyboard_value_mute
+0x471e keyboard_value_pre_track
+0x4720 keyboard_value_next_track
+0x4722 keyboard_value_play
+0x4724 keyboard_value_stop
+0x4726 keyboard_value_ac_home
+0x4728 keyboard_value_mail
+0x472a keyboard_value_my_computer
+0x472c keyboard_value_ac_favorites
+0x472e keyboard_value_calculator
+0x4730 keyboard_value_ac_search
+0x4732 keyboard_value_ac_back
+0x4737 keyboard_value_os_soft_kb
+0x473b keyboard_value_os_soft_kb_android
+0x473d keyboard_value_light_down
+0x473f keyboard_value_light_up
+0x4741 keyboard_value_os_lock
+0x4743 keyboard_value_mac_eject
+0x4745 keyboard_value_ac_forward
+0x4747 keyboard_value_ac_stop
+0x4749 keyboard_value_ac_refresh
+0x474b keyboard_value_consumer_all_key_release
+0x474b keyboard_value_consumer_release
+0x4752 keyboard_value_system_sleep
+0x4756 keyboard_device_data_tpye_check
+0x475d keyboard_device_data_tpye_check_next
+0x4768 keyboard_mouse_data_send
+0x476d keyboard_standard_data_send
+0x4772 keyboard_standard_data_send_end
+0x4778 keyboard_magic_data_send
+0x477c keyboard_magic_data_send_end
+0x4780 keyboard_consumer_data_send
+0x4781 keyboard_consumer_data_store
+0x4785 keyboard_bit_consumer_data_send
+0x4787 keyboard_system_control_data_send
+0x478c keyboard_n_key_rollover_send
+0x478f keyboard_lpm_before_common
+0x4796 keyboard_key_col_wake_init
+0x47a0 keyboard_key_row_wake_init
+0x47aa keyboard_process_lpm_before
+0x47ac keyboard_before_hibernate
+0x47af keyboard_power_down
+0x47b1 keyboard_app_enter_hibernate
+0x47b3 keyboard_setgpio_hibernate
+0x47b8 keyboard_24g_pairing_complete
+0x47ca keyboard_24g_attempt_success
+0x47d3 keyboard_24g_fast_conn_check
+0x47d9 keyboard_24g_led_get_status_check
+0x47db keyboard_24g_led_data_check
+0x47e1 keyboard_get_24g_led_enable
+0x47e4 keyboard_set_repeat_send_flag
+0x47e6 keyboard_24g_attempt_fail
+0x47ed keyboard_24g_attempt_fail_enter_hibernate
+0x47f3 keyboard_24g_fast_conn_attempt_fail
+0x47fb keyboard_24g_hibernate_set
+0x4804 keyboard_24g_stop
+0x4808 keyboard_g24_reconn_dispatch
+0x480f keyboard_g24_reconn_dispatch_next
+0x4815 keyboard_g24_transmit_no_interrupt
+0x4817 keyboard_g24_transmit_start
+0x481a keyboard_g24_nodata_transmit
+0x4821 keyboard_g24_long_sleep
+0x4828 keyboard_g24_transmit_process
+0x482a keyboard_g24_transmit_loop
+0x4834 keyboard_g24_retransmit
+0x4841 keyboard_g24_tx_fast_hop
+0x4848 keyboard_g24_lpm_wait
+0x4855 keyboard_power_ctrl_start
+0x485b keyboard_g24_transmit_start_next
+0x485f keyboard_g24_short_sleep
+0x4862 keyboard_24g_package_data
+0x4868 keyboard_24g_keyboard_package_data
+0x486d keyboard_24g_keyboard_package_n_key_rollover_data
+0x4871 keyboard_24g_search_dongle
+0x4875 keyboard_le
+0x487d keyboard_le_next
+0x4885 keyboard_le_fill_n_key_rollover_key_data
+0x488e keyboard_le_fill_standard_key_data
+0x4893 keyboard_le_bb_event_connected
+0x489a keyboard_le_bb_event_connected_next
+0x48a2 keyboard_le_bb_disconnected
+0x48a7 keyboard_le_bb_disconnected_next
+0x48ab keyboard_bb_disconnected
+0x48af keyboard_le_event_bb_disconn
+0x48b3 keyboard_le_ll_start_encryt
+0x48b8 keyboard_le_ll_reconn_start_encryt
+0x48bb keyboard_le_conn_param_update_rsp_recieved
+0x48c0 keyboard_bb_event_discovery_btn
+0x48c5 keyboard_start_discovery
+0x48d9 keyboard_start_discovery_norandom
+0x48e6 keyboard_stop_bluetooth_mode
+0x48e9 keyboard_stop_discovery
+0x48f2 keyboard_store_remote_bdaddr
+0x48fd keyboard_le_send_att_find_by_type_value_request_ancs
+0x490b keyboard_le_parse_att
+0x4919 keyboard_le_send_att_find_by_type_value_request_mac
+0x492c keyboard_le_parse_att_find_by_type_value_rsp_mac
+0x4938 keyboard_le_send_att_read_by_type_rsp_mac
+0x4941 keyboard_le_check_att_read_type_manu_loop
+0x494a keyboard_le_send_att_read_by_type_rsp_manufactory
+0x4952 keyboard_le_parse_att_manu_resp
+0x495c keyboard_le_parse_att_find_by_type_value_rsp
+0x4960 keyboard_le_parse_att_find_ios_report
+0x4962 keyboard_le_parse_att_not_find_mac_report
+0x4965 keyboard_le_parse_att_find_mac_report
+0x4966 keyboard_store_computer_system_ble
+0x496d keyboard_store_computer_system_info
+0x4971 keyboard_le_parse_att_read_by_type_request
+0x4973 keyboard_le_send_att_read_by_type_response
+0x497f keyboard_le_send_att_read_by_type_res_pnp_id
+0x4986 keyboard_le_parse_att_read_blob_request
+0x4999 keyboard_le_send_att_read_blob_response
+0x499f keyboard_le_parse_att_read_request
+0x49a2 keyboard_le_send_att_read_response
+0x49a7 keyboard_le_send_att_read_response_next
+0x49aa keyboard_le_send_att_read_response_next_1
+0x49b7 keyboard_le_send_att_appearance
+0x49ba keyboard_le_send_att_pnp_id
+0x49bf keyboard_le_send_att_read_response_check_auth
+0x49c5 keyboard_le_parse_att_write_request
+0x49cb keyboard_le_parse_att_write_command
+0x49d1 keyboard_le_fast_conn_led_get
+0x49d4 keyboard_le_led_get
+0x49d7 keyboard_usb_mode_start
+0x49db keyboard_usb_check_enable
+0x49e1 keyboard_usb_config_param
+0x49e7 keyboard_usb_vid_pid_config
+0x49ec keyboard_usb_interface_check_power_on
+0x49ee keyboard_usb_vdd_status_store
+0x49f1 keyboard_usb_insert
+0x49fa keyboard_usb_isr
+0x49ff keyboard_usb_mode
+0x4a10 keyboard_usb_tx_kb_normal_data
+0x4a15 keyboard_push_n_key_rollover_key_data_to_usb
+0x4a1d keyboard_ui_ipc_send_event
+0x4a20 ui_ipc_fifo_check
+0x4a25 keyboard_enable_function_flag
+0x4a29 keyboard_disable_function_flag
+0x4a2d keyboard_bt_discovery_button_down_enable
+0x4a2f keyboard_bt_discovery_button_down_disable
+0x4a31 module_init
+0x4a43 module_lpm_uart_init
+0x4a55 module_gpio_init
+0x4a5a module_lpm_lock
+0x4a5e module_process_idle
+0x4a61 module_process_bb_event
+0x4a6f module_process_bb_even_le_disconn
+0x4a73 module_process_le_conn
+0x4a77 module_disconn_start
+0x4a79 module_process_ble_ltk_lost
+0x4a7b module_process_ble_update_phy
+0x4a7c module_set_conn_pin_high
+0x4a7e module_conn_start
+0x4a80 module_stop_adv_discovery
+0x4a84 module_set_conn_pin_low
+0x4a86 module_process_check_hci_command_complete
+0x4a9c module_hci_in_excp
+0x4a9f module_hci_release_except
+0x4aa5 module_hci_dicard_packet
+0x4aa9 module_hci_dicard_bytes
+0x4aaa module_hci_cmd_control
+0x4ac7 module_hci_cmd_set_le_addr
+0x4acc module_hci_cmd_set_visibility
+0x4ad3 module_start_adv_discovery_by_command
+0x4ad3 moudle_start_adv_by_command
+0x4ada module_hci_cmd_set_le_name
+0x4ade module_hci_cmd_receive_le_data
+0x4b03 module_hci_cmd_receive_le_data_finish
+0x4b06 module_hci_cmd_transmit_handle_error
+0x4b0a module_hci_cmd_transmit_le_notify
+0x4b28 module_hci_cmd_transmit_le_notify_malloc_l2cap
+0x4b2d module_get_le_remote_mtu
+0x4b32 module_check_ble_encrypt_state
+0x4b35 module_hci_cmd_inquire_status
+0x4b36 module_hci_cmd_set_uart_baud
+0x4b3e module_hci_cmd_version_request
+0x4b42 module_hci_cmd_ble_disconnect
+0x4b44 module_hci_cmd_ble_disconnect_doing
+0x4b46 module_hci_cmd_set_nvram
+0x4b4b module_hci_cmd_auto_adv
+0x4b51 module_hci_cmd_auto_adv_loop
+0x4b5b module_hci_cmd_auto_adv_store_adv
+0x4b65 module_hci_cmd_auto_adv_store_scan
+0x4b6e module_hci_cmd_auto_adv_store_common
+0x4b79 module_hci_cmd_auto_adv_adv_analys
+0x4b7e module_hci_cmd_power_request
+0x4b84 module_hci_cmd_power_set
+0x4b8b module_hci_cmd_passkey_entry
+0x4b90 module_hci_cmd_le_set_pairing_mode
+0x4b9f module_le_set_pairing_mode_secure_justwork
+0x4ba3 module_le_set_pairing_mode_secure_numeric
+0x4ba8 module_le_set_pairing_mode_secure_passkey
+0x4bac module_le_set_pairing_mode_secure_passkey_res_input
+0x4bb0 module_le_set_no_pairing
+0x4bb1 module_le_set_noinputnooutput
+0x4bb3 module_le_set_pairing_mode_lagacy_just_work
+0x4bb5 module_le_set_pairing_mode_lagacy_passkey
+0x4bb7 module_le_set_pairing_mode_lagacy_passkey_res_input
+0x4bb9 module_le_set_keboadonly
+0x4bbb module_le_set_displayonly
+0x4bbd module_hci_cmd_le_set_scan_data
+0x4bc0 module_hci_cmd_receive_store_mem
+0x4bc6 module_hci_cmd_le_send_conn_update_req
+0x4bcf module_hci_cmd_set_le_adv_parameter
+0x4bd5 module_hci_cmd_le_start_pairing
+0x4bdd module_hci_cmd_set_wake_gpio
+0x4be7 module_hci_cmd_set_tx_power
+0x4bec module_hci_cmd_le_confirm_gkey
+0x4bf3 module_hci_cmd_le_confirm_gkey_ok
+0x4bf5 module_hci_cmd_le_confirm_gkey_fail
+0x4bf7 module_hci_cmd_reset_chip
+0x4bfb module_hci_cmd_delete_customize_service
+0x4c01 module_hci_cmd_add_service_uuid
+0x4c06 module_hci_cmd_add_characteristic_uuid
+0x4c0a module_hci_cmd_add_service_uuid_set_uuid
+0x4c0e module_hci_cmd_add_characteristic_uuid_set_handle
+0x4c15 module_hci_cmd_add_characteristic_uuid_set_uuid
+0x4c2d module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+0x4c35 le_att_creat_new_handle
+0x4c38 uart_copy_rx_bytes_len_data
+0x4c3c module_hci_cmd_le_passkey_entry_input
+0x4c42 module_hci_cmd_passkey_entry_sc_res_input
+0x4c45 module_hci_cmd_receive_ble_passkey
+0x4c48 module_hci_cmd_passkey_entry_res_input
+0x4c4a module_hci_event_receive_invalid_cmd
+0x4c4d module_hci_event_receive_valid_cmd
+0x4c50 module_hci_event_le_connect
+0x4c52 module_hci_event_le_disconnect
+0x4c54 module_hci_event_set_cmd
+0x4c61 module_hci_event_receive_le_data
+0x4c6c module_hci_event_enter_standby_mode
+0x4c6d module_hci_event_enter_standby_mode_len0
+0x4c70 module_hci_event_status_res
+0x4c7a module_hci_read_bt_status
+0x4c80 module_hci_event_store_device
+0x4c89 module_hci_event_gkey_generate
+0x4c8f module_hci_event_invalid_packet
+0x4c9e module_hci_event_passkey_entry_mode
+0x4ca0 module_hci_event_le_tk
+0x4ca6 module_hci_event_le_pairing_fail
+0x4ca8 module_hci_event_le_pairing_success
+0x4caa module_hci_event_pairing_completed
+0x4cb0 module_hci_event_pause_enc
+0x4cb2 module_hci_event_start_enc
+0x4cb3 module_hci_event_enc
+0x4cb9 module_hci_event_uuid_handle
+0x4cc0 module_hci_event_le_input_passkey
+0x4cc2 module_hci_event_le_update_phy
+0x4cc8 module_hci_prepare_tx
+0x4cd2 module_hci_transmit_tx
+0x4cd4 module_set_mcu_wake_pin_high_delay
+0x4cd6 module_set_mcu_wake_pin_h_delay
+0x4cdb module_set_mcu_wake_pin_high
+0x4cdd module_check_mcu_wake_pin_high
+0x4cdf module_set_mcu_wake_pin_low
+0x4ce1 module_le_receive_data
+0x4ce7 module_le_receive_data_ok
+0x4cf2 module_bb_event_timer
+0x4cf3 module_read_vdd_timer
+0x4d05 module_set_le_tx_data_flag
+0x4d07 module_clear_le_tx_data_flag
+0x4d09 module_clr_state
+0x4d0d module_set_state
+0x4d11 mouse_init
+0x4d1c mouse_init_wireless
+0x4d20 mouse_wake_gpio_set
+0x4d22 mouse_cb_fuction
+0x4d40 mouse_setting_config
+0x4d48 mouse_load_device_info_check
+0x4d4e mouse_xtal_init
+0x4d53 mouse_24g_phy_select
+0x4d5d mouse_g24_reconn_dispatch_set
+0x4d60 mouse_g24_reconn_dispatch
+0x4d65 mouse_receiver_addr_check
+0x4d6c mouse_g24_reconn_mode_judge
+0x4d70 mouse_g24_transmit_hop_process
+0x4d72 mouse_g24_transmit_hop_process_new
+0x4d7e mouse_g24_transmit_hop_process_4ms
+0x4d82 mouse_default_init
+0x4d88 mouse_param_info_init
+0x4d8c mouse_spi_parm_init
+0x4d93 mouse_param_common_init
+0x4da0 mouse_compare_addr_init
+0x4da5 mouse_report_rate_parm_init
+0x4da8 mouse_le_report_rate_parm_init
+0x4dab mouse_le_interval_store
+0x4dae mouse_24g_report_rate_parm_init
+0x4db2 mouse_g24_interval_param_2ms
+0x4db6 mouse_report_rate_set_500hz
+0x4db9 mouse_g24_interval_param_4ms
+0x4dc6 mouse_g24_interval_param_8ms
+0x4dd3 mouse_sensor_set_angle
+0x4de1 mouse_set_sensor_angle_vin
+0x4de5 mouse_set_sensor_angle_gnd
+0x4de9 mouse_set_sensor_angle_float
+0x4dea mouse_store_sensor_angle
+0x4dec mouse_le_name_modify
+0x4df5 mouse_start_work
+0x4dfa mouse_le_fast_conn_judge
+0x4e00 mouse_le_device1_judge
+0x4e05 mouse_le_device2_judge
+0x4e09 mouse_start_reconnect_device
+0x4e11 mouse_start_reconnect
+0x4e14 mouse_wakeup_from_power_check
+0x4e1b mouse_wakeup_from_poweron
+0x4e1e mouse4_0_check_reconn_target
+0x4e23 mouse4_0_check_reconn_target_next
+0x4e2d mouse_lpm_check_wake_lock
+0x4e35 mouse_app_enter_hibernate
+0x4e3b mouse_app_enter_hibernate_next
+0x4e3d mouse_before_hibernate
+0x4e42 mouse_setgpio_hibernate
+0x4e52 mouse_wheel_gpio_set_before_hibernate
+0x4e54 mouse_wheel_gpio_clr_wakeup
+0x4e5c mouse_adc_gpio_set_before_hibernate
+0x4e62 mouse_gpio_pd_idle
+0x4e64 mouse_gpio_pd_idle_loop
+0x4e69 mouse_gpio_pd_idle_configured
+0x4e6d mouse_gpio_pd_idle_ext
+0x4e70 mouse_process_lpm_before
+0x4e75 mouse_lpm_before_common
+0x4e9b mouse_set_mult
+0x4ea0 mouse_adc_gpio_set
+0x4ea5 mouse_adc_read
+0x4ea9 mouse_adc_read_start
+0x4eb4 mouse_adc_data_process
+0x4ebb mouse_adc_low_voltage
+0x4ebd mouse_adc_no_low_voltage
+0x4ec4 mouse_adc_bat_percent_lowpower_out
+0x4ec7 mouse_adc_bat_percent_lowpower_out_battery
+0x4ed0 mouse_adc_bat_level_set
+0x4ee1 mouse_adc_bat_level_100_percent
+0x4ee3 mouse_adc_bat_level_0_percent
+0x4ee5 mouse_gpio_init
+0x4f02 mouse_gpio_set_pupd_by_input
+0x4f06 device_gpio_config_input_pd
+0x4f0a device_gpio_config_input_pu
+0x4f0e mouse_gpio_set_analog
+0x4f12 mouse_gpio_set_analog_bit_loop
+0x4f1b mouse_sensor_spi_init
+0x4f1f mouse_spi_write_flash_cb
+0x4f1f mouse_spi_init
+0x4f20 mouse_spid_init_pin
+0x4f26 mouse_motion
+0x4f38 mouse_zwheel
+0x4f3d mouse_t_zwheel
+0x4f42 mouse_wheel_check
+0x4f51 mouse_t_wheel_scan
+0x4f61 mouse_t_wheel_scan_judge1
+0x4f65 mouse_t_wheel_scan_judge2
+0x4f69 mouse_t_wheel_scan_judge11
+0x4f6b mouse_t_wheel_scan_judge12
+0x4f6d mouse_t_wheel_scan_judge21
+0x4f6f mouse_t_wheel_scan_judge22
+0x4f71 mouse_t_wheel_scan_judge3
+0x4f79 mouse_t_wheel_scan_judge30
+0x4f7c mouse_t_wheel_scan_judge31
+0x4f7f mouse_t_wheel_scan_judge32
+0x4f82 mouse_t_wheel_scan_judge33
+0x4f85 mouse_wheel_t_forward
+0x4f89 mouse_wheel_t_back
+0x4f8d mouse_wheel_scan
+0x4f9d mouse_wheel_scan_judge1
+0x4fa1 mouse_wheel_scan_judge2
+0x4fa5 mouse_wheel_scan_judge11
+0x4fa7 mouse_wheel_scan_judge12
+0x4fa9 mouse_wheel_scan_judge21
+0x4fab mouse_wheel_scan_judge22
+0x4fad mouse_wheel_scan_judge3
+0x4fb5 mouse_wheel_scan_judge30
+0x4fb8 mouse_wheel_scan_judge31
+0x4fbb mouse_wheel_scan_judge32
+0x4fbe mouse_wheel_scan_judge33
+0x4fc1 mouse_wheel_forward
+0x4fc5 mouse_wheel_back
+0x4fc9 mouse_before_hibernate_wheel_gpio_set
+0x4fd1 mouse_wheel_trigger
+0x4fd6 mouse_wheel_trigger_timer
+0x4fd9 mouse_wheel_trigger_disable
+0x4fdb mouse_dpi_check
+0x4fe5 mouse_dpi_check_exit
+0x4fe8 mouse_dpi_key_check
+0x4ff0 mouse_dpi_key_connect_matrix
+0x4ff8 mouse_dpi_3io6key_check
+0x4ffc mouse_3io6key_dpi_check_end
+0x4fff mouse_dpi_check_end
+0x5002 mouse_dpi_key_connect_gnd
+0x5004 mouse_dpi_down
+0x500b mouse_dpi_up
+0x5012 mouse_dpi_up_next
+0x5016 mouse_dpi_up_after_long_press
+0x501b mouse_dpi_process
+0x501e mouse_dpi_process_skip_ghost
+0x5025 mouse_dpi_level_store
+0x5028 mouse_double_dpi_check
+0x502a mouse_dpi_increase
+0x502e mouse_dpi_increase_level
+0x5031 mouse_dpi_level_1
+0x5033 mouse_dpi_level_2
+0x5035 mouse_dpi_level_3
+0x5037 mouse_dpi_level_4
+0x5039 mouse_dpi_increase_level_4
+0x503f mouse_dpi_decrease_level_4
+0x5045 mouse_another_dpi_button_down
+0x5045 mouse_dpi_decrease
+0x5049 mouse_dpi_decrease_level
+0x504c mouse_dpi_ghost_check
+0x5050 mouse_dpi_key_check_long_press
+0x5054 mouse_select_device_by_dpi_button
+0x5059 mouse_ready_reconnection_by_dpi_button
+0x505b mouse_discovery_by_dpi_button
+0x5060 mouse_long_dpi_button_bt_discovery
+0x5062 mouse_setting_dpi_4_level
+0x5068 mouse_setting_dpi
+0x506b mouse_setting_sensor_type
+0x5075 mouse_set_cpi1
+0x5077 mouse_set_cpi0
+0x5079 mouse_set_cpi2
+0x507b mouse_set_cpi3
+0x507c mouse_dpi_store
+0x5082 mouse_dpi_write
+0x508b mouse_3065xy_set_dpi
+0x508d mouse_ka8_set_dpi
+0x508f mouse_seting_s201_dpi
+0x5095 mouse_set_s201_dpi_0
+0x5097 mouse_set_s201_dpi_1
+0x5099 mouse_set_s201_dpi_2
+0x509b mouse_set_s201_dpi_3
+0x509d mouse_set_s201_dpi_4
+0x509e mouse_dpi_s201_store
+0x50a5 mouse_sensor_enable_wp
+0x50a7 mouse_sensor_disable_wp
+0x50a9 mouse_seting_3212_dpi
+0x50ae mouse_set_p3212_cpi1
+0x50b0 mouse_set_p3212_cpi0
+0x50b2 mouse_set_p3212_cpi2
+0x50b4 mouse_set_p3212_cpi3
+0x50b5 mouse_p3212_dpi
+0x50bd mouse_seting_ka8g2_dpi
+0x50c2 mouse_set_pka8g2_cpi1
+0x50c4 mouse_set_pka8g2_cpi0
+0x50c6 mouse_set_pka8g2_cpi2
+0x50c8 mouse_set_pka8g2_cpi3
+0x50ca mouse_key
+0x50db mouse_24g_key
+0x50e0 mouse_ghost_key_check
+0x50f0 mouse_matrix_ghost_key_l_bk
+0x50f5 mouse_matrix_ghost_key_l_fw
+0x50fa mouse_ghost_key_lbk_mfw
+0x50fd mouse_ghost_key_lbk_rfw
+0x50ff mouse_ghost_key_lfw_mbk
+0x5102 mouse_ghost_key_lfw_rbk
+0x5104 mouse_ghost_key_mbk_rfw
+0x5105 mouse_ghost_key_rfw
+0x5107 mouse_ghost_key_mfw_rbk
+0x5108 mouse_ghost_key_rbk
+0x5109 mouse_ghost_key_check_next
+0x5113 mouse_ghost_key_check_l_bk
+0x5116 mouse_ghost_key_check_m_bk
+0x5119 mouse_ghost_key_check_r_bk
+0x511c mouse_ghost_key_check_l_fw
+0x511f mouse_ghost_key_check_m_fw
+0x5122 mouse_ghost_key_check_r_fw
+0x5125 mouse_ghost_key_check_bk_fw
+0x5128 mouse_ghost_key_check_lmr
+0x512e mouse_matrix_row_more_than_one_key
+0x5130 mouse_matrix_cow_more_than_one_key
+0x5132 mouse_dpi_another_gpio_check
+0x5135 mouse_dpi_another_gpio_connect_gnd_check
+0x513a mouse_dpi_another_gpio_connect_vin_check
+0x5143 mouse_dpi_another_down_new
+0x5148 mouse_dpi_another_check
+0x514c mouse_dpi_another_state_check
+0x514f mouse_dpi_another_down
+0x5153 mouse_dpi_another_up
+0x5157 mouse_check_key_connect_gnd_new
+0x5161 mouse_check_key_connect_vin_new
+0x516c mouse_another_dpi_key_press
+0x516e mouse_another_dpi_key_release
+0x5170 mouse_check_firekey_gpio
+0x5175 mouse_check_firekey_connect_gnd
+0x517a mouse_firekey_state_store
+0x517d mouse_check_firekey_connect_vin
+0x5183 fire_key_process
+0x5184 fire_key_press
+0x5192 fire_key_process_start
+0x5193 fire_key_down
+0x5195 fire_key_process_release1
+0x5196 fire_key_release
+0x5198 fire_key_process_start2
+0x519a fire_key_process_release2
+0x519c fire_key_process_end
+0x519f firekey_clkn_bt_timer_check
+0x51a4 firekey_clkn_bt_timer_timeout
+0x51a7 mouse_key_check_once
+0x51ac mouse_check_key_gpio
+0x51b9 mouse_check_key_gpio_once
+0x51bc mouse_check_lkey_gpio
+0x51c5 mouse_check_rkey_gpio
+0x51ce mouse_check_mkey_gpio
+0x51d7 mouse_check_bkkey_gpio
+0x51e6 mouse_check_bkkey_gpio_end
+0x51e8 mouse_check_bk_button_connect_gnd
+0x51ec mouse_3io6key_bk_check
+0x51f3 mouse_check_fwkey_gpio
+0x5202 mouse_check_fwkey_gpio_end
+0x5203 mouse_matrix_public_gpio_reset
+0x5205 mouse_check_fw_button_connect_gnd
+0x5209 mouse_3io6key_fw_check
+0x5210 mouse_check_customerkey_gpio
+0x5216 mouse_customer_key_connect_gnd
+0x521b mouse_check_customerkey_state
+0x521e mouse_check_customerkey_gpio_exit
+0x5221 mouse_customer_key_connect_vin
+0x522c mouse_customerkey_press
+0x522f mouse_customerkey_release
+0x5232 mouse_customer_key_need_send
+0x5234 mouse_key_release
+0x5236 mouse_check_key_connect_gnd
+0x523a mouse_check_key_connect_gnd_next
+0x5240 mouse_key_press
+0x5242 mouse_3io6key_check
+0x524e mouse_check_press
+0x5254 mouse_gpio_config_output_high
+0x5256 mouse_gpio_config_output_low
+0x5258 mouse_gpio_config_pu_check
+0x525c mouse_gpio_config_pd_check
+0x5260 mouse_init_sunt
+0x5263 mouse_init_sensor_wakeup
+0x5264 mouse_init_sensor
+0x526c mouse_twspi_reset
+0x526f mouse_read_sensor_id
+0x5276 mouse_init_p32xx_id2_judge
+0x527f mouse_s210x_3205_3t_judge
+0x5283 mouse_s201x_init_param
+0x5285 mouse_mx8650_init_param
+0x528a mouse_8009_init_param
+0x5299 mouse_3205_3t_init_param
+0x52a2 mouse_3204_3l_init_param
+0x52a9 mouse_3212_init_param
+0x52ab mouse_sensor_wr_seq
+0x52b2 mouse_ka8_init_param_check
+0x52c4 mouse_ka8_init_param
+0x52c6 mouse_ka8ul_init_param
+0x52c9 mouse_ka8hd_sensor_judge
+0x52d3 mouse_ka8hd_init_param
+0x52d6 mouse_enable_ka8_sensor_wp
+0x52d9 mouse_p6520_init_param
+0x52dc mouse_init_p3065
+0x52e1 mouse_p3065_init_param
+0x52e3 mouse_p3065xy_init_param
+0x52e5 mouse_ka8g2_id2_judge
+0x52ea mouse_ka8g2_init_param
+0x52ed mouse_ka5857_init_param
+0x52f0 mouse_sensor_reset
+0x52f4 mouse_sensor_reset_end
+0x52f8 mouse_sensor_poweron_init
+0x52fd mouse_sensor_poweron
+0x5301 mouse_sensor_poweron_end
+0x5303 mouse_sensor_powerdown
+0x530a mouse_sensor_powerdown_end
+0x530c mouse_check_sensor_data
+0x5319 mouse_p32xx_sensor_motion
+0x5320 mouse_p32xx_sensor_motion_2
+0x5323 mouse_p32xx_sensor_motion_1
+0x5333 mouse_p3065_judge
+0x5335 mouse_motion32xx_6clk_direction_selection
+0x5337 mouse_motion32xx_9clk_direction_selection
+0x5339 mouse_motion32xx_12clk_direction_selection
+0x533b mouse_motion32xx_3clk_direction_selection
+0x533d mouse_p3212_sensor_motion
+0x5343 mouse_p3212_sensor_motion_1
+0x5346 mouse_p3212_sensor_motion_2
+0x5359 mouse_read_3212sensor_xy_high
+0x535b mouse_pka8g2_sensor_motion
+0x5361 mouse_pka8g2_sensor_motion_1
+0x5365 mouse_p8009_sensor_motion
+0x5370 mouse_motion_6clk_direction_dispose
+0x5374 mouse_motion_12clk_direction_dispose
+0x5378 mouse_motion_9clk_direction_dispose
+0x5380 mouse_motion_3clk_direction_dispose
+0x5382 mouse_sensor_data_swap_places
+0x5387 mouse_clear_sensor_data
+0x538b mouse_clear_sensor_data_by_reset
+0x538d mouse_init_sensor_reset
+0x538e mouse_data_xy_release
+0x5397 mouse_data_extsign
+0x5399 mouse_data_ior
+0x539b mouse_data_extsign_bit3
+0x539e mouse_read_sensor_common
+0x53a4 mouse_sensor_sdio_low
+0x53ab mouse_set_sdio_high
+0x53ad mouse_bluetooth_fast_conn_init
+0x53ae mouse_ble_fast_conn_init
+0x53b3 mouse_buletooth_fast_conn_end
+0x53ba mouse_device1_check_auto_discover
+0x53bc mouse_device2_check_auto_discover
+0x53bd mouse_device_check_auto_discover
+0x53c1 mouse_bluetooth_fast_conn_disable
+0x53c3 mouse_stop_bluetooth_mode
+0x53c6 mouse_disconnect
+0x53cb mouse_check_125hz
+0x53cd mouse_bluetooth_125hz
+0x53d3 mouse_bluetooth_125hz_clear
+0x53d5 mouse_current_mult_update
+0x53da mouse_priority_bb_event
+0x53e9 mouse_le_bb_event_connected
+0x53f1 mouse_le_bb_event_connected_next
+0x53f9 mouse_le_bb_disconnected
+0x5400 mouse_le_bb_disconnected_next
+0x5406 mouse_le_pairing_success
+0x5408 mouse_le_enc_info
+0x5408 mouse_updata_le_param
+0x540a mouse_le_ll_start_encryt
+0x540d mouse_le_ll_reconn_start_encryt
+0x540f mouse_le_ll_enable_start_enc_flag
+0x5411 mouse_le_enable_connect_flag
+0x5415 mouse_le_conn_param_update_rsp_recieved
+0x541e mouse_le_conn_param_lpm_disable
+0x5420 mouse_le_bb_event_connect_complete
+0x5426 mouse_le_write_enable
+0x5428 mouse_le_parse_conn_param_accepted
+0x5434 mouse_le_lpm_mult_reinit
+0x5436 mouse_le_conn_param_lpm_enable
+0x5438 mouse_le
+0x5440 mouse_le_next
+0x5450 mouse_fill_battery_level_le
+0x5455 mouse_check_51cmd_adv
+0x545e mouse_le_check_adv_flag
+0x545f mouse_le_check_adv_flag_loop
+0x5465 mouse_le_adv_data_update
+0x5469 mouse_le_parse_att
+0x5470 mouse_le_parse_att_read_request
+0x5476 mouse_le_send_att_read_response
+0x547a mouse_le_send_att_read_response_check_auth
+0x547f mouse_le_parse_att_write_request
+0x5484 mouse_bb_disconnected
+0x548a mouse_bb_discon_clear_stack
+0x5490 mouse4_0_event_bb_disconn
+0x5494 mouse_bb_event_timer
+0x54ab mouse_bt_discovery_check
+0x54ad mouse_bt_discovery_by_pb_button
+0x54b2 mouse_long_button_bt_discovery
+0x54ba mouse_commbination_dpi_check_timer
+0x54c4 mouse_commbination_key_count_init
+0x54c6 mouse_commbination_dpi_check
+0x54c9 mouse_retransmit_commbination_key_check
+0x54cb mouse_commbination_key_select_device_timer
+0x54d4 p_mouse_check_mouse_key_select_device_set
+0x54d7 mouse_commbination_key_process
+0x54dd mouse_24g_commbination_key_process
+0x54e0 mouse_commbination_key_start
+0x54e6 mouse_commbination_key_up
+0x54ec mouse_commbination_key_down
+0x54f1 mouse_combination_ui_timer
+0x54fa mouse_check_discovery_timeout_timer
+0x54fd mouse_check_discovery_timeout
+0x54ff mouse_check_direct_timeout_timer
+0x5505 mouse_check_direct_timeout
+0x550d mouse_le_enable_att_list_timer
+0x5510 mouse_le_send_smp_security_request_timer
+0x5515 mouse_le_pairing_sm_start_check
+0x551a mouse_le_battery_updata_timer
+0x551f mouse_le_battery_level_updata
+0x5522 mouse_le_enable_att_list
+0x5527 mouse_current_mult_update_timer
+0x552a mouse_current_mult_reinit
+0x552c mouse_long_mult_init
+0x552f mouse_check_no_data_timeout_timer
+0x5532 mouse_check_no_data_timeout
+0x5535 mouse_no_data_timer_init
+0x5538 mouse_store_information_delay_timer
+0x553b mouse_store_device_info_check
+0x553f mouse_bb_event_discovery_btn
+0x5544 mouse_start_discovery
+0x5554 mouse_start_discovery_norandom
+0x5562 mouse_stop_discovery
+0x5565 mouse_stop_le_adv
+0x5569 mouse_store_remote_bdaddr
+0x556f mouse_unplug_clean_bdaddr
+0x5571 mouse_store_device_info_delay
+0x5574 mouse_store_device_info
+0x557a mouse_store_dpi_info_check
+0x5580 mouse_store_eeprom_device_info
+0x5584 mouse_store_eerpom_dpi
+0x5588 mouse_store_flash_device_info
+0x558a mouse_store_otp_device_info
+0x558e mouse_write_otp_app_initflag
+0x5594 mouse_write_otp_device_flag
+0x5596 mouse_write_otp_device_flag_loop
+0x55a0 mouse_device_flag_store
+0x55a6 mouse_devoce_flag_store_end
+0x55aa mouse_device_flag_store_check
+0x55b8 mouse_device_flag_otp_store_judge
+0x55bb mouse_write_otp_device_info
+0x55c0 mouse_write_otp_24g_addr
+0x55c2 mouse_otp_store_24g_addr_loop
+0x55cc mouse_24g_addr_store
+0x55d4 mouse_write_otp_le_device1
+0x55d6 mouse_otp_store_le_addr1_loop
+0x55e0 mouse_le_addr1_store
+0x55e8 mouse_write_otp_le_device2
+0x55ea mouse_otp_store_le_addr2_loop
+0x55f4 mouse_le_addr2_store
+0x55fc mouse_write_otp_le_addr_increase_count_info
+0x5600 mouse_otp_store_le_addr_increase_count_loop
+0x560a mouse_le_addr_increase_count_store
+0x5612 mouse_store_otp_dpi
+0x5616 mouse_otp_store_dpi_loop
+0x5620 mouse_otp_dpi_store
+0x5626 mouse_dpi_store_end
+0x562a mouse_dpi_store_last_check
+0x5638 mouse_dpi_otp_store_judge
+0x563b mouse_device_flag_check
+0x5640 mouse_load_eeprom_info_check
+0x5648 mouse_eeprom_load_recon_info
+0x564c mouse_load_eeprom_dpi
+0x5650 mouse_load_flash_info_check
+0x5654 mouse_information_flash_parameters
+0x565a mouse_spid_flash_release_form_powerdown
+0x565b mouse_spid_write_flash_cmd
+0x5661 mouse_spid_flash_powerdown
+0x5663 mouse_spid_write_flash_cmd_common
+0x566f mouse_flash_erase_sector
+0x5672 mouse_spid_write_flash
+0x567d mouse_flash_power_down
+0x5685 mouse_load_otp_info_check
+0x5689 mouse_app_initflag_load_check
+0x5691 mouse_app_initflag_load
+0x5696 mouse_load_default_dpi
+0x5697 mouse_temp_store_dpi
+0x5699 mouse_otp_load_app_initflag
+0x569d mouse_otp_store_app_initflag
+0x56a1 mouse_read_otp_device_flag
+0x56a3 mouse_read_otp_device_flag_loop
+0x56ad mouse_read_otp_device_flag_common
+0x56b0 mouse_device_flag_load
+0x56b6 mouse_device_flag_load_last
+0x56b7 mouse_device_flag_load_end
+0x56bb mouse_store_device_flag
+0x56bd mouse_device_flag_temp_load
+0x56bf mouse_read_otp_device_info
+0x56c3 mouse_read_otp_le_device1
+0x56c5 mouse_read_otp_le_device2
+0x56c7 mouse_read_otp_le_device1_addr
+0x56c9 mouse_read_otp_le_device1_addr_loop
+0x56d3 mouse_read_otp_le_addr1_common
+0x56d6 mouse_le_addr1_load
+0x56d9 mouse_read_otp_le_device1_locall_addr
+0x56db mouse_read_otp_le_device1_locall_addr_loop
+0x56e5 mouse_read_otp_le_locall_addr1_common
+0x56e8 mouse_le_locall_addr1_load
+0x56ee mouse_device_le_locall_addr1_init
+0x56f0 mouse_read_otp_le_device2_addr
+0x56f2 mouse_read_otp_le_device2_addr_loop
+0x56fc mouse_read_otp_le_addr2_common
+0x56ff mouse_le_addr2_load
+0x5702 mouse_read_otp_le_device2_locall_addr
+0x5704 mouse_read_otp_le_device2_locall_addr_loop
+0x570e mouse_read_otp_le_locall_addr2_common
+0x5711 mouse_le_locall_addr2_load
+0x5717 mouse_device_le_locall_addr2_init
+0x571a mouse_read_otp_24g_addr
+0x571c mouse_read_otp_24g_addr_loop
+0x5726 mouse_read_otp_24g_addr_common
+0x5729 mouse_24g_addr_load
+0x572c mouse_read_otp_le_addr_increase_count_info
+0x572e mouse_read_otp_le_addr_increase_count_loop
+0x5738 mouse_read_otp_le_addr_increase_count_common
+0x573b mouse_le_addr_increase_count_load
+0x573e mouse_read_otp_dpi
+0x5742 mouse_read_otp_dpi_loop
+0x574c mouse_read_otp_dpi_common
+0x574f mouse_dpi_load
+0x5755 mouse_dpi_load_last
+0x5756 mouse_dpi_load_end
+0x5759 mouse_idle
+0x5767 mouse_select_device_check
+0x576b mouse_select_device_by_pb_button
+0x576d mouse_select_device_by_pb_button_check
+0x5776 mouse_retransmit_select_device_by_pb_button
+0x577c mouse_3io6key_pb_button_check_end
+0x577e mouse_select_device_by_pb_button_exit
+0x5781 mouse_pb_button_check
+0x578a mouse_select_device_by_pb_button_end
+0x578d mouse_pb_button_connect_gnd
+0x578f mouse_pb_button_connect_matrix
+0x5797 mouse_select_device_button_up
+0x57a2 mouse_select_device_button_down
+0x57ae mouse_select_device_ghost_check
+0x57b1 mouse_ghost_key_value_check
+0x57b8 mouse_check_select_device_by_switch
+0x57bc mouse_switch_gpio_connect_vin_check
+0x57bf mouse_switch_gpio_connect_gnd_check
+0x57c2 mouse_switch_gpio_connect_vin
+0x57c8 mouse_switch_gpio_connect_gnd
+0x57ce mouse_select_btdevice
+0x57d2 mouse_select_24gdevice
+0x57d5 mouse_select_device_set
+0x57d7 mouse_check_select_device_by_switch_once
+0x57db mouse_switch_gpio_connect_vin_check_once
+0x57de mouse_switch_gpio_connect_gnd_check_once
+0x57e1 mouse_switch_gpio_connect_vin_once
+0x57e7 mouse_switch_gpio_connect_gnd_once
+0x57ed mouse_check_select_24g_device
+0x57f0 mouse_select_device_stop_set
+0x57f2 mouse_check_select_btdevice
+0x57f6 mouse_ready_reconnection_by_button
+0x57fb mouse_store_device_number_before_reset
+0x5801 mouse_soft_reset
+0x5803 mouse_select_device_number
+0x5809 mouse_select_device_count_clean_bt
+0x580b mouse_select_device_number_24g
+0x580f mouse_select_device_count_clean_24g
+0x5811 mouse_store_device_number2eeprom
+0x5815 mouse_bt_button_check
+0x5818 mouse_select_device_enable
+0x581a mouse_select_device_disable
+0x581c mouse_bt_cannel_reconn_enable
+0x581e mouse_bt_cannel_reconn_disable
+0x5820 mouse_bt_discovery_button_down_enable
+0x5822 mouse_bt_discovery_button_down_disable
+0x5824 mouse_adc_read_enable
+0x5826 mouse_24g_set_250hz
+0x5828 mouse_24g_search_dongle_enable
+0x582a mouse_16m_enable
+0x582c mouse_dpi_4level_enable
+0x582e mouse_enable_function_flag
+0x5832 mouse_disable_function_flag
+0x5836 mouse_polling_device
+0x5841 mouse_drawing_optima
+0x5853 mouse_drawing_optima_init
+0x5858 mouse_drawing_optima_modify
+0x586a mouse_data_y_store
+0x586c mouse_drawing_optima_xy_offset_modify
+0x587f mouse_pre_xy_data_judge
+0x5882 mouse_pre_xy_pdata_offset
+0x5885 mouse_xy_data_offset_new
+0x5887 mouse_pre_xy_ndata_offset
+0x588d mouse_current_xy_data_judge
+0x5890 mouse_current_xy_pdata_offset
+0x5894 mouse_current_xy_ndata_offset
+0x589a mouse_pre_xy_get_0_4_times
+0x589d mouse_current_xy_get_0_6_times
+0x589f mouse_div_end
+0x58a2 mouse_drawing_optima_data_x
+0x58aa mouse_drawing_optima_data_y
+0x58b2 mouse_drawing_optima_data
+0x58b8 mouse_data_store_pre
+0x58bc mouse_data_sum_overflow
+0x58c0 mouse_data_sum_overflow_p
+0x58c3 mouse_data_sum_n
+0x58c9 mouse_data_set_direction
+0x58cc mouse_data_zero
+0x58ce mouse_pdata_get_half
+0x58d0 mouse_pdata_get_new_value
+0x58d4 mouse_pdata_invert
+0x58d5 mouse_rega_in_out
+0x58d8 mouse_disable_asm
+0x58da mouse_enable_asm
+0x58dc mouse_pdata_greater_than_check
+0x58e1 mouse_data_less_than_check
+0x58e6 mouse_data_abs_check
+0x58ed mouse_data_abs
+0x58f1 mouse_data_abs_store
+0x58f3 mouse_data_reversal
+0x58f6 mouse_24g_long_sleep_param_update_timer
+0x58f9 mouse_24g_long_sleep_normal_param
+0x58fc mouse_24g_long_sleep_set
+0x5901 mouse_24g_long_sleep_set_80ms
+0x5902 mouse_24g_long_sleep_set_end
+0x5904 mouse_24g_long_sleep_set_30ms
+0x5906 mouse_24g_long_sleep_set_50ms
+0x5908 mouse_24g_long_sleep_set_100ms
+0x590a mouse_24g_hibernate_set
+0x5916 mouse_wakeup_24g
+0x591b mouse_wakeup_24g_from_long_sleep
+0x591f mouse_wheel_gpio_init
+0x5923 mouse_24g_transmit_start
+0x5927 mouse_24g_fast_conn_mode_check
+0x592b mouse_soft_agc_disable
+0x592d mouse_soft_agc_enable
+0x5930 device_store_normal_tx_power
+0x5933 device_fetch_normal_tx_power
+0x5936 mouse_24g_stop
+0x593a mouse_24g_start_mode
+0x5948 mouse_24g_mode_setup_error
+0x594b mouse_24g_first_start_auto_pair_mode
+0x594d mouse_24g_reconn_general_dongle
+0x5952 mouse_24g_start_auto_pair
+0x5956 mouse_24g_first_start_reconn
+0x5959 mouse_24g_first_bluetooth_reconnect
+0x595d mouse_24g_first_bb_event_reconn_timeout
+0x5960 mouse_24g_first_store_reconn_info
+0x5965 mouse_24g_start_pair_mode
+0x596c mouse_24g_pair_mode_check
+0x5971 mouse_24g_attempt_fail
+0x597a mouse_24g_attempt_fail_enter_hibernate
+0x5980 mouse_24g_fast_conn_attempt_fail
+0x5988 mouse_24g_reconn_dongle_start
+0x598c mouse_24g_auto_pair_attempt_fail
+0x5991 mouse_reconn_dongle_attempt_fail
+0x5997 mouse_24g_attempt_success
+0x59a8 mouse_24g_pairing_complete
+0x59ba mouse_24g_short_sleep_clear_wake
+0x59bc mouse_24g_package_data
+0x59c7 mouse_24g_mouse_package_data
+0x59d6 mouse_24g_mouse_package_data_now
+0x59dc mouse_24g_keyboard_package_data
+0x59df mouse_g24_retransmit
+0x59e3 mouse_g24_retransmit_100ms_timer
+0x59ea mouse_g24_retransmit_100ms_timer_init
+0x59ed mouse_dpi_check_once
+0x59f0 mouse_24g_before_lpm_sleep
+0x59f2 mouse_logo_led_on_timer
+0x59fc mouse_logo_led_off
+0x59fe mouse_logo_led_on
+0x5a00 mouse_dpi_led_blink_delay_timer
+0x5a03 mouse_dpi_led_blink_init
+0x5a06 mouse_dpi_led_blink_set_3_level
+0x5a0b mouse_dpi_led_blink_set_4_level
+0x5a11 mouse_dpi_level_1_blink
+0x5a13 mouse_dpi_level_2_blink
+0x5a15 mouse_dpi_level_3_blink
+0x5a17 mouse_dpi_level_4_blink
+0x5a19 mouse_multi_dpi_led_blink_enable
+0x5a1e mouse_dpi_led_blink_delay
+0x5a24 mouse_check_dpi_blink
+0x5a29 mouse_low_voltage_led_timer
+0x5a32 mouse_low_led_blink_timer
+0x5a3b mouse_low_voltage_led_on_judge
+0x5a3d mouse_low_voltage_led_on
+0x5a3f mouse_low_led_timer_count_clean
+0x5a43 mouse_low_voltage_led_off_judge
+0x5a45 mouse_low_voltage_led_off
+0x5a47 mouse_low_led_blink_count_init_judge
+0x5a4b mouse_device_multi_led_parm_init
+0x5a52 mouse_multi_low_led_blink_count_init
+0x5a55 mouse_multi_led_blink_timer_init
+0x5a59 mouse_multi_dpi_led_blink_timer_init
+0x5a5a mouse_store_multi_led_blink_timer
+0x5a5c mouse_device_24g_led_blink_timer_init
+0x5a5e mouse_device_le_discovery_led_blink_timer_init
+0x5a60 mouse_device_le_reconn_led_blink_timer_init
+0x5a62 mouse_device_poweron_led_config
+0x5a66 mouse_multi_led_enable
+0x5a69 mouse_device_24g_pair_led_config
+0x5a70 mouse_device_le_reconn_led_config
+0x5a78 mouse_device_led_blink_count_init
+0x5a7a mouse_device_discovery_led_config
+0x5a7c mouse_multi_led_blink_enable_init
+0x5a81 mouse_led_multi_timer
+0x5a85 mouse_device_multi_led_type_on
+0x5a8a mouse_device_poweron_led_off
+0x5a8e mouse_multi_led_type_blink
+0x5a93 mouse_device_led_blink_judge
+0x5a96 mouse_device_led_blink_limit
+0x5a98 mouse_multi_led_type_blink_next
+0x5a9b mouse_multi_led_type_blink_start
+0x5a9f mouse_multi_led_blink
+0x5aa3 mouse_multi_led_blink_count_decrease
+0x5aa7 mouse_multi_led_on_judge
+0x5aa9 mouse_device_multi_led_on
+0x5aaa mouse_device_led_on
+0x5ab0 mouse_device_24g_led_on
+0x5ab2 mouse_device_bt1_led_on
+0x5ab4 mouse_device_bt2_led_on
+0x5ab5 mouse_led_on
+0x5ab6 mouse_led_off
+0x5ab7 mouse_multi_led_off_judge
+0x5ab9 mouse_multi_led_off_judge_next
+0x5abb mouse_device_multi_led_off
+0x5abc mouse_device_led_off
+0x5ac2 mouse_device_24g_led_off
+0x5ac6 mouse_device_bt1_led_off
+0x5aca mouse_device_bt2_led_off
+0x5ace mouse_device_multi_led_all_off
+0x5ad3 mouse_multi_dpi_led_off_judge
+0x5ad6 mouse_multi_dpi_led_off
+0x5ad8 mouse_multi_dpi_led_on_judge
+0x5adb mouse_multi_dpi_led_on
+0x5add mouse_low_voltage_led_no_enter_lpm
+0x5ae3 mouse_low_voltage_led_no_enter_lpm_next
+0x5ae6 g24_transmit_by_interrupt_exit_check
+0x5ae9 mouse_lpm_mode_clear
+0x5aec mouse_store_signal_rssi
+0x5aee mouse_le_transmit
+0x5af0 mouse_set_lpm_mult
+0x5af2 mouse_le_set_lpm_mult
+0x5af7 mouse_24g_long_sleep
+0x5b02 mouse_24g_short_sleep
+0x5b0f mouse_24g_short_sleep_last_miss
+0x5b14 mouse_24g_short_sleep_notify
+0x5b1e mouse_24g_short_sleep2
+0x5b1f mouse_24g_short_sleep3
+0x5b22 mouse_24g_short_sleep_default
+0x5b25 mouse_24g_short_sleep_long
+0x5b29 mouse_24g_miss_temp_clear
+0x5b2c mouse_24g_short_sleep_2
+0x5b2e mouse_24g_sub_miss_temp
+0x5b33 mouse_24g_transmit_callback
+0x5b35 mouse_24g_send_time_check
+0x5b55 mouse_24g_send_time_check_average
+0x5b6d mouse_24g_short_sleep_storet
+0x5b6f mouse_24g_send_time_check_average_late
+0x5b79 mouse_24g_send_time_check_average_min
+0x5b7b mouse_24g_send_timer_first
+0x5b7f mouse_24g_send_time_long_wake
+0x5b83 mouse_usb_check_enable
+0x5b87 mouse_usb_isr
+0x5b8b mouse_usb_interface_check
+0x5b8f mouse_usb_mode_enable
+0x5ba4 mouse_usb_mode_disable
+0x5bb0 mouse_usb_mode
+0x5bba mouse_push_data_to_usb
+0x5bc2 mouse_usb_timer_check
+0x5bd1 mouse_usb_timer_timeout
+0x5bd4 mouse_usb_timer_init
+0x5bd7 mouse_usb_config_param
+0x5bdb mouse_usb_device_name_config
+0x5be1 mouse_usb_config_kb_check
+0x5be6 mouse_usb_config_param_setup
+0x5be8 mouse_usb_hid_icon_config
+0x5bea mouse_usb_report_rate_set
+0x5bef mouse_usb_report_rate_set_125hz
+0x5bf1 mouse_usb_report_rate_set_250hz
+0x5bf3 mouse_usb_report_rate_set_500hz
+0x5bf5 mouse_usb_report_rate_set_1000hz
+0x5bf7 rec_cb_function
+0x5bfa rec_process_idle
+0x5bfc rec_ui_timer_check
+0x5c03 rec_ui_timer_check_loop
+0x5c0c rec_ui_timer_init
+0x5c0e rec_ui_timer_check_end
+0x5c13 rec_ui_timer_check_send_evt
+0x5c14 rec_evt_timer_loop
+0x5c1b rec_tscan
+0x5c21 rec_tscan_gnd_process
+0x5c26 rec_tscan_process
+0x5c2c rec_tscan_col_state_init
+0x5c32 rec_tscan_row_state_init
+0x5c3a rec_tscan_row_gpio_config_input_pull_up
+0x5c3f rec_tscan_get_row_state
+0x5c47 rec_tscan_get_row_state_loop
+0x5c5c rec_tscan_record_key_coord
+0x5c6a rec_tscan_combin_key_num_output
+0x5c6c rec_tscan_combin_key_num_loop
+0x5c72 rec_tscan_output_combin_key_num
+0x5c77 rec_tscan_pull_up_current_col_gpio
+0x5c7a rec_tscan_col_state_next_gpio_check
+0x5c82 rec_tscan_key_down
+0x5c8e rec_tscan_key_up
+0x5c96 rec_tscan_key_up_send
+0x5c99 rec_tscan_key_up_config
+0x5c9c rec_tscan_key_num_output
+0x5c9d rec_tscan_record_init
+0x5ca0 rec_tscan_key_value_clear
+0x5ca3 rec_tscan_get_gndkey_state
+0x5ca9 rec_tscan_get_gndkey_loop
+0x5cbb rec_tscan_gndkey_down
+0x5cc5 rec_tscan_gndkey_up
+0x5ccd rec_tscan_gndkey_up_send
+0x5ccf rec_tscan_gndkey_num_output
+0x5cd0 rec_tscan_gndkey_record_param_init
+0x5cd2 rec_tscan_gndkey_num_check
+0x5cd5 rec_tscan_gndkey_num_loop
+0x5cdc rec_tscan_store_gndkey_press_state
+0x5cde rec_tscan_store_gndkey_release_state
+0x5ce0 rec_gpio_bit_first_set
+0x5ce2 rec_gpio_bit_second_set
+0x5ce4 rec_tscan_debounce
+0x5cf3 rec_gpio_weak_pullup
+0x5cf6 rec_gpio_set_lpm_weak_pullup
+0x5d05 rec_gpio_set_0x10_regc
+0x5d07 rec_gpio_set_input
+0x5d0a rec_gpio_wakeup_disable
+0x5d0b rec_save_regc
+0x5d0d rec_rescue_regc
+0x5d10 rec_save_rega
+0x5d12 rec_rescue_rega
+0x5d15 rec_save_reg
+0x5d18 rec_rescue_reg
+0x5d1b rec_tscan_gpio_set_before_lpm
+0x5d1e rec_gpio_wakeup_enable
+0x5d21 rec_tscan_gpio_config_high_impedance
+0x5d24 rec_tscan_gpio_config_tri_angle_wakeup
+0x5d28 rec_gpio_config_high_impedance
+0x5d29 rec_high_impedance_loop
+0x5d2e rec_gpio_wakeup_config
+0x5d2f rec_gpio_wakeup_config_loop
+0x5d3a rec_gpio_wakeup_addr_search
+0x5d3f rec_tscan_output_gndkey_num
+0x5d43 rec_tscan_output_key_map
+0x5d4c rec_tscan_key_num_check
+0x5d4f rec_tscan_key_num_loop
+0x5d56 rec_tscan_output_key_num
+0x5d59 rec_push_buffer_in_queue
+0x5d5c rec_push_buffer_in_queue_end
+0x5d5e rec_puch_buffer_in_queue_check
+0x5d61 rec_key_type_select
+0x5d68 rec_set_key_type_consumer
+0x5d6a rec_set_key_type_mouse
+0x5d6c rec_set_key_type_keypad
+0x5d6e rec_set_key_type_nec
+0x5d70 rec_tscan_key_send
+0x5d76 rec_tscan_send_keypad
+0x5d7e rec_send_nec_keypad
+0x5d88 rec_le_send_consumer
+0x5d94 rec_le_send_data
+0x5d9c rec_le_send_mouse
+0x5da9 rec_le_send_keyboard
+0x5db1 rec_le_fill_standard_key_data
+0x5db7 rec_led_start_on
+0x5db9 rec_led_start_off
+0x5dbb rec_nec_send_userdata_6122
+0x5dcd rec_nec_init_6122
+0x5dd3 rec_pwm_duty_cycle_set
+0x5dd9 rec_nec_send_boot_6122
+0x5ddc rec_nec_empty
+0x5dde rec_nec_carrier
+0x5de0 rec_nec_delay_us
+0x5de1 rec_nec_delay_us_loop
+0x5de5 rec_nec_send_byte_6122
+0x5de6 rec_nec_send_byte_loop_6122
+0x5dec rec_nec_send_bit_6122
+0x5def rec_nec_send_bit0_6122
+0x5df2 rec_nec_send_bit1_6122
+0x5df5 rec_nec_send_bit
+0x5df9 rec_nec_send_repeat_6122
+0x5e01 rec_nec_6122_start
+0x5e05 rec_nec_disable
+0x5e06 rec_nec_6122_stop
+0x5e07 rec_nec_io_disable
+0x5e08 rec_gpio_config_output_low
+0x5e0a rec_gpio_config_output_high
+0x5e0c rec_nec_send_repeat_6122_timer_init
+0x5e0d rec_nec_timer_set
+0x5e10 rec_nec_send_repeat_6122_timer_clear
+0x5e12 rec_nec_rx_num
+0x5e17 rec_nec_rptr_big_wptr
+0x5e1d rec_nec_receive_data
+0x5e28 rec_nec_receive_one_data
+0x5e33 rec_nec_receive_two_data
+0x5e46 rec_nec_receive_three_data
+0x5e5b rec_nec_rptr_reset
+0x5e5f rec_nec_receiver_init_wtr
+0x5e63 rec_nec_carry_time
+0x5e6c rec_nec_carry_store
+0x5e77 rec_nec_receive_run_time
+0x5e7b rec_nec_receive_timeout
+0x5e7e rec_nec_update_timeout
+0x5e83 rec_nec_learn_analysis
+0x5e8d rec_audio_adpcm_encode
+0x5e92 rec_adpcm_encode
+0x5e9d rec_adpcm_encode_loop
+0x5ed7 rec_adpcm_encode_cal_delta
+0x5eda rec_adpcm_encode_store_sign1
+0x5edc rec_adpcm_encode_cal_smaller_zero
+0x5ede rec_adpcm_set_diff_by_sign
+0x5ee1 rec_adpcm_diff_negation
+0x5ee5 rec_check_diff_big_step1
+0x5eea rec_check_diff_big_common
+0x5eee rec_check_diff_big_common_next
+0x5ef3 rec_check_diff_big_step2
+0x5efb rec_check_diff_big_step3
+0x5f03 rec_check_sign_deal1
+0x5f05 rec_valpred_sub_vpdiff
+0x5f08 rec_valpred1_store
+0x5f0a rec_valpred_add_vpdiff
+0x5f0e rec_adpcm_check_valpred_more_32767
+0x5f12 rec_adpcm_check_valpred_less_f32767
+0x5f17 rec_adpcm_valpred_more_32767
+0x5f19 rec_adpcm_valpred_less_f32767
+0x5f1b rec_adpcm_check_index_less_0
+0x5f20 rec_adpcm_check_index_big_88
+0x5f25 rec_adpcm_set_0_index
+0x5f26 rec_adpcm_store_index1
+0x5f28 rec_adpcm_set_88_index
+0x5f2a rec_adpcm_check_bufferstep
+0x5f2c rec_adpcm_bufferstep_neque_0
+0x5f30 rec_adpcm_bufferstep_eque_0
+0x5f35 rec_adpcm_bufferstep_increase_out_ptr1
+0x5f3a rec_adpcm_set_bufferstep_to_outp
+0x5f3c rec_adpcm_get_val_from_inp
+0x5f43 rec_int16_2_int32
+0x5f45 rec_int16_2_int32_less_0
+0x5f47 rec_calca_ixor
+0x5f49 rec_char_2_int32
+0x5f4b rec_char_2_int32_less_0
+0x5f4e rec_voice_notify_apk
+0x5f50 rec_le_notify_data
+0x5f54 rec_voice_start_apk
+0x5f55 rec_voice_notify_apk_data
+0x5f58 rec_voice_end_apk
+0x5f5a rec_voice_notify_box
+0x5f5d rec_voice_start_box
+0x5f5e rec_voice_notify_box_data
+0x5f62 rec_voice_end_box
+0x5f64 rec_ota_process
+0x5f70 rec_ota_init
+0x5f77 rec_ota_parse_protocol_version_req
+0x5f7f rec_ota_parse_buck_size_req
+0x5f86 rec_ota_parse_start_req
+0x5f89 rec_ota_tx_flashmode_not_support
+0x5f8e rec_ota_tx_start_req_success
+0x5f92 rec_ota_parse_start_req_update_normal
+0x5f9e rec_erase_num_sector_flash
+0x5f9f rec_erase_num_sector_flash_loop
+0x5fa8 rec_ota_set_flash_start_addr
+0x5fb2 rec_ota_parse_data_write_req
+0x5fb2 rec_ota_parse_data_write_data_store
+0x5fbf rec_ota_prep_data_write_rsp
+0x5fc4 rec_ota_tx_notify_success
+0x5fc5 rec_ota_tx_notify_common
+0x5fcd rec_ota_parse_end_req
+0x5fe5 rec_ota_tx_end_req_return
+0x5fee rec_ota_tx_length_error
+0x5ff0 rec_ota_result_error_write_flash
+0x5ff2 rec_ota_data2flash_remain
+0x6001 rec_ota_queue_count_256
+0x6005 rec_ota_sum_page
+0x6007 rec_ota_sum_all
+0x6013 rec_ota_sum_len
+0x6017 rec_ota_sum
+0x6019 rec_ota_sum_loop
+0x601d rec_ota_data_from_flash_len
+0x6026 rec_ota_data_from_flash
+0x602b rec_ota_data_from_flash_page
+0x602f rec_ota_polling
+0x6032 rec_ota_data2flash_page
+0x603d rec_ota_increase_flash_offset_addr
+0x6041 rec_ota_data2flash
+0x6046 rec_queue_ota_init
+0x6048 rec_queue_init_config
+0x6052 rec_queue_ota_push
+0x6060 rec_queue_ota_data_loss
+0x6061 rec_queue_ota_pop
+0x6068 rec_out_queue
+0x606b rec_out_queue_loop
+0x6070 rec_ota_updata_head
+0x6073 rec_ota_write_head_check
+0x6077 rec_ota_write_head_a
+0x6079 rec_ota_read_head
+0x607d rec_ota_write_head_b
+0x607e rec_ota_write_head
+0x6085 rec_spid_flash_erase_page
+0x608e rec_spi_wait_flash
+0x6097 rec_save_contr
+0x6099 rec_rescue_contr
+0x609b rec_save_contw
+0x609d rec_rescue_contw
+0x609f rec_save_loopcnt_rega
+0x60a1 rec_rescue_rega_loopcnt
+0x60a2 rec_rescue_loopcnt
+0x60a5 rec_save_loopcnt
+0x60a7 rec_save_temp
+0x60a9 rec_rescue_temp
+0x60ac rec_queue_enter_config
+0x60b6 rec_queue_out_config
+0x60c0 rec_enter_queue
+0x60c0 rec_enter_queue_loop
+0x60c8 shutter_init
+0x60d7 shutter_power_switch
+0x60dc shutter_common_init
+0x60ea shutter_hart_swtich_power_on
+0x60ed shutter_le_scale_lpm_lock
+0x60f3 shutter_process_bb_event
+0x60fc ble_shutter_process_baseband_connect
+0x6100 ble_shutter_process_baseband_disconnect
+0x6103 ble_shutter_process_reconnect_complete
+0x610b ble_shutter_process_parse_connect_parameter_update_response
+0x6111 shutter_process_soft_swtich_button_down
+0x6117 shutter_store_currenct_led_state
+0x611c shutter_process_soft_swtich_button_up
+0x6121 shutter_load_currenct_led_state
+0x612a shutter_le_bb_event_timer
+0x612d shutter_check_sleep_timer
+0x6130 shutter_sleep_timeout
+0x6134 shutter_check_power_off_timer
+0x6137 shutter_check_power_off_timeout
+0x613e ble_shutter_reconn_timer
+0x6143 shutter_process_idle
+0x6145 shutter_process_lpm_before
+0x6147 shutter_le_before_hibernate
+0x614a shutter_stop_bluetooth_discovery
+0x614a ble_shutter_stop_bluetooth_discovery
+0x614e shutter_start_bluetooth_discovery
+0x6150 ble_shutter_start_discovery
+0x615d shutter_soft_swtich_power_on
+0x615d shutter_start_reconnect
+0x615f ble_shutter_start_reconnect
+0x616b shutter_disconnect_current_connection
+0x616e shutter_check_data_enable
+0x6172 shutter_check_ble_data_enable
+0x6175 shutter_check_bluetooth_conn
+0x6179 shutter_change_bluetooth_status_bt_disconn
+0x6179 ble_shutter_change_bluetooth_status_bt_disconn
+0x617a shutter_check_send_data
+0x6182 shutter_key_change
+0x6186 shutter_key_press
+0x6189 shutter_key_release
+0x618b push_queue_press_or_release
+0x618e push_buffer_in_queue
+0x6193 shutter_send_data_to_master
+0x6196 pop_queue_to_ble_data
+0x619f queue_push_one_byte
+0x61a2 queue_pop_one_byte
+0x61a7 ble_shutter_receive_data
+0x61aa shutter_init_param
+0x61b3 shutter_load_buffer_config_form_datarom
+0x61b7 shutter_soft_swtich_power_off
+0x61bb shutter_wait_power_off
+0x61be ui_soft_swtich_init
+0x61c3 ui_soft_switch_first_power_on
+0x61c7 ui_soft_swtich_init_next
+0x61ca ui_soft_swtich_init_power_on_time
+0x61cf ui_soft_switch_botton_up
+0x61d3 ui_soft_switch_botton_long_press
+0x61d6 ui_soft_switch_power_on
+0x61de ui_soft_switch_power_off
+0x61e4 shutter_ble_adv_interval_set
+0x61e8 le_send_notify_from_list
+0x61f0 shutter_le_uuid_table_conf
+0x61f3 shutter_default_init
+0x6259 shutter_dy_6_key_conf
+0x625f shutter_dy_7_key_conf
+0x6265 shutter_dy_8_key_conf
+0x626b shutter_dy_key_conf
+0x6270 shutter_dy_adv_conf
+0x6283 shutter_dy_le_uuid_table_conf
+0x6286 shutter_dy_init
+0x62a9 shutter_dy_process_lpm_before
+0x62ab shutter_dy_le_before_hibernate
+0x62af dy_set_key_gpio_before_hiernate
+0x62b4 dy_set_key_gpio_loop
+0x62bc dy_set_key_gpio_loop_end
+0x62bf dy_shutter_gpio_config_input_pd
+0x62c1 shutter_dy_process_idle
+0x62cb shutter_dy_iphone_every_move_max_set
+0x62d8 shutter_dy_shutter_send_data_to_master
+0x62dd shutter_dy_pop_queue_to_ble_data
+0x62e9 shutter_dy_pop_queue_to_ble_data2
+0x62f2 shutter_dy_le_bb_event_timer
+0x62f9 shutter_dy_iphone_move_mid_timer
+0x62fc shutter_dy_iphone_move_mid_timeout
+0x6300 shutter_dy_iphone_move_mid
+0x630a shutter_dy_iphone_up_mid
+0x630c shutter_dy_iphone_like_mid
+0x630e shutter_dy_clear_key_state_timer
+0x6311 shutter_dy_clear_key_state_timeout
+0x6314 shutter_dy_check_power_off_timer
+0x6317 shutter_dy_check_power_off_timeout
+0x631a shutter_dy_process_bb_event
+0x6322 ble_dy_shutter_process_parse_connect_parameter_update_response
+0x632b ble_parameter_updata_response_ios
+0x632e ble_shutter_dy_pairing_success
+0x6337 ble_shutter_dy_process_baseband_disconnect
+0x633c ble_shutter_dy_process_baseband_connect
+0x6340 shutter_dy_check_send_data
+0x6348 shutter_dy_over_clear
+0x634a shutter_dy_key_value_filter
+0x634d shutter_dy_key_change
+0x6351 shutter_dy_key_press
+0x6354 shutter_dy_key_press_next
+0x6364 shutter_dy_page_set
+0x6367 shutter_dy_move_set
+0x636c shutter_dy_key_move_to_specify_location
+0x636e shutter_dy_iphone_check_move_mid
+0x6374 shutter_dy_key_press_clk
+0x637f shutter_dy_shutter_key_release
+0x6382 shutter_dy_shutter_key_release_time
+0x6393 shutter_dy_key_release_led
+0x6396 shutter_dy_push_queue_release
+0x6399 shutter_dy_push_queue_release1
+0x639c shutter_dy_push_queue_release1_next
+0x63a2 shutter_dy_push_queue_press_or_release
+0x63a5 shutter_dy_move_mode_queue_release
+0x63a9 shutter_dy_jude_queue_size
+0x63ae shutter_dy_push_queue_long_release
+0x63b4 shutter_clear_dy_key_state
+0x63b7 shutter_dy_keyscan_key_process
+0x63c0 shutter_dy_keyscan_key_check_release_loop
+0x63d4 shutter_dy_keyscan_key_check_long_press
+0x63eb shutter_dy_key_long_press_set_key_normal
+0x63ee shutter_dy_key_long_press_set_move_trigger
+0x63f6 shutter_dy_move_mode_disable
+0x63f8 shutter_dy_long_press_android_or_ios
+0x63fd shutter_dy_keyscan_key_check_release
+0x6407 shutter_dy_keyscan_key_process_next
+0x6418 shutter_dy_skip_check_combine_key
+0x641e shutter_dy_single_key_led
+0x6425 shutter_dy_check_combine_key
+0x6426 shutter_dy_check_combine_key_loop
+0x6431 shutter_dy_check_combine_key_parse
+0x6439 shutter_dy_push_buffer_in_queue
+0x643d shutter_dy_move_to_specify_location
+0x6444 shutter_dy_move_ios_to_specify_location
+0x6449 shutter_dy_move_down_left_corner_count_set
+0x6453 shutter_dy_move_down_left_corner
+0x6457 shutter_dy_move_down_left_corner_loop
+0x645e shutter_dy_move_x_max
+0x6461 shutter_dy_move_x_max_number
+0x6468 shutter_dy_move_y_max
+0x646b shutter_dy_move_y_max_number
+0x6472 shutter_dy_check_combine_key_release
+0x647d shutter_dy_combine_key_enableuser
+0x6480 shutter_dy_check_combine_key_release_all
+0x648c shutter_dy_check_move_data
+0x6491 shutter_dy_check_move_data_single_key
+0x6497 shutter_dy_check_move_data_combine_key
+0x649e shutter_dy_get_move_data
+0x64a8 shutter_dy_get_move_data_iphone
+0x64b5 shutter_dy_move_x_empty_check
+0x64bb shutter_dy_every_move_size_set
+0x64c0 shutter_dy_move_left
+0x64c6 shutter_dy_move_store_x
+0x64c7 shutter_dy_move_data_store
+0x64d2 shutter_dy_get_ios_move_data
+0x64da shutter_dy_move_ios_release_data
+0x64e2 shutter_dy_move_android_data_store
+0x64e9 shutter_dy_move_android_release_data
+0x64f1 shutter_dy_data_android_xy_data
+0x64f9 shutter_dy_move_x_check_max
+0x6504 shutter_dy_clear_move_x
+0x6507 shutter_dy_move_right
+0x650b shutter_dy_move_right_next
+0x650f shutter_dy_move_up
+0x6511 shutter_dy_move_y_check_max
+0x6523 shutter_dy_dnroid_up_check_y
+0x652a shutter_dy_clear_move_y
+0x652b shutter_dy_android_move_y_empty_check
+0x652d shutter_dy_move_y_empty_check
+0x6537 shutter_dy_move_store_y
+0x6539 shutter_dy_move_down
+0x653b shutter_dy_move_down_next
+0x6542 shutter_dy_move_android_down
+0x6548 ble_shutter_dy_receive_data
+0x654b shutter_dy_le_find_service_hand_by_uuid
+0x6558 shutter_dy_le_parse_att
+0x6561 shutter_dy_le_parse_att_read_blob_request
+0x656c shutter_dy_le_parse_att_read_blob_request_ios
+0x656d shutter_dy_le_parse_att_read_blob_request2
+0x6577 shutter_dy_le_parse_att_read_request
+0x657b shutter_dy_le_send_att_read_response_check_auth
+0x6581 shutter_dy_le_send_att_read_response
+0x6587 shutter_dy_le_parse_att_find_by_type_value_rsp
+0x6587 shutter_dy_le_remote_iphone
+0x65a1 shutter_dy_iphone_move_initial_set
+0x65a8 shutter_dy_le_parse_error_rsp
+0x65ac shutter_dy_remote_not_iphone
+0x65b1 shutter_dy_not_iphone_read_conf
+0x65b3 shutter_dy_check_iphone
+0x65b5 shutter_dy_le_get_press_ptr
+0x65bb shutter_dy_le_get_release_ptr
+0x65bb shutter_dy_le_get_release_ptr_set
+0x65c3 shutter_dy_le_get_release_ptr_volume
+0x65ca shutter_dy_le_get_release_ptr_set_volume_dec
+0x65cc shutter_dy_le_get_release_ptr_set_volume_inc
+0x65ce shutter_dy_le_get_vol_inc_ptr
+0x65d3 shutter_dy_le_get_vol_dec_ptr
+0x65d8 shutter_dy_long_key_function
+0x65dd shutter_dy_long_key_volume_timer
+0x65e0 shutter_dy_long_key_volume_timeout
+0x65e4 shutter_dy_loop_send_volume_inc_page
+0x65e8 shutter_dy_loop_send_volume_dec_page
+0x65ec shutter_dy_clear_volume_timer
+0x65ef shutter_dy_link_key_loop_timer
+0x65f2 shutter_dy_link_key_loop_timeout
+0x65f5 shutter_dy_link_data_android_or_ios
+0x65fa shutter_dy_link_key_long_press
+0x65ff shutter_dy_clear_link_key_timer
+0x6602 shutter_dy_jude_clear_move_config
+0x6606 shutter_dy_clear_move_config
+0x6609 shutter_dy_write_otp_convert_data
+0x660d shutter_dy_read_otp_convert_data
+0x6611 shutter_dy_store_ios_config_data
+0x6623 shutter_dy_store_android_config
+0x662a shutter_dy_get_ios_config
+0x663c shutter_dy_get_android_config
+0x6641 shutter_dy_store_move_config_info
+0x6642 shutter_dy_load_move_config_info
+0x6643 shutter_dy_shutter_uart_config_loop
+0x664e shutter_dy_shutter_get_first_read_addr
+0x6652 shutter_dy_shutter_next_read_addr
+0x6656 shutter_dy_shutter_last_read_addr
+0x665a shutter_dy_shutter_read_ios_android_addr
+0x6665 shutter_dy_update_read_check_addr
+0x6669 shutter_dy_campare_otp_data
+0x6679 shutter_dy_set_shutter_valid_data_flag
+0x667d shutter_dy_shutter_judge_ios_or_android
+0x6689 shutter_dy_shutter_not_find_ios_or_android
+0x668e shutter_dy_shutter_android_save_init_loaction
+0x6693 shutter_dy_shutter_ios_save_init_loaction
+0x66a2 shutter_dy_clear_temp_count
+0x66a4 shutter_dy_campare_effective_addr_read_otp
+0x66bd shutter_dy_campare_effective_addr_write_otp
+0x66d0 shutter_dy_shutter_read_move_config_from_otp_addr
+0x66d5 shutter_dy_shutter_write_move_config_to_otp_addr
+0x66d9 shutter_dy_shutter_1s_timer
+0x66dc rf_debug_rx_gpio_low
+0x66dd rf_debug_gpio_low
+0x66df rf_debug_rx_on_line
+0x66df rf_debug_rx_gpio_high
+0x66e0 rf_debug_gpio_high
+0x66e2 rf_debug_rx_gpio_h_l_h
+0x66e3 rf_debug_rx_gpio_l_h
+0x66e5 rf_debug_rx_gpio_l_h_l
+0x66e5 rf_debug_shutdown_radio_line
+0x66e6 rf_debug_rx_crc_line
+0x66e7 rf_debug_rx_sync_line
+0x66e8 rf_debug_rx_crc_fail_line
+0x66ea rf_debug_rx_crc_error_line
+0x66ea rf_debug_rx_sync_timeout_line
+0x66eb rf_debug_tx_off_line
+0x66eb rf_debug_tx_gpio_low
+0x66ed rf_debug_tx_on_line
+0x66ed rf_debug_tx_gpio_high
+0x66ef rf_debug_tx_gpio_l_h_l
+0x66f2 hci_init
+0x66fb hci_process_loop
+0x66fd hci_init_clksel_xtal
+0x66ff hci_init_uart_default_config
+0x6703 hci_init_uart_default_config_tx
+0x6707 hci_init_uart_default_config_rx
+0x670b hci_init_uart_default_config_rts
+0x670f hci_init_uart_default_config_cts
+0x6713 hci_init_uart_config
+0x672f hci_init_pwm_default_config
+0x6733 hci_init_pwm
+0x673e hci_process_check_uart_rx
+0x6746 hci_parse_packet_cmd
+0x6754 hci_parse_complete_packet
+0x6757 hci_parse_packet_cmd_ogf_vendorspecific_debug
+0x6762 phci_grp_vendor_chipid
+0x6767 phci_grp_vendor_baud
+0x676a phci_grp_vendor_patch_common
+0x6775 phci_grp_vendor_patch
+0x6776 phci_grp_vendor_patch_loop
+0x677a phci_grp_vendor_patch_check_sum
+0x677f phci_grp_vendor_done
+0x6782 phci_grp_vendor_done_loop
+0x678e phci_grp_vendor_patch_bad
+0x6790 phci_grp_vendor_mem
+0x6796 phci_grp_vendor_flow_control
+0x679a hci_normal_reply
+0x679b hci_send_event_command_complete_error_command_nuknown
+0x679d hci_send_event_command_complete_error_command_disallowed
+0x679f hci_send_event_command_complete_without_payload
+0x67a2 hci_send_event_command_complete
+0x67ab hci_prepare_send_event
+0x67af hci_drop_current_packet
+0x67b4 cmd_exit
+0x67b6 hid_device_load_flash_info_check
+0x67bb hid_device_store_flash_device_info
+0x67c1 hid_device_before_store_reconn_info
+0x67ca hid_device_store_le_device
+0x67cf hid_device_load_device_info
+0x67d5 hid_device_select_reconn_device
+0x67df hid_device_load_le_device
+0x67e4 hid_device_check_device_addr
+0x67e6 hid_device_check_le_device_addr
+0x67e8 hid_device_check_bt_device_addr_common
+0x67ec hid_device_check_device_addr_end
+0x67f2 hid_device_clean_addr
+0x67f8 hid_device_ble_init_address
+0x67ff hid_device_default_parm_init
+0x680c hid_device_param_common_init
+0x681d hid_device_compare_addr_store
+0x6820 hid_device_enable_lpm
+0x6822 hid_device_disable_lpm
+0x6824 hid_device_le_send_empty_packet
+0x6825 hid_device_le_send_package_data
+0x6828 hid_device_le_fill_package_data
+0x682e hid_device_le_fill_standard_key_data
+0x6830 mouse_le_fill_standard_key_data
+0x6831 keyoard_le_fill_standard_key_data_send
+0x6833 hid_device_le_fill_bit_consumer_key_data
+0x6836 hid_device_le_fill_multimedia_key_data
+0x6839 hid_device_le_fill_systemctrl_key_data
+0x683c hid_device_send_package_data_check
+0x683e hid_device_le_send_mouse_data
+0x6843 hid_device_le_fill_data
+0x684b hid_device_clear_key_data
+0x684e hid_device_copy_key_data
+0x6852 hid_device_24g_keyboard_package_data_set
+0x6856 hid_device_push_mouse_data_to_usb
+0x685b hid_device_push_keyboard_data_to_usb
+0x685d hid_device_push_keyboard_package_data_to_usb
+0x6864 hid_device_push_standard_keyboard_data_to_usb
+0x6869 hid_device_push_systemctrl_key_data_to_usb
+0x686f hid_device_push_multimedia_key_data_to_usb
+0x6875 hid_device_push_bit_consumer_key_data_to_usb
+0x6878 hid_device_le_parse_att_write_request
+0x6883 hid_device_24g_search_dongle_init
+0x6886 mouse_24g_search_dongle
+0x6888 hid_device_24g_search_dongle
+0x6892 hid_device_24g_search_dongle_loop
+0x689e hid_device_24g_search_dongle_loop_end
+0x68a4 hid_device_24g_search_dongle_loop_retry
+0x68a6 hid_device_24g_search_dongle_check
+0x68b1 hid_device_24g_search_dongle_success
+0x68bc hid_device_g24_ackpayload_parse
+0x68c4 hid_device_before_lpm_set
+0x68c8 hid_device_peripheral_clock_off
+0x68cb hid_device_cb_fuction
+0x68d2 l2cap_init
+0x68d7 l2cap_init_wake
+0x68d8 check_l2cap_map
+0x68da check_l2cap_map_loop
+0x68df check_l2cap_map_used
+0x68e3 check_l2cap_map_used2
+0x68e5 ble_l2cap_malloc
+0x68e9 host_l2cap_malloc
+0x68ee host_l2cap_malloc_loop
+0x68f6 host_l2cap_malloc_next_buffer
+0x68fa host_l2cap_malloc_succ
+0x68fd host_l2cap_malloc_check_buffer_enough
+0x6901 host_l2cap_malloc_check_buffer_enough_loop
+0x690e host_l2cap_malloc_check_buffer_enough_end
+0x6913 host_l2cap_malloc_into_fifo
+0x691c host_l2cap_malloc_into_fifo_no_push
+0x691f l2cap_malloc_fifo_out
+0x6924 l2cap_malloc_free
+0x692b l2cap_malloc_discard
+0x6935 l2cap_malloc_is_fifo_full
+0x6938 l2cap_malloc_is_fifo_nearly_full
+0x693b l2cap_malloc_is_fifo_empty
+0x693e l2cap_malloc_fifo_get_first_ptr
+0x6941 l2cap_malloc_free_loop
+0x6943 l2cap_malloc_fifo_get_first_ptr_empty
+0x6945 l2cap_malloc_get_full_map
+0x6949 l2cap_malloc_get_full_map_loop
+0x694f l2cap_lpm_get_wake_lock
+0x6951 l2cap_lpm_put_wake_lock
+0x6953 twspi_reset
+0x695b twspi_reset_next
+0x6965 twspi_reset_ext
+0x6968 twspi_disable
+0x696c twspi_enable
+0x6970 twspi_write
+0x6971 twspi_read
+0x6972 aes_disable
+0x6976 read_function_aes
+0x697a read_function
+0x697d read_fuction_zero
+0x697f get_block_header
+0x6980 get_block_header0
+0x6988 read_first_block
+0x698d read_first_block_cont
+0x6990 get_iv
+0x6994 set_iv
+0x699a load_aes_reinit
+0x699d load_storage
+0x69aa load_storage_loop
+0x69b1 load_data_checksum_calc
+0x69ba load_data_checksum_compare
+0x69c8 load_data_checksum_ok
+0x69ca load_data_checksum_compare_fail
+0x69cc loadcode_lock_load_ucode
+0x69d0 loadcode_lock
+0x69d7 loadcode_set_lock
+0x69df load_otp_hv_vsel
+0x69e4 load_otp_set_init
+0x69ea set_otp_config
+0x69fb set_otp_config2
+0x6a11 loadcode_load_key
+0x6a20 loadcode
+0x6a2b loadcode_bistwait
+0x6a31 loadcode_nobist
+0x6a34 loadcode_otp
+0x6a49 loadcode_unenc
+0x6a4b loadcode_otp_loop
+0x6a56 loadcode_otp_end
+0x6a58 loadcode_iic_loop
+0x6a64 run_otp_code
+0x6a67 loadcode_check_otp_lock
+0x6a6c loadcode_otp_lock
+0x6a6e loadcode_iic_eeprom_2k
+0x6a77 loadcode_spi
+0x6a78 loadcode_spi_loop
+0x6a87 loadcode_hci
+0x6a8b clear_key_buf
+0x6a91 iicd_load_gpio_init
+0x6a95 iicd_load_default_gpio
+0x6a99 loadcode_iic_by_eeprom
+0x6a9f loadcode_timeout
+0x6aa5 loadcode_error_delay
+0x6aab loadcode_error
+0x6aaf set_bistfix_wake
+0x6ab1 set_bistfix_wake_patchram
+0x6ab7 set_bistfix_wake_xram
+0x6abf set_bistfix_save_xram
+0x6ac9 set_bistfix_save_patchram
+0x6ad1 set_bistfix_set_patchram_addr
+0x6adc set_bistfix
+0x6ae3 set_bistfix_loop
+0x6ae9 set_ucode_status
+0x6af0 decrypt_code
+0x6af3 decrypt_code_loop
+0x6af6 decrypt_code_skip
+0x6afa save_ucode_loop
+0x6aff load_ucode
+0x6b07 load_ucode_loop
+0x6b0c otp_load_code
+0x6b19 otp_enable_chgpump25
+0x6b22 otp_enable_chgpump65
+0x6b25 disable_otp
+0x6b26 otp_disable_chgpump
+0x6b28 enable_otp_read
+0x6b29 otp_reset
+0x6b2f otp_set_addr
+0x6b33 otp_write
+0x6b37 otp_program
+0x6b3a otp_program_bit
+0x6b5a otp_skip_0
+0x6b62 otp_read_data
+0x6b63 otp_read_data1
+0x6b68 otp_read_data_loop
+0x6b71 otp_read_noinc
+0x6b77 otp_read_unenc
+0x6b7b app_lpm_lock_check
+0x6b89 app_lpm_kb_lock
+0x6b8c app_lpm_module_lock
+0x6b8c app_lpm_hciboot_lock
+0x6b90 app_lpm_dongle_lock
+0x6b96 app_lpm_mouse_lock
+0x6b9c app_lpm_mouse_lock_24g
+0x6ba0 app_lpm_shutter_lock
+0x6ba4 app_lpm_car_lock
+0x6ba7 app_lpm_car_lock_application_and_ble
+0x6bad app_mpu_s0_lock
+0x6bb0 app_lpm_mpu_lock_ble
+0x6bb2 app_mpu_s1_lock
+0x6bb5 app_lpm_mpu_lock_24g
+0x6bb8 app_lpm_mpu_lock_24g_ble
+0x6bbc spid_init
+0x6bbd spid_init_common
+0x6bc6 spid_write_reg
+0x6bcd spid_read_reg
+0x6bce spid_read_regs
+0x6bd6 wait_spid_done
+0x6bda flash_write
+0x6be1 flash_write_spi_sm_timer
+0x6be8 spid_flash_write_start
+0x6bee spid_flash_erase_sector
+0x6bf6 spid_flash_wait_erase_sector
+0x6bfa spid_flash_write_data
+0x6c01 spid_flash_wait_write_data
+0x6c09 spid_flash_data_recover
+0x6c0b spid_flash_data_recover_comm
+0x6c0e spid_flash_data_preserve
+0x6c16 spid_init_flash
+0x6c1c spid_unlock_flash
+0x6c1d spid_sendcmd_common
+0x6c25 spid_flash_release_form_powerdown
+0x6c27 spid_flash_powerdown
+0x6c29 spid_write_flash_data
+0x6c32 spid_write_flash
+0x6c36 spid_write_flash_common
+0x6c43 spid_read_flash
+0x6c55 spid_read_flash_wait
+0x6c59 wait_spid_flash_done
+0x6c62 spid_load_flash
+0x6c6f spi_load_flash_wait
+0x6c81 spi_gpio_init
+0x6c86 spi_pin_set
+0x6c92 spi_gpio_default_init
+0x6c99 soft_reset_chip
+0x6c9b iic_init_600khz
+0x6ca3 iic_init_360khz
+0x6cab iicd_init_pin
+0x6cac iicd_init_pin_scl_sda
+0x6cb2 iicd_read_init_pin
+0x6cb4 wait_iicd_done
+0x6cb7 set_eeprom_size_2k
+0x6cba clear_eeprom_size_2k
+0x6cbd iicd_read_eep_data_size_2k
+0x6cc1 iicd_read_eep_size_2k_lcadcode
+0x6cc4 iicd_read_eep_size_2k
+0x6cc9 iicd_write_protect_eep_data
+0x6cce iicd_eeprom_write_enable
+0x6cd3 iicd_wp_gpio_output_low
+0x6cd5 iicd_eeprom_write_disable
+0x6cd7 iicd_read_eep_data
+0x6cdd iicd_read_eep
+0x6ce3 iicd_read_eep_common
+0x6cf2 iicd_inc_addr
+0x6cf5 iicd_read_eep_load_code_size_2k
+0x6cf6 iicd_set_addr
+0x6cfa iicd_write_eep_data
+0x6d00 iicd_write_eep_loop
+0x6d0f iicd_eep_transparency
+0x6d21 iicd_eep_deal_short_packet
+0x6d26 iicd_write_eep_size_2k
+0x6d30 iicd_write_eep
+0x6d3d iicd_write_eep_common
+0x6d44 iic_check_eeprom_standby
+0x6d46 iic_check_eeprom_standby_wait
+0x6d5b uarta_init_dma_mem
+0x6d5d uart_init_dma_mem
+0x6d66 uarta_init_baud_rate
+0x6d68 uarta_calc_baud_rate_config
+0x6d6a uart_calc_baud_rate_config
+0x6d6f uart_calc_baud_rate_config_choice_uart_clock
+0x6d73 uart_calc_baud_rate_config_choice_uart_clock_crystal
+0x6d75 uart_clock_select_main_freq_crystal
+0x6d79 uart_clock_select_main_freq_dpll
+0x6d7d uarta_init_tx
+0x6d81 uarta_init_rx
+0x6d85 uarta_prepare_tx
+0x6d89 uarta_prepare_rx
+0x6d8d uarta_send
+0x6d8f uarta_rxdone
+0x6d91 uarta_clear_current_rx
+0x6d95 uarta_prepare_tx_register_push
+0x6d97 uarta_send_register_pop
+0x6d99 uart_register_push
+0x6d9d uart_register_pop
+0x6da1 wait_uarttx
+0x6da4 uart_copy_tx_bytes_fast
+0x6da6 uart_copy_tx_bytes_fast_loop
+0x6dab uart_copy_tx_bytes_fast_loop_four
+0x6db1 uart_tx_8_bytes
+0x6db4 uart_tx_4_bytes
+0x6db7 uart_copy_tx_bytes
+0x6db9 uart_copy_tx_bytes_loop
+0x6dbd uart_copy_rx_bytes_fast
+0x6dbf uart_copy_rx_bytes_fast_loop
+0x6dc4 uart_copy_rx_bytes_fast_loop_four
+0x6dca uart_rx_8_bytes
+0x6dcd uart_rx_4_bytes
+0x6dd0 uart_copy_rx_bytes
+0x6dd2 uart_copy_rx_bytes_loop
+0x6dd6 app_store_nvram_event
+0x6dd8 check_51cmd_update_device_record
+0x6ddf write_device_record
+0x6de3 write_device_loop_find
+0x6def write_device_loop_find0
+0x6df3 set_index_finded_device
+0x6df8 set_index_find_device_master_addr
+0x6dfd store_rec_data_common
+0x6e00 set_index_finded_device_ble_mode
+0x6e04 set_index_finded_device_irk
+0x6e06 store_ble_rec_data_common
+0x6e08 set_index_finded_device_ediv
+0x6e0b nvram_find_addr_from_bd_list
+0x6e11 find_addr_from_bd_list_ble_mode
+0x6e19 find_addr_from_bd_list_static_addr
+0x6e1d find_addr_from_bd_list_static_addr_reconnect
+0x6e20 find_addr_from_bd_list_static_addr_sc_or_legacy
+0x6e20 find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy
+0x6e23 find_addr_from_bd_list_static_addr_sc
+0x6e23 find_addr_from_bd_list_random_non_resolvable_private_address_sc
+0x6e26 find_addr_from_bd_list_public_device_addr
+0x6e29 find_addr_from_bd_list_random_non_resolvable_private_address
+0x6e2b find_addr_from_bd_list_random_addr
+0x6e2d find_addr_from_bd_list_common
+0x6e35 nvram_find_addr_from_list
+0x6e45 nvram_find_addr_from_list_compare
+0x6e47 find_master_addr_from_list_compare
+0x6e4c find_addr_from_list_compare_ble_mode
+0x6e4f find_irk_form_list_compare
+0x6e61 genernate_master_macaddress
+0x6e6a find_ediv_form_list_compare
+0x6e79 check_nvram
+0x6e7f init_device_list
+0x6e83 init_device_list_loop
+0x6e88 load_device_list_mode_4
+0x6e93 clear_ltk_exists
+0x6e95 eeprom_store_le_reconn_info
+0x6e97 eeprom_store_reconn_info
+0x6e9c get_gpio_wakeup_index
+0x6ea5 gpio_set_wake_by_current_state
+0x6eac gpio_set_wake
+0x6eb3 gpio_set_wake_high
+0x6eb7 gpio_set_wake_low4bit
+0x6ebc gpio_set_qdec_mode
+0x6ec0 gpio_set_low_pullup
+0x6ec8 gpio_set_low_pullup_low4bit
+0x6ecd gpio_clr_wake
+0x6ed5 gpio_config_input_nowake
+0x6ed7 gpio_config_input
+0x6eda gpio_config_input_without_wake
+0x6ee0 gpio_get_bit
+0x6eeb gpio_get_bit_reverse
+0x6eed gpio_out_inactive
+0x6ef1 gpio_config_output
+0x6ef1 gpio_out_active
+0x6ef4 gpio_out_flag
+0x6ef7 gpio_out
+0x6efc gpio_check_active
+0x6f03 gpio_check_active_high
+0x6f05 gpio_set_analog
+0x6f09 gpio_write
+0x6f0b gpio_set_high_impedance
+0x6f10 gpio_addr
+0x6f14 gpio_addr_next
+0x6f16 gpio_addr_ext
+0x6f19 gpio_config_param
+0x6f1c gpio_config_function
+0x6f1d gpio_config_function_int
+0x6f22 gpio_config_function_int_next
+0x6f25 gpio_config_function_int_ext
+0x6f28 gpio_get_config
+0x6f2c gpio_get_config_next
+0x6f2f gpio_get_config_ext
+0x6f32 gpio_set_before_lpm
+0x6f34 setgpio_loop
+0x6f3e setgpio_loop_end
+0x6f42 gpio_set_before_lpm_ext
+0x6f45 setgpio_pullup
+0x6f48 setgpio_pulldown
+0x6f4b lpm_puchk_set_check
+0x6f4e lpm_config_puchk_disable
+0x6f4f lpm_config_puchk_set
+0x6f51 lpm_config_puchk_enable
+0x6f53 sadc_calibration
+0x6f5f sadc_cal_read
+0x6f62 sadc_cal_read_loop
+0x6f6b sadc_cal_write
+0x6f71 sadc_cal_write_loop
+0x6f7c adc_init_data
+0x6f8e vdd_calculate_by_mode
+0x6f93 vdd_reference_inter3v_calculate
+0x6f97 vdd_reference_inter3v_calculate_by_mode_vdcdc
+0x6f9e vdd_reference_inter3v_calculate_by_mode_gpio
+0x6fa4 mul1v_div1v_to_cal
+0x6fa9 enable_adc_init_config
+0x6fb2 enable_adc
+0x6fb7 enable_adc_reference_source_inter3v
+0x6fbe read_adc_inter1v
+0x6fd1 vdd_reference_inter1p8v_calculate
+0x6fd5 vdd_reference_inter1p8v_calculate_by_mode_vdcdc
+0x6fdb vdd_reference_inter1p8v_div2_calculate_by_mode_gpio
+0x6fe0 vdd_calculate00
+0x6fe8 vdd_calculate11
+0x6fee enable_adc_reference_source_inter1p8v
+0x6ff0 enable_adc_reference_source_inter1p8v_div2_gpio
+0x6ff8 enable_adc_reference_source_inter1p8v_vdcdc
+0x6fff enable_adc_reference_source_inter1p8v_common
+0x7007 sadc_channel
+0x700e sar_adc_read_wait
+0x7011 sadc_read
+0x7017 sadc_read_wait2
+0x701b sadc_dma
+0x702a vdd_calculate
+0x7030 vdd_calculate2
+0x7032 vdd_calculate1
+0x7039 vdd_calculate_common
+0x703e adc_bat_percent_lowpower_out
+0x704e adc_set_low_power_flag
+0x7051 adc_clear_low_power_flag
+0x7054 adc_set_no_power_flag
+0x7057 adc_clear_no_power_flag
+0x7059 adc_set_power_flag
+0x705b keyscan_key_init
+0x705d keyscan_key_init_next
+0x7062 keyscan_key_init_lp1
+0x7066 keyscan_key_init_end
+0x7067 keyscan_scan_key
+0x706d keyscan_scan_key_lp1
+0x7078 keyscan_scan_key_lp1_next
+0x707f keyscan_process_lpm_before
+0x7081 keyscan_process_lpm_before_next
+0x7086 keyscan_process_lpm_before_lp1
+0x708a keyscan_process_lpm_before_end
+0x708b keyscan_key_process
+0x7096 keyscan_key_process_next
+0x709f keyscan_key_lp1
+0x70ab keyscan_key_lp1_next
+0x70b4 keyscan_send_key_data
+0x70b9 pwm_init
+0x70bf delay_nop100
+0x70c1 pwm_clk_set
+0x70c4 pwm_12m_clk_set
+0x70c6 pwm_24m_clk_set
+0x70c8 pwm_33k_clk_set
+0x70ca pwm_out_set
+0x70de pwm_duty_cycle_set
+0x70e1 pwm_autoload_set
+0x70ea delay_1clk_of_33k
+0x70ec pwm_duty_cycle_set_without_autoload
+0x70f5 pwm_init_bit_set
+0x70f6 pwm_init_bit_set_process
+0x70fb pwm_gpio_select
+0x70fc pwm_gpio_select_process
+0x7100 pwm_enable
+0x7103 pwm_disable
+0x7106 pwm_set_select
+0x710b pwm_select_channel
+0x710e wdt_init_config
+0x711b wdt_set_enable
+0x711d wdt_set_disable
+0x711f wdt_init_set
+0x7123 nec_init_config
+0x7127 select_system_clk_12m_xtal
+0x7128 select_system_clk_12m_common
+0x712c select_system_clk_12m_dpll
+0x712e function_g2
+0x7145 function_f6_eb
+0x7155 get_r
+0x7159 function_f6_ea
+0x716c function_f5
+0x717e function_f5_common
+0x718f store_addr_common_b
+0x7194 store_addr_common_a
+0x7199 function_f4_ca
+0x71a4 function_f4_cb
+0x71af function_aes_cmac
+0x71b3 function_ceil16
+0x71c1 function_aes_cmac_set_flag_0_balnk
+0x71c4 function_aes_cmac_set_flag_0
+0x71c5 function_aes_cmac_set_flag_0_common
+0x71cf function_aes_cmac_aes
+0x71d2 function_aes_cmac_aes_loop
+0x71d8 function_aes_cmac_aes_loop_end
+0x71e0 load_inverse_result
+0x71e4 store_inverse_k
+0x71e6 inverse_k
+0x71e9 inverse_memdat
+0x71ed bn_lshift_0_inverse
+0x71f7 function_aes_cmac_k1_inverse
+0x71f8 function_aes_cmac_inverse_common
+0x71fc function_aes_cmac_k2_inverse
+0x71fe function_aes_cmac_generate_subkey
+0x7206 function_aes_cmac_k1
+0x720f function_aes_cmac_k1_0
+0x7210 function_aes_cmac_k2
+0x7219 function_aes_cmac_xor_rb
+0x721a function_aes_cmac_xor_rb_loop
+0x7220 function_aes_cmac_xor_loop_common
+0x7224 function_aes_cmac_padding
+0x7227 function_aes_cmac_padding_loop
+0x722c function_aes_cmac_padding_loop2
+0x722f function_aes_cmac_padding_beq_length
+0x7230 function_aes_cmac_padding_common
+0x7232 function_aes_cmac_padding_big_length
+0x7234 concatenate_temp24
+0x7235 concatenate_temp16
+0x7238 generate_stk
+0x723c authenticate_rconfirm
+0x723f authenticate_mconfirm
+0x7244 generate_confirm
+0x7247 generate_mrand
+0x724a generate_sk
+0x7253 ccm_b0
+0x7256 first_block_counter
+0x7258 first_block_data
+0x7259 first_block
+0x725a iv_common
+0x726b generate_mic
+0x727a generate_mic_loop
+0x727f generate_mic_end
+0x7283 aes_crypt_data
+0x728d le_encrypt_new_start
+0x72a6 ccm_wait_enc
+0x72ab ccm_check_enc_done
+0x72ad ccm_enc_done
+0x72b2 ccm_init_common
+0x72b9 wait_ccm_done
+0x72bb ccm_ctrl_clr
+0x72bd wait_aes
+0x72bf do_aes_ocb
+0x72c2 do_aes_cbc
+0x72c5 do_aes_ctr
+0x72c8 aes_init
+0x72cb wait_keyinit_done
+0x72ce dec_key_initial
+0x72d2 do_aes_ecb_dec
+0x72d9 ecb_dec_generate
+0x72dc ecb_dec_generate_loop
+0x72e1 aes_ecb_dec_loop
+0x72e8 do_aes_cbc_dec
+0x72f4 function_s1
+0x7309 function_c1
+0x730f function_c1_master
+0x731f function_c1_irat
+0x7324 function_c1_loop1
+0x7337 padding_data
+0x733c padding_loop
+0x7341 aes_load_data
+0x7342 load_data_loop
+0x7346 load_data_padding
+0x734b aes_load_xor
+0x734d load_key
+0x734f load_data128
+0x7350 load_regext
+0x7351 load_regext_loop
+0x7356 load_sk
+0x7358 clear_hidata
+0x735a regext_clear
+0x735d aes_clear_data
+0x735e aes_clear
+0x735f clear_loop
+0x7360 clear_data_rest
+0x7363 store_aes_result
+0x7365 send_aes_result_loop
+0x736a store_enc_data
+0x7370 store_enc_loop
+0x7378 store_enc_byte
+0x737c compare_res
+0x737e compare_res_loop
+0x7384 enable_authrom
+0x7388 disable_authrom
+0x738c init_memp
+0x73e3 init_memp_256
+0x7435 publickey_init
+0x7436 sp_calc_sequence_256_check
+0x743e stop_publickey_calc_256
+0x7440 sp_clear_flags
+0x7449 sp_calc_check_publickey_256
+0x7464 sp_calc_b256
+0x747a random_generator
+0x747f compare4
+0x7489 compare4_failed
+0x748a compare4_success
+0x748b bn_testbit
+0x7491 bn_eq_zero
+0x7497 bn_eq_0
+0x74a0 bn_bigeq
+0x74a3 bn_bigeq_0
+0x74ad bn_add
+0x74af bn_add_0
+0x74bb bn_sub
+0x74bd bn_sub_0
+0x74c9 bn_rshift6
+0x74cb bn_rshift
+0x74cc bn_rshift_0
+0x74d7 bn_lshift
+0x74d9 bn_lshift_0
+0x74e4 bn_load
+0x74e5 bn_load_0
+0x74ea sp_initialize_256
+0x74ed sc_reset
+0x74f0 sp_wait_pubkey_calc_256_done
+0x74f6 sp_debug_private_256
+0x750b sp_pubkey_calc_256
+0x7524 sp_pubkey_generated_256
+0x752a sp_dhkey_calc_256
+0x753a sp_dhkey_generated_256
+0x7540 sp_calc_sequence_256
+0x754a sp_calc_sequence_done_256
+0x7550 eckp_calc_256
+0x7558 eckp_calc_init_256
+0x755b eckp_calc_init_256_1
+0x7565 ecunmapz_256
+0x7577 ecdbl_256
+0x75c8 ecadd_256
+0x7634 bn_invmod_256
+0x7642 bn_invmod_256_2
+0x765d bn_invmod_256_1
+0x766b bn_invmod_256_0
+0x7672 bn_mulmod_256
+0x7680 bn_mulmod_256_1
+0x7686 bn_mulmod_256_0
+0x769b bn_p256mod
+0x7704 bn_load_mem
+0x7708 bn_load_256
+0x770a bn_sqrmod_256
+0x770c bn_add_256
+0x770e bn_addmod_256
+0x7711 bn_lshiftmod_256
+0x7712 bn_lshiftmod_ismod_256
+0x771b bn_lshiftmod_p_256
+0x7723 sub_p2_256
+0x7727 bn_submod_256
+0x7731 bn_submod_256_np
+0x773a bn_sub_256
+0x773c bn_rshift_256
+0x773f bn_lshift_256
+0x7742 bn_bigeq_256
+0x7746 bn_eq_zero_256
+0x7749 bn_rshifteven_256
+0x774a bn_rshifteven_256_1
+0x7759 bn_rshifteven_256_0
+0x775d ui_init
+0x7762 ui_dispatch
+0x7764 ui_button_init
+0x776e ui_button_polling
+0x7774 ui_button_down
+0x7780 ui_button_up
+0x778a ui_button_check_long_press
+0x7791 lpm_button_get_wake_lock
+0x7793 lpm_button_clean_wake_lock
+0x7795 calc_curr_struct_prt
+0x779a ui_led_init_global
+0x779f ui_led_init_loop
+0x77a5 ui_led_init_set
+0x77a8 ui_led_on_global
+0x77ad ui_led_blink_stop_global
+0x77ad ui_led_off_global
+0x77b2 ui_led_blink_start_global
+0x77b8 ui_led_set_style_global
+0x77bd ui_led_dispatch
+0x77c0 ui_led_blink_polling
+0x77c6 ui_led_off_static
+0x77c9 ui_led_on_static
+0x77cc ui_led_change_style_by_type
+0x77d5 ui_led_blink_state_lighting
+0x77e0 ui_led_blink_state_darking
+0x77ec ui_led_blink_infinite
+0x77f0 ui_led_blink_timer_start
+0x77f2 ui_led_stop_timer
+0x77f4 ui_timer_timeout
+0x77f8 ui_timer_check
+0x77ff ui_timer_check_loop
+0x7809 ui_timer_init
+0x780c ui_timer_check_end
+0x7812 ui_timer_check_send_evt
+0x7813 ui_ipc_get_lock
+0x7814 ui_ipc_get_lock_wait
+0x7817 ui_ipc_put_lock
+0x7819 ui_ipc_send_event
+0x7824 ui_ipc_send_cmd
+0x782d ui_ipc_clean_all_fifo
+0x7831 check_51cmd
+0x783c check_51cmd_once
+0x7850 check_51cmd_once_continue
+0x7859 check_51cmd_check_idle
+0x785e check_51cmd_restore
+0x7860 check_51cmd_adv
+0x7866 check_51cmd_stop_adv
+0x786b check_51cmd_direct_adv
+0x7871 check_51cmd_stop_direct_adv
+0x7876 check_51cmd_le_disconnect
+0x787a check_51cmd_ble_update_connect_param
+0x787b check_51cmd_led_off
+0x787d check_51cmd_led_on
+0x787f check_51cmd_led_start_blink
+0x7886 check_51cmd_led_start_blink_in_blink
+0x7889 check_51cmd_le_start_con
+0x788c check_51cmd_start_scan
+0x788e check_51cmd_stop_scan
+0x7891 check_51cmd_hibernate
+0x7897 check_51cmd_hibernate_btn_disabled
+0x7899 check_51cmd_le_smp_sec_req
+0x789a ui_check_paring_button
+0x789d queue_init
+0x78a2 queue_push
+0x78b2 calc_queue_next_ptr
+0x78ba queue_pop
+0x78cc queue_get_new_ele
+0x78db queue_store_new_ele
+0x78ea queue_empty
+0x78ee queue_full
+0x78f2 queue_get_size
+0x78f6 usb_isr
+0x7902 usb_init
+0x7905 usb_init_restart
+0x791a usb_offline_check_init
+0x791c usb_offline_state
+0x7922 usb_init_param
+0x7954 usb_config_cb
+0x7956 usb_tx_interval_config
+0x795b usb_nak_state
+0x7963 usb_nak_state_judge
+0x7966 usb_nak_state_timer_init
+0x796b usb0_attached_state_judge
+0x7970 usb_clear_halt_dispose
+0x7976 usb_rx_no_data
+0x7979 usb_rx_len
+0x7983 usb_rx_data
+0x7986 usb_rx_read
+0x798b usb_rx_ep13
+0x7994 usb_rx
+0x79a1 usb_class_type
+0x79a8 usb_out_one_byte
+0x79ac usb_in_device
+0x79b4 usb_out_device
+0x79bc usb_in_standard_req
+0x79c2 usb_in_class_req
+0x79c7 usb_in_manufacturer_req
+0x79c8 usb_out_standard_req
+0x79d0 usb_out_class_req
+0x79d5 usb_out_manufacturer_req
+0x79d6 usb0_force_stall
+0x79db usb0_reply_zerolen
+0x79dd usb0_request_get_configuration
+0x79ef usb0_request_get_cfg_dev_cfg
+0x79f1 usb0_request_get_cfg_dev_addr
+0x79f3 usb0_request_get_descriptor
+0x79fb dsc_hid_info
+0x7a00 dsc_hid_info_interface0
+0x7a03 dsc_hid_info_interface1
+0x7a06 dsc_device_info
+0x7a0a dsc_info_set_data_len
+0x7a0f dsc_info_set_initial_data_len
+0x7a10 dsc_info_set_data_size_completed
+0x7a15 dsc_info_set_current_data_len
+0x7a17 usb_set_high_addr
+0x7a1b usb0_set_addr
+0x7a1f dsc_config_info
+0x7a22 dsc_string_info
+0x7a30 dsc_hid_report_info
+0x7a34 dsc_hid_report_info0
+0x7a38 usb0_request_get_interface
+0x7a4a usb0_request_get_status
+0x7a5b usb0_sdsystem_dispose
+0x7a5d usb0_get_status_in_device
+0x7a62 usb_send_zero_packet
+0x7a64 usb_send_ones_packet
+0x7a66 usb_send_two_packet
+0x7a68 usb0_get_status_in_interface
+0x7a6c usb0_get_status_in_endpoint
+0x7a75 usb0_get_status_in_ep_in_ep0
+0x7a76 usb0_get_status_in_ep_in_ack
+0x7a79 usb0_get_status_in_ep_in_ep1
+0x7a7b usb0_get_status_in_ep_in_ep2
+0x7a7d usb0_get_status_in_ep_in_ep3
+0x7a7f usb_get_idle
+0x7a83 usb_get_report
+0x7a88 usb_get_report_dispose
+0x7a8b usb_get_report_send_data
+0x7a8f usb_get_report_data_release
+0x7a92 usb_get_report_data_success
+0x7a95 usb_get_protocol_req
+0x7a9d usb_get_report_protocol
+0x7a9e usb_get_boot_protocol
+0x7a9f usb0_request_clear_feature
+0x7aae usb0_request_clear_feature_out_device
+0x7abc usb0_request_clear_feature_out_interface
+0x7abd usb0_request_clear_feature_out_endpoint
+0x7ac6 usb0_force_stall_ep0_in_off
+0x7ac8 usb0_force_stall_ep1_in_off
+0x7ac9 usb0_force_stall_ep1_in_off_reply
+0x7acb usb0_force_stall_ep2_in_off
+0x7acd usb0_force_stall_ep3_in_off
+0x7acf usb0_request_set_feature
+0x7ad8 usb0_request_set_feature_out_device
+0x7ae3 usb_wakeup_timer_reinit
+0x7ae7 usb0_request_set_feature_out_interface
+0x7ae8 usb0_request_set_feature_out_endpoint
+0x7af3 usb0_force_stall_ep0_in_on
+0x7af5 usb0_force_stall_ep1_in_on
+0x7af7 usb0_force_stall_ep2_in_on
+0x7af9 usb0_force_stall_ep3_in_on
+0x7afb usb0_request_set_address
+0x7b0c usb_usb0_state_set_dev_default
+0x7b0d usb0_request_set_wait_address
+0x7b12 usb_usb0_state_set_dev_addr
+0x7b14 usb0_request_set_configuration
+0x7b29 usb0_request_set_cfg_addr_state
+0x7b29 usb0_request_set_cfg_cfg_state
+0x7b2d usb0_request_set_cfg_stay_addr_state
+0x7b2f usb0_request_set_interface
+0x7b40 usb_set_idle
+0x7b4e usb_clear_remote_wakeup_set0
+0x7b52 usb_set_report
+0x7b5e usb_get_led_status
+0x7b62 usb_set_report_resume_judge
+0x7b70 usb_set_protocol_req
+0x7b76 usb_set_boot_protocol
+0x7b79 usb_set_report_protocol
+0x7b7d usb0_respond_length
+0x7b7f usb0_respond
+0x7b84 usb0_respond_nostr
+0x7b88 usb_no_respond_data
+0x7b8a usb0_tx
+0x7b98 usb0_tx_short
+0x7b9c usb0_tx_info
+0x7bae usb0_tx_nostr
+0x7bb0 usb0_tx0
+0x7bb5 usb0_tx1
+0x7bc3 usb_tx_ep1
+0x7bc6 usb_tx_buf
+0x7bc8 usb_tx_loop
+0x7bcb usb_trig
+0x7bcf usb_tx_ep2
+0x7bd3 usb_tx
+0x7be2 usb_tx_data_ep1
+0x7bee usb_tx_data_ep2
+0x7bfe usb_tx_fifo_release
+0x7c01 usb_tx_ms_data
+0x7c09 usb_tx_ms_data_mac_boot_mode
+0x7c0a usb_tx_ms_data_mac_boot_regroup
+0x7c18 usb_tx_ms_data_normal_mode
+0x7c19 usb_tx_mac_boot_ms_regroup_r_or_lrkey
+0x7c1c usb_tx_kb_multikey_data
+0x7c20 usb_tx_kb_normal_data
+0x7c26 usb_tx_kb_systemkey_data
+0x7c2a usb_tx_kb_bit_consumer_data
+0x7c2e usb_tx_kb_n_key_rollover_data
+0x7c32 usb_inwake_state_tx_dispose
+0x7c35 usb_mac_wakeup_trig
+0x7c3a usb_mac_wakeup_judge
+0x7c3e usb_mac_wakeup
+0x7c42 usb_windows_wakeup
+0x7c45 usb_wakeup
+0x7c4b push_stack
+0x7c53 push_stack_rega_b_c
+0x7c57 pop_stack
+0x7c62 pop_stack_rega_b_c
+0x7c66 get_contw
+0x7c67 get_contw_end
+0x7c69 get_contr
+0x7c6a get_contr_end
+0x7c6c store_contw
+0x7c6f store_contr
+0x7c72 save_cont_pointers
+0x7c77 load_cont_pointers
+0x7c7c get_diff
+0x7c82 memcpy96
+0x7c83 memcpy64
+0x7c85 memcpy12
+0x7c86 memcpy4
+0x7c88 memcpy3
+0x7c8b memcpy8
+0x7c8e memcpy48
+0x7c8f memcpy32
+0x7c90 memcpy24
+0x7c91 memcpy16
+0x7c93 delay
+0x7c97 delay_10ms
+0x7c98 delay_ms_wait
+0x7c9b memset0_16
+0x7c9c memset0_8
+0x7c9d memset0_4
+0x7c9f clear_mem_256
+0x7ca1 clear_mem_512
+0x7ca3 clear_mem
+0x7ca5 memset0
+0x7ca8 clear_temp_block
+0x7cab xor_loop
+0x7cb3 inverse_data
+0x7cba inverse_loop
+0x7cc2 le2be_6byte
+0x7cc2 inverse_data_6byte
+0x7cc8 le2be_4byte
+0x7cc8 inverse_data_4byte
+0x7cce memcpy_fast
+0x7cd1 memcpy_fast_loop
+0x7cd6 memcpy_fast_loop_four
+0x7cdc memcpy
+0x7cde memcpy_loop
+0x7ce2 timer_stop
+0x7ce3 timer_init
+0x7cec timer_check_timeout
+0x7cf0 timer_reinit
+0x7cf1 timer_check
+0x7cfc timer_loop
+0x7d00 timer_counting
+0x7d07 clk_add
+0x7d12 clk_diff_rt
+0x7d14 clk_diff
+0x7d19 clk_diff_pos
+0x7d21 clk2rt
+0x7d27 clk2lpo
+0x7d2e clk2bt
+0x7d35 string2dec_from_uart
+0x7d36 string2dec_from_uart_done
+0x7d41 uchar2dialog
+0x7d4a uchar2dialog_number
+0x7d4d uchar2dialog_a2f
+0x7d50 right_shift_n
+0x7d52 right_shift_n_loop
+0x7d55 left_shift_n
+0x7d58 left_shift_n_loop
+0x7d5b calc_average
+0x7d5d calc_average_loop
+0x7d61 get_div_result
+0x7d64 wait_div_end
+0x7d66 compare_loop
+0x7d66 string_compare
+0x7d6e ceiling
+0x7d72 swap
+0x7d76 clean_smem
+0x7d78 clean_xmem
+0x7d79 clean_mem
+0x7d7b callback_func
+0x7d7d ice_break_disable_wdt
+0x7d7e ice_break
+0x7d80 ice_setbp
+0x7d85 ice_setbp2
+0x7d8a ice_set_write_bp
+0x7d8d fifo_in
+0x7d93 fifo_in_push
+0x7d99 fifo_out
+0x7d9d fifo_out_loop
+0x7da2 fifo_out_end
+0x7da5 fifo_is_empty
+0x7da7 fifo_is_full
+0x7da9 fifo_is_near_full
+0x7dab fifo_content_count
+0x7dac fifo_content_count_loop
+0x7db2 not_greater_than
+0x7db4 copy_temp2pdata
+0x7db6 disable_positive
+0x7db8 enable_positive
+0x7db8 disable_zero
+0x7dba enable_zero
+0x7dbc enable_user
+0x7dbe disable_user
+0x7dc0 enable_user2
+0x7dc2 disable_user2
+0x7dc4 enable_user7
+0x7dc6 disable_true
+0x7dc8 enable_true
+0x7dca disable_blank
+0x7dcc enable_blank
+0x7dcc set_pdata_0
+0x7dce istore_1_contw_rtn
+0x7dd0 cal_sum
+0x7dd2 cal_sum_loop
+0x7dd6 reverse_byte
+0x7ddc reverse_loop
+0x7de1 lshift14
+0x7de2 rshift2
+0x7de4 lshift6
+0x7de6 clear_wake
+0x7ded generate_random
+0x7dee generate_random_loop
Index: format/rom.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/format/rom.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/format/rom.format	(working copy)
@@ -0,0 +1,6783 @@
+(//mem_system_clk
+12 SYSTEM_CLK_12M
+24 SYSTEM_CLK_24M
+)
+(//bluetooth tx power
+0x00 TX_POWER_0DB
+0x03 TX_POWER_3DB
+0x05 TX_POWER_5DB
+0x06 TX_POWER_6DB
+0x07 TX_POWER_7DB
+0x0a TX_POWER_10DB
+
+0x83 TX_POWER_F3DB
+0x85 TX_POWER_F5DB
+0x8a TX_POWER_F10DB
+0x94 TX_POWER_F20DB
+0x9e TX_POWER_F30DB
+0xaa TX_POWER_FACTORY
+)
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	/* 3.0 only */
+	
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+0x1c coffset_le_supervision_timer
+0x20 coffset_le_instant
+0x22 coffset_le_channels
+0x23 coffset_le_op
+0x24 coffset_le_access
+0x28 coffset_le_crcinit
+0x2b coffset_le_window_size
+0x2c coffset_le_slave_latency
+0x2e coffset_le_slave_superto
+0x30 coffset_le_channel_map
+0x35 coffset_le_rx_phy
+0x36 coffset_le_tx_phy
+0x37 coffset_le_new_map
+0x37 coffset_le_new_m2s_phy
+0x38 coffset_le_new_s2m_phy
+0x37 coffest_le_new_transmitwindowsize
+0x38 coffest_le_new_transmitwindowoffset
+0x3a coffest_le_new_conninterval
+0x3c coffest_le_new_connslavelatency
+0x3e coffest_le_new_connsupervisiontimeout
+0x40 coffset_le_sk
+0x50 coffset_le_peer_sca
+0x53 coffset_le_transmit_window
+	
+83 context_size
+1 context_num
+)
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+(
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+
+/* 24Mhz clock setting */
+ifdef CLK24M
+0x1c86 param_tx_setup
+0x0c00 param_rf_setup
+0x0c00 param_conn_access 
+0x1a00 param_rx_setup
+0x0776 param_clke_cal
+0x0a00 param_pll_setup
+4000 param_dpll_start_delay
+7500 param_halfclk
+60084 param_halfclk_neg
+-60084 param_halfclk_neg1
+else
+/* 12Mhz clock setting */
+0x0e43 param_tx_setup
+0x0600 param_rf_setup
+0x0600 param_conn_access 
+0x03bb param_clke_cal
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+3750 param_rt_rthalfslot
+
+480 param_clke_cal_le_1m	//preamble(1B) & access address(4B) time (1+4)*8*1 * 12
+288 	param_clke_cal_le_2m	//preamble(2B) & access address(4B) time (1+4)*8*1 * 12
+282 param_clke_cal_le_coded	//preamble(80us) & access address(256us)-312.5us(0.5slot)
+endif
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+
+ifdef SIM
+1 param_chgpump_delay_100us
+6 param_chgpump_delay_500us
+12 param_chgpump_delay_1ms
+else
+1000 param_chgpump_delay_100us
+6000 param_chgpump_delay_500us
+12000 param_chgpump_delay_1ms
+endif
+
+
+0x000a04 param_lmp_version
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+39 param_fcomp_div
+2 param_fcomp_mul
+
+)
+(
+0        always        /* always 1 */
+1        true          /* set/rstn by verify,compare,icompare (true) */
+2        positive      /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output >= 0 */
+3        timeout       /* read only, the timeout from timers */
+4        init_adpcm
+5        zero          /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output == 0 */
+6        crc_failed    /* level, cleared by hop_start */
+7        enable_white  /* outside mux decide whether to load bt_clk or response_X */
+8        enable_parity /* level */
+9        enable_crc    /* level */
+10       enable_hec    /* level */
+11       decode_fec1   /* level */
+12       decode_fec2   /* level */
+13       decode_fec0   /* level */
+14       encrypt       /* level */
+15       crc16       /* for caculate ccitt crc16 */
+16       swfine	/* =0 stop_watch count based on oneslot =1 on 1 clock */
+20       rqst_freq    /* pulse, to start calculating frequency */
+21       recalc        /* pulse, to recalculate the fhs_parity */
+22       init_encrypt  /* pulse, issued to initialize encrption */
+23       mhalfbnd    /* half slot boundary of clke_rt, or when clke_bt[0] toggles */
+24       sync          /* sync found as a result of correlation,set/rstn by correlate opcode */
+25       user10    /* user10 */
+26       kc_p_activate  /* pulse to recalc the kc_p */
+27       encode_fec1   /* level */
+28       encode_fec2   /* level */
+29       encode_fec0   /* level */
+30       packet_end    /* pulse */
+32       is_tx         /* level */
+33       is_rx         /* level */
+34       halfslot     /* pulse, read only, when clkn_bt[0] toggles */
+35       oneslot      /* pulse, read only, when clkn_bt[1] toggles */
+36       mslotbnd     /* pulse, read only, when clke_bt[1] toggles */
+37       expire       /* level, read only, when selected clock source exceed timeup value */
+38       meet         /* level, read only, when selected clock source meet timeup value */
+39       tx_clear     /* level, read only, indicate tx pipe is cleared */
+40       user         /* user0 */
+41       master        /* user1 */
+42       rxon         /* user2 */
+43       wake           /* user3 */
+44       user2        /* user4 */
+45       match         /* user5 */
+46       attempt        /* user6 */
+47       user3          /* user7 */
+48       clknt         /* user8 */
+49	   user7 	/* user9 */
+50       synchronize   /* synchronize lpo and regular version of the clock */
+51       lpo_edge  /* read only, 3 clocks after risling edge of lpo clock */
+52       blank         /* C0 only, means pdata == 0 */
+53       modone          /* set divide operation is done */
+55       aes_ready	/* set when aes is ok */
+56       encode_fec3   /* level */
+57       dewhiten_code_calc   /* dewhiten code calculate */
+58       lr_s2en       /* long range s2 enable */
+60	   ble_coded_info	//1:s2 0:s8
+63       never         /* read only, always 0 */
+)
+default flag = always
+(
+0        mark   /* for keeping strobes, more permanent */
+1        type   /* save and verify during rx */     /* rw */
+2        temp   /* general purpose register, 64 bits */
+3        contu  /* contr uart */
+3	 contru	/*contr uart*/
+3	 contwu	/*contw uart*/
+4        am_addr      /* verify during rx, read and send during tx */ /* ro */
+5        contw        /* last mem_addr during write */
+6        contr        /* last mem_addr during read */
+7        queue    /* the index of qset*,qisolate* commands, ie, if queue = 3, qset/qisolate operate on bit3 */
+8        debug    /* can be wired out for observation */
+9        access   /* the 72 bit access word */
+10       contus   /* contw uart */
+11       timeup        /* when does certain counter expire */
+12       pwindow       /* bit 71-61 of pdata; because on rx, bits shifts in from 71 down */
+13       fhs_parity    /* re-gernated based on bt_adr( {nap,uap,lap} ) when recalc flag is pulsed */
+14       white_init    /* init value of the whitening */
+15       crc24_init        /* init crc24 lfsr, 24 bits */
+16       contue    /* set interrupts, 40 bits */
+17       rega          /* general purpose register, 32 bits */
+18       regb          /* general purpose register, 32 bits */
+19       regc          /* general purpose register, 17 bits */
+20       regab         /* concat of {rega,regb}, thus 64 bits */
+21       radio_ctrl   /* radio i/f direct i/o ctrl, check following "radio_ctrl" section */
+
+23       freq_index   /* 7 bit read only */
+24       regd    /* 32 bit regext[1,0] */
+25       clkn              /* {clkn_bt, clkn_rt} */
+26       clke              /* {clke_bt, clke_rt} */
+27       stop_watch		
+28       fhs_misc   /* SR, SP, pscan mode */
+29       fhs_class  /* class field in fhs */
+30       fhs0   /* read only, bit 0-71 of fhs word */
+31       fhs1   /* read only, bit 72-142 of fhs word */
+32       bt_adr /* r/w, the bt_addr to access gen and freq hopping, contain only lap and uap */
+33       bt_clk /* r/w, the bt_clk for freq hopping */
+34       clkn_bt  /* read only, native bluetooth clock, free running 3.2KHz  or controlled by RTHALFSLOT register */
+35       clkn_rt  /* read only, native realtime clock, free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+36       freq_mode
+37       xin   /* x parameter, read only */
+38       N_tx_slot /* the N factor in equations for Xi,Xp,Xprm,Xprs */
+39 	   auxcnt
+40       clke_bt  /* r/w,  external bluetooth clock , free running 3.2KHz or controlled by RTHALFSLOT register */
+41       clke_rt  /* r/w,  external realtime clock, , free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+42       branch_addr	/* last branch address */
+43       rege         /* 64bit regext[3,2] */
+44       lap
+45       uap
+46       nap         
+47       regext		/* r/w extended 12x32bit registers,  indexed by regext_index */
+48       alarm             /* r/w, lpo wake up time, this is also how lpo and current clock keep sync */
+49       lpo_time          /* read only, this is the value to be copied back to clkn/clke after wakeup */
+50       kc_ls             /* secret key,                71: 0 */
+51       kc_ms             /* secret key,               127:72 */
+52       g1l               /* encryption length                */
+53		mask3ff		/* for mask 0x3ff operation */
+54       aes_ctrl		
+55       regf			/* 64bit regext[5,4] */
+56       regext_index   /* index of regext */
+57	     loopcnt
+58      stack			/* current return address */
+59       stack_ptr		/* stack depth */
+61         pc /* direct goto */
+62       null              /* to nowhere */
+63       pdata /* the shift register */
+)
+default reg = pdata
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+(
+1 txf
+3 demod
+)
+default source = 0
+(
+5  mark_loopback
+9  mark_context
+13 mark_lpm_mult_enable
+14 mark_usb_first_resp
+15 mark_old_packet
+16 mark_adv
+34 mark_otp_write
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_rxmode
+40 mark_eeprom_size
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_temp
+45 mark_ble_2M
+46 mark_ble_lr_s8
+47 mark_ble_lr
+48 mark_ble_crc_fail
+50 mark_ble_encryption
+51 mark_first_packet
+)
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+(
+0 le_adv_interval_timer
+2 le_scan_interval_timer
+9 key_scan_timer
+7 smp_pairing_timer
+11  ui_led_blink  
+
+8 G24_TIMER_NODATA
+6 G24_TIMER_KB_BIT_CONSUMER_BLANK
+13 G24_TIMER_MS_BLANK
+12 G24_TIMER_KB_MUL_BLANK
+10 G24_TIMER_KB_SYS_CRTL_BLANK
+14 G24_TIMER_KB_BLANK
+
+1 USB_TIMER_NAK
+15 USB_TIMER_WAKEUP
+)
+(
+
+27 hci_cmd_le_create_conn
+29 hci_cmd_le_disconn
+30 hci_cmd_le_att_req
+)
+(
+0 mode_le
+1 mode_master
+)
+(
+0 state_inconn
+1 state_insniff
+)
+(
+3 op_disconn
+)
+(
+0 wake_lock_ble_rx
+1 wake_lock_ble_tx
+
+3 wake_lock_key_press
+4 wake_lock_ble_tx_patch
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+(//mem_fcomp_div
+0x18 XTAL_24M
+0x10 XTAL_16M
+)
+( //verion
+6 BLUETOOTH_CORE_SPECIFICATION_4_0
+7 BLUETOOTH_CORE_SPECIFICATION_4_1
+8 BLUETOOTH_CORE_SPECIFICATION_4_2
+9 BLUETOOTH_CORE_SPECIFICATION_5_0
+10 BLUETOOTH_CORE_SPECIFICATION_5_1
+)
+(
+0x050e COMPANY_ID_YICHIP
+)
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+)
+(//mem_le_T_IFS
+150 PARAM_T_IFS_150US
+20000 PARAM_20MS_INIT
+-11 PARAM_SYNC_TIME_DIFFERENCE
+40 PARAM_CODED_C1_TERM1_TIME_40US
+1666 PARAM_WINDOWN_SIZE
+//T_IFS = 150-modem(CRC time)
+15000 param_sifs
+)
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+	(    
+	0x01 ERROR_UNKNOWN_HCI_COMMAND
+	0x02 ERROR_NO_CONNECTION
+	0x03 ERROR_HARDWARE_FAILURE
+	0x04 ERROR_PAGE_TIMEOUT
+	0x05 ERROR_AUTHENTICATION_FAILURE
+	0x06 ERROR_KEY_MISSING
+	0x07 ERROR_MEMORY_FULL
+	0x08 ERROR_CONNECTION_TIMEOUT
+	0x09 ERROR_MAX_CONNECTIONS
+	0x0A ERROR_MAX_SCO_CONNECTIONS
+	0x0B ERROR_MAX_ACL_CONNECTIONS
+	0x0C ERROR_COMMAND_DISALLOWED
+	0x0D ERROR_HOST_REJECT_LIMITED_RESOURCES
+	0x0E ERROR_HOST_REJECT_SECURITY_REASONS
+	0x0F ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+	0x10 ERROR_HOST_TIMEOUT
+	0x11 ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+	0x12 ERROR_INVALID_HCI_COMMAND_PARAMETERS
+	0x13 ERROR_REMOTE_USER_TERMINATED_CONNECTION
+	0x14 ERROR_REMOTE_LOW_RESOURCES
+	0x15 ERROR_REMOTE_POWERING_OFF
+	0x16 ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+	0x17 ERROR_REPEATED_ATTEMPTS
+	0x18 ERROR_PAIRING_NOT_ALLOWED
+	0x19 ERROR_UNKNOWN_LMP_PDU
+	0x1A ERROR_UNSUPPORTED_REMOTE_FEATURE
+	0x1B ERROR_SCO_OFFSET_REJECTED
+	0x1C ERROR_SCO_INTERVAL_REJECTED
+	0x1D ERROR_SCO_AIR_MODE_REJECTED
+	0x1E ERROR_INVALID_LMP_PARAMETER
+	0x1F ERROR_UNSPECIFIED_ERROR
+	0x20 ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+	0x21 ERROR_ROLE_CHANGE_NOT_ALLOWD
+	0x22 ERROR_LMP_RESPONSE_TIMEOUT
+	0x23 ERROR_ERROR_TRANSACTION_COLLISION
+	0x24 ERROR_LMP_PDU_NOT_ALLOWED
+	0x25 ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x26 ERROR_UNIT_KEY_USED
+	0x27 ERROR_QOS_NOT_SUPPORTED
+	0x28 ERROR_INSTANT_PASSED
+	0x29 ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+	0x2a ERROR_DIFFERENT_TRANSACTION_COLLISION
+	0x2c ERROR_QOS_UNACCEPTABLE_PARAMETER
+	0x2d ERROR_QOS_REJECTED
+	0x2e ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+	0x2f ERROR_INSUFFICIENT_SECURITY
+	0x30 ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+	0x32 ERROR_ROLE_SWITCH_PENDING
+	0x34 ERROR_RESERVED_SLOT_VIOLATION
+	0x35 ERROR_ROLE_SWITCH_FAILED
+	0x36 ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+	0x37 ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+	0x38 ERROR_HOST_BUSY_PAIRING
+	0x3d ERROR_MIC_FAILURE
+	)
+	(
+	0X20 SPACE	
+	)
+	(
+	0x0004 LE_L2CAP_CID_ATT
+	0x0005 LE_L2CAP_CID_SIGNAL
+	0x0006 LE_L2CAP_CID_SMP
+	)
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+7 lestate_update_phy
+)
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+5 lemode_2m
+6 lemode_lr
+7 lemode_lr_s8
+
+0x20 mode_2m
+0x40 mode_lr_s2
+0xc0 mode_lr_s8
+
+)
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+6 txdat
+)
+(
+0x00 LLID_RESERVED
+0x01 LLID_CONTINUE
+0x02 LLID_START
+0x03 LLID_LE_LL
+0x01 LLID_EMPTY
+)
+(
+4 LE_TX_BUFF_COUNT
+3 LE_TX_BUFF_UPDATE_LOOPCNT //LE_TX_BUFF_COUNT-1
+
+12 LE_MD_MAX_COUNT
+)
+(
+0 LE_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_BIT
+)
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+(
+39 LE_CCM_DIRECTIONBIT
+)
+(
+36 BR_CCM_0_LENGTH_CONTINUATION
+37 BR_CCM_DIRECTIONBIT
+)
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_RCV_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_RCV_START_ENC_RSP
+4 FLAG_LE_SEND_START_ENC_RSP
+5 FLAG_LE_SEND_START_ENC_REQ
+0xff FLAG_LE_ENC_END
+)
+(//mem_le_configuration
+//bit0:use fixed key , ble passkey pairing
+0 BIT_BLE_PASSKEY_FIXED_KEY
+//bit1:ble pairing use fixed long term key
+1 BIT_BLE_PAIRING_FIXED_LTK
+//bit2:ble transmit packet will set more data flag
+2 BIT_BLE_TRANSMIT_PACKET_BY_MD
+//bit3:master read handle, with requires an authenticated link
+3 BIT_BLE_READ_AUTH
+//bit4:master write handle, with requires an authenticated link
+4 BIT_BLE_WRITE_AUTH
+//bit5:cannot enter long sleep
+5 BIT_BLE_SHORT_MULT
+//bit6:DEAL baseband packet
+6 BIT_BLE_DEAL_BB_PACKET
+)
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0x16	GAP_ADTYPE_SERVICE_DATA
+0x2a	GAP_ADTYPE_MESH_MESSAGE
+0x2b 	GAP_ADTYPE_MESH_BEACON
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+3 AUX_SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+5 AUX_CONNECT_REQ
+6 ADV_SCAN_IND
+)
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+(
+0xa0 param_le_sca
+)
+(//bit of mem_le_l2cap_att_states
+0 BLE_L2CAP_SEND_INDICATION_PACKET
+0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+)
+(//bit map of att handle
+14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
+15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
+)
+(
+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
+)
+(
+0x01 ATTOP_ERROR_RESPONSE
+0x02 ATTOP_EXCHANGE_MTU_REQUEST
+0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+0x04 ATTOP_FIND_INFORMATION_REQUEST
+0x05 ATTOP_FIND_INFORMATION_RESPONSE
+0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+0x08 ATTOP_READ_BY_TYPE_REQUEST
+0x09 ATTOP_READ_BY_TYPE_RESPONSE
+0x0A ATTOP_READ_REQUEST
+0x0B ATTOP_READ_RESPONSE
+0x0C ATTOP_READ_BLOB_REQUEST
+0x0D ATTOP_READ_BLOB_RESPONSE
+0x0E ATTOP_READ_MULTIPLE_REQUEST
+0x0F ATTOP_READ_MULTIPLE_RESPONSE
+0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+0x12 ATTOP_WRITE_REQUEST
+0x13 ATTOP_WRITE_RESPONSE
+0x16 ATTOP_PREPARE_WRITE_REQUEST
+0x17 ATTOP_PREPARE_WRITE_RESPONSE
+0x18 ATTOP_EXECUTE_WRITE_REQUEST
+0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+0x1D ATTOP_HANDLE_VALUE_INDICATION
+0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+0x52 ATTOP_WRITE_COMMAND
+0xD2 ATTOP_SIGNED_WRITE_COMMAND
+0x1f ATTOP_CONTINUE
+0x9e EMPTY_LE_DATA_PRE
+0x9f EMPTY_LE_DATA
+)
+(
+0x01 ATT_ERR_INVALID_HANDLE
+0x02 ATT_ERR_READ_NOT_PERMITTED
+0x03 ATT_ERR_WRITE_NOT_PERMITTED
+0x04 ATT_ERR_INVALID_PDU
+0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+0x07 ATT_ERR_INVALID_OFFSET
+0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+0x09 ATT_ERR_PREPARE_QUEUE_FULL
+0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+0x0E ATT_ERR_UNLIKELY_ERROR
+0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+)
+(
+0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+0X2901 CHARACTERTIC_USER_DESCRIPTION
+0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+0X2905 CHARACTERTIC_AGGREGATE
+0X2906 VALID_RANGE
+0X2907 EXTERNAL_REPORT_REFERENCE
+0X2908 REPORT_REFERENCE
+0X290B ENVIR_SENSING_CONFIGURATION
+0X290C ENVIR_SENSING_MEASUREMENT
+0X290D ENVIR_SENSING_TRIGGER_SETTING
+)
+(
+0x1800 UUID_SERVICE_GENERIC_ACC
+0x1801 UUID_SERVICE_GENERIC_ATT
+0x180a UUID_SERVICE_DEVICE_INFO
+0x180f UUID_SERVICE_BATTERY
+0x1812 UUID_SERVICE_HIDS
+0x2800 UUID_GATT_PRIMARY_SERVICE
+0x2801 UUID_GATT_SECONDARY_SERVICE
+0X2802 UUID_GATT_INCLUDE
+0X2803 UUID_GATT_CHARACTERISTIC
+0X2A00 UUID_CHRCTR_DEVICE_NAME
+0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+0X2A23 UUID_CHRCTR_SYSTEM_ID 
+0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+0X2A26 UUID_CHRCTR_FIRMWARE
+0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+0X2A33 UUID_CHRCTR_MOUSE_INPUT
+0X2A4A UUID_CHRCTR_HID_INFO
+0X2A4B UUID_CHRCTR_REPORT_MAP
+0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+0X2A4D UUID_CHRCTR_REPORT
+0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+0X2A50 UUID_CHRCTR_PNP_ID
+)
+
+(
+23 ATT_DEFAULT_MTU 
+)
+(
+0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
+0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
+)
+(
+0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+)
+(
+0x00 LE_PAIRING_MODE_NONE
+0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
+0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
+0x04 LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT
+0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+0x84 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+(
+0x00 FLAG_LE_NO_BONDING_NO_MITM
+0x01 FLAG_LE_BONDING_NO_MITM
+0x04 FLAG_LE_NO_BONDING_MITM
+0x05 FLAG_LE_BONDING_MITM
+0x09 FLAG_LE_BONDING_NO_MITM_SECURE
+0x0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_SEND_RECURITY_REQ
+3 FLAG_LE_PAIRING_RCV_PAIRING_REQ
+4 FLAG_LE_PAIRING_WAIT_STK_GENERATION
+5 FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM
+6 FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM
+7 FLAG_LE_PAIRING_RECEIVE_PAIRING_RANDOM
+8 FLAG_LE_PAIRING_SEND_PAIRING_RANDOM
+9 FLAG_LE_PAIRING_AFTER_AUTH
+10 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+11 FLAG_LE_PARING_SEND_ENC_INFORMATION
+12 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+13 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+(
+0x01 SMP_PAIRING_REQUEST
+0x02 SMP_PAIRING_RESPONSE
+0x03 SMP_PAIRING_CONFIRM
+0x04 SMP_PAIRING_RANDOM
+0x05 SMP_PAIRING_FAILED
+0x06 SMP_ENCRYPTION_INFORMATION
+0x07 SMP_MASTER_IDENTIFICATION
+0x08 SMP_IDENTITY_INFORMATION
+0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+0x0A SMP_SIGNING_INFORMATION
+0x0B SMP_SECURITY_REQUEST
+0x0c SMP_PAIRING_PUBLIC_KEY
+0x0d SMP_PAIRING_DHKEY_CHECK
+)
+(// pairing failed reason
+0x00 PAIRING_FAILED_RESERVED
+0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+0X0A PAIRING_FAILED_INVALID_PARAMETERS
+0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+)
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+(
+0x00 LL_CONNECTION_UPDATE_IND
+0x01 LL_CHANNEL_MAP_IND
+0x02 LL_TERMINATE_IND
+0x03 LL_ENC_REQ
+0x04 LL_ENC_RSP
+0x05 LL_START_ENC_REQ
+0x06 LL_START_ENC_RSP
+0x07 LL_UNKNOWN_RSP
+0x08 LL_FEATURE_REQ
+0x09 LL_FEATURE_RSP
+0x0A LL_PAUSE_ENC_REQ
+0x0B LL_PAUSE_ENC_RSP
+0x0C LL_VERSION_IND
+0x0D LL_REJECT_IND
+0x0E LL_SLAVE_FEATURE_REQ
+0x0F LL_CONNECTION_PARAM_REQ
+0x10 LL_CONNECTION_PARAM_RSP
+0x11 LL_REJECT_IND_EXT
+0x12 LL_PING_REQ
+0x13 LL_PING_RSP
+0x14 LL_LENGTH_REQ
+0x15 LL_LENGTH_RSP
+0x16 LL_PHY_REQ
+0x17 LL_PHY_RSP
+0x18 LL_PHY_UPDATE_IND
+0x19 LL_MIN_USED_CHANNELS_IND
+0x1A LL_CTE_REQ
+0x1B LL_CTE_RSP
+0x1C LL_PERIODIC_SYNC_IND
+0x1D LL_CLOCK_ACCURACY_REQ
+0x1E LL_CLOCK_ACCURACY_RSP
+0x1F LL_CIS_REQ
+0x20 LL_CIS_RSP
+0x21 LL_CIS_IND
+0x22 LL_CIS_TERMINATE_IND
+0x23 LL_POWER_CONTROL_REQ
+0x24 LL_POWER_CONTROL_RSP
+0x25 LL_POWER_CHANGE_IND
+)
+(//bit map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0 BIT_LL_FEATURE_LE_ENCRYPTION
+1 BIT_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+2 BIT_LL_FEATURE_EXTENDED_REJECT_INDICATION
+3 BIT_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+4 BIT_LL_FEATURE_LE_PING
+5 BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+6 BIT_LL_FEATURE_LL_PRIVACY
+7 BIT_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+8 BIT_LL_FEATURE_LE_2M_PHY
+9 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+10 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+11 BIT_LL_FEATURE_LE_CODED_PHY
+12 BIT_LL_FEATURE_LE_EXTENDED_ADVERTISING
+13 BIT_LL_FEATURE_LE_PERIODIC_ADVERTISING
+14 BIT_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+15 BIT_LL_FEATURE_LE_POWER_CLASS_1
+16 BIT_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//function map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0x1 FUN_LL_FEATURE_LE_ENCRYPTION
+0x2 FUN_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+0x4 FUN_LL_FEATURE_EXTENDED_REJECT_INDICATION
+0x8 FUN_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+0x10 FUN_LL_FEATURE_LE_PING
+0x20 FUN_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+0x40 FUN_LL_FEATURE_LL_PRIVACY
+0x80 FUN_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+0x100 FUN_LL_FEATURE_LE_2M_PHY
+0x200 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+0x400 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+0x800 FUN_LL_FEATURE_LE_CODED_PHY
+0x1000 FUN_LL_FEATURE_LE_EXTENDED_ADVERTISING
+0x2000 FUN_LL_FEATURE_LE_PERIODIC_ADVERTISING
+0x4000 FUN_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+0x8000 FUN_LL_FEATURE_LE_POWER_CLASS_1
+0x10000 FUN_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//bit of mem_le_tx_phys and mem_le_rx_phys
+0x00 BIT_LE_1M_PHY
+0x01 BIT_LE_2M_PHY
+0x02 BIT_LE_CODED_PHY
+
+0x02 BIT_LE_CODED_PHY_S2
+0x07 BIT_LE_CODED_PHY_S8
+)
+(//map of mem_le_tx_phys and mem_le_rx_phys
+0x01 FUN_TX_LL_1M_PHY
+0x02 FUN_TX_LL_2M_PHY
+0x04 FUN_TX_LL_CODED_PHY
+
+0x01 FUN_RX_LL_1M_PHY
+0x02 FUN_RX_LL_2M_PHY
+0x04 FUN_RX_LL_CODED_PHY
+)
+(//mem_24g_data_type
+1 TYPE_MS
+2 TYPE_KB
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+(
+0 ERR_NULL
+1 ERR_SYNC_TO
+2 ERR_HEC
+3 ERR_LR_LEN
+4 ERR_TYPE
+5 ERR_LEN_OVER
+6 ERR_CRC
+)
+(//mem_24g_pair_sm
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+4 STATE_24G_PAIRING_4
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0X14 STATE_24G_PAIRING_4_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+(
+0x01 DATATYPE_DEVICE1	//mouse
+0x02 DATATYPE_DEVICE2	//keyboard
+0xaa DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK		//bind step 3
+0xff DATATYPE_ATTEMP	//reconn
+)
+(
+5 BIND_MODE_CONTINUE
+)
+(
+0 bit_ack_24g
+)
+(//mem_24g_reconn_type
+0 DEFAULT_24G_DEVICE
+1 FAST_CONN_AND_RECEIVER
+2 FAST_CONN_AND_3_0_ADDR
+3 RECEIVER_AND_3_0_ADDR
+4 PAIR_AND_3_0_ADDR
+)
+(
+0x50 RSSI_THRESH_NOISE
+)
+(
+1 NO_ACK_24G
+0 WITH_ACK_24G
+)
+(//mem_24g_conn_sm
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+(//mem_24g_transmit_by_interrupt
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+(
+1 OFFSET_DATA_TYPE
+2 OFFSET_LR_DATA_TYPE
+)
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
+0x124f80 G24_LONG_SLEEP_STEP3	//100ms
+63500 G24_8MS_INTERVAL_PARAM		//8ms
+12210 G24_4MS_INTERVAL_PARAM
+)
+(
+50 POWER_CTRL_DECRS_THRESHOLD
+)
+(
+0 QUEUE_OFFSET_EACH_SIZE
+1 QUEUE_OFFSET_LENGTH
+2 QUEUE_OFFSET_CURR_NUM
+3 QUEUE_OFFSET_READ_PTR
+4 QUEUE_OFFSET_WRITE_PTR
+5 QUEUE_OFFSET_ELE_INIT_ADDR
+)
+(
+//Flash Register
+0x05 FLASH_READ_SATUS
+
+// Flash Status Register
+0x00 FLASH_STATUS_WIP
+0X01 FLASH_STATUS_WEL
+0X02 FLASH_STATUS_BP0
+0X03 FLASH_STATUS_BP1
+
+//Flash Write Sm
+0X00 FLASH_SM_NO_BUYS
+0X01 FLASH_SM_START
+0X02 FLASH_SM_ERASE_SECTOR
+0X03 FLASH_SM_WAIT_ERASE_SECTOR
+0X04 FLASH_SM_WRITE_DATA
+0X05 FLASH_SM_WAIT_WRITE_DATA
+
+
+//Flash Command
+0x02 FLASH_COMMAND_WRITE_DATA
+0x03 FLASH_COMMAND_READ_DATA
+0x06 FLASH_COMMAND_WRITE_ENABLE
+0x20 FLASH_COMMAND_SECTOR_ERASE
+0x81 FLASH_COMMAND_PAGE_ERASE
+0xAB FLASH_COMMAND_RELEASE_FROM_POWERDOWN
+0xB9 FLASH_COMMAND_POWERDOWN
+
+)
+(
+7 OTP_UFLAG_MEMFIX2
+6 OTP_UFLAG_MEMFIX1
+5 OTP_UFLAG_MEMFIX0
+4 OTP_UFLAG_BIST
+3 OTP_UFLAG_AES
+2 OTP_UFLAG_SKIP_EEP
+1 OTP_UFLAG_SKIP_FLASH
+0 OTP_UFLAG_HCI
+)
+(
+0 OTP_OFFSET_PATCH_PTR //2 byte
+2 OTP_OFFSET_UCODE_FLAG
+3 OTP_OFFSET_DEVICE_OPTION
+4 OTP_OFFSET_PERIPHERALS_LOCK
+5 OTP_OFFSET_SCHED_BISTFIX 	//2 byte
+7 OTP_OFFSET_XRAM_BISTFIX	//2 byte
+9 OTP_OFFSET_PATCH_BISTFIX	//2 byte
+
+0xfc0 OTP_OFFSET_ADC_PARAM_L_C0
+
+0xfd0 OTP_OFFSET_ADC_PARAM_L
+0xff0 OTP_OFFSET_UCODE_KEY_L
+0x1000 OTP_OFFSET_H
+
+//0x1fd0 OTP_OFFSET_ADC_PARAM
+//0x1fec OTP_OFFSET_HV_SEL
+//0x1fed OTP_OFFSET_LDO_VSEL
+//0x1fee OTP_OFFSET_LOADCODE_DELAY
+//0x1fef OTP_OFFSET_LOADCODE_CHECKSUM
+0x1ff0 OTP_OFFSET_UCODE_KEY
+)
+(
+1 DVC_OP_2G4
+2 DVC_OP_BLE
+
+4 DVC_OP_DONGLE
+5 DVC_OP_TEST
+6 DVC_OP_SHUTTER_DY   
+7 DVC_OP_MOUSE_2G4
+8 DVC_OP_MOUSE
+9 DVC_OP_SHUTTER
+0X0A DVC_OP_MODULE
+0X0b DVC_OP_REMOTE_CONTROL
+0X0C DVC_OP_HCI_BOOT
+0X0D DVC_OP_REMOTE_CAR
+0X0E DVC_OP_CAR
+0X0F DVC_OP_KEYBOARD   
+)
+(
+7 GPIO_ACTIVE_BIT
+)
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+(
+2 APP_DISC_RSN_SIZE
+)
+(
+0 APP_DISC_BY_BUTTON
+7 APP_DISC_BLE
+)
+(
+0xaa55 EEPROM_INIT_FLAG
+)
+(
+1 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+)
+(
+12000000 PWM_12MHZ
+24000000 PWM_24MHZ
+33000 PWM_33KHZ
+)
+(
+0 POWER_OFF
+1 POWER_STARTING
+2 POWER_STANDBY
+)
+(
+0 power_state_offset
+1 power_timer_offset
+2 power_off_timeout_offset
+3 power_starting_timeout_offset
+4 power_off_cb_offset
+6 power_starting_cb_offset
+8 power_standby_cb_offset
+10 ui_butten_up_cb_offset
+)
+(
+0x9000 MOUSE_BLE_ATT_LIST_ADDR
+0x92aa USB_KBDATA_VENDOR_DEFINE_ADDR
+0x92c5 USB_KBDATA_ADDR
+0x9307 USB_MSDATA_ADDR
+0x93fb USB_DEVICEDATA_ADDR
+0x940e USB_CONFDATA_ADDR
+0x944a KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+0x94fc KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+0x95b8 KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+0x9684 BLE_SHUTTER_GATT_LIST_ADDR
+0x97bd BLE_SHUTTER_KEY_VALUE_LIST_ADDR
+0x97e5 BLE_CAR_ATT_LIST_ADDR
+0x97fc mem_sim_slave
+)
+(//NEC 61212
+9000 NEC61212_BOOT_CODE_START_TIME
+4500 NEC61212_BOOT_CODE_END_TIME
+
+9000 NEC61212_REPEAT_START_TIME
+2250 NEC61212_REPEAT_END_TIME
+
+560 NEC61212_DATA_BIT_1_START_TIME
+1690 NEC61212_DATA_BIT_1_END_TIME
+
+560 NEC61212_DATA_BIT_0_START_TIME
+560 NEC61212_DATA_BIT_0_END_TIME
+
+560 NEC61212_STOP_TIME
+
+42580 NEC61212_DATA2REPEAT_TIME
+98190 NEC61212_REPEAT2REPEAT_TIME
+
+0xffff NEC61212_TIMEOUT_TIME
+)
+(
+1 CLK_CALIBRATION_DONE
+2 RC_CLK_CALIBRATION_DONE
+3 AES_DEC_KEY_INIT_DONE
+4 MEASURE_ADC_SUM_DONE
+5 SARADC_DONE
+)
+(
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+(
+1 SADC_REFERENCE_INTER3V
+2 SADC_REFERENCE_INTER1P8V_DIV2
+)
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+(
+1 CAR_CMD_BATTERY
+2 CAR_CMD_OLD_CAR_CONTROL
+3 CAR_CMD_OLD_SPEED_CONTROL
+4 CAR_CMD_L_R_MOTOR_CONTROL
+5 CAR_CMD_F_B_MOTOR_CONTROL
+6 CAR_CMD_IR_CONTROL
+7 CAR_CMD_LED_CONTROL
+8 CAR_CMD_DEVICE_INFO
+)
+(
+0x0e HANDLE_OF_NOTIFY
+0x11 HANDLE_OF_WRITE
+)
+(
+0 G24_UNCONNECT
+1 G24_CONNECTED
+)
+(
+12 LEN_OF_24G_PAYLOAD
+11 LEN_OF_ACK_PAYLOAD
+)
+(
+0XAA G24_TX_PAIR_REQUEST
+0XBB G24_RX_PAIR_RESPONES
+0XCC G24_TX_REMOTE_CONTROL
+0XDD G24_RX_CONTROL_ACK
+0XEE G24_ERROR
+0xFF INVALID_PIN_NUM
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+(
+0x1f00 OTP_SYS_PARAM_CFG
+0x1fda OTP_MAC_ADDR
+0X1fdb OTP_MAC_ADDR_PIECENUM
+)
+(
+0x5A DONGLE_KB_BIND_SUCCESS
+0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
+0x1fc0 DONGLE_KB_BIND_OTP_OFFECT
+)
+(
+5 WORK_MODE_DELAY
+7 BIND_MODE_DELAY
+)
+(
+0 DONGLE_WORK	   		//connect mode normal
+1 DONGLE_BIND			//code pair mode
+2 DONGLE_TEST			//test mode
+3 DONGLE_CODE			//PC_application
+4 DONGLE_PCBA			//PCBA_TEST
+5 DONGLE_DEBUG
+6 DONGLE_MODE_MAX
+7 DONGLE_SEARCH
+0 CLEAR_INIT
+)
+(
+0xa0 COMMAND_MODE     //BYTE 0
+0x81 COM_MODE_BIND	//BYTE 1
+0x82 COM_MODE_TEST	//BYTE 1
+)
+(
+0xa1 COMMAND_BIND		//BYTE 0
+0x01 COM_BIND_GET		//1
+0x84 COM_BIND_EXIT		//1
+0xa7 COM_READ_MODE		//1
+)
+(
+0xa2 COMMAND_TEST	//BYTE 0
+0x81 COM_TEST_SC		//	���뵥�ز�
+0x82 COM_TEST_CD		// fcc����
+0x83 COM_TEST_DAT		// ���ݲ���
+0x84 COM_TEST_LOW_CH  //��Ƶ��
+0x85 COM_TEST_MID_CH	//��Ƶ��
+0x86 COM_TEST_HIG_CH	//��Ƶ��
+0x87 COM_TEST_SW_HIG	//�Զ��л�Ƶ��Ϊ�� 1mhz
+0x88 COIM_TEST_SW_LOW	//�Զ��л�Ƶ��Ϊ�� 1mhz
+0x89 COM_TEST_SW_STOP	//ֹͣ�Զ��л�Ƶ��
+0x8a COM_TEST_POW_5		//�����������5dbm
+0x8b COM_TEST_POW_0		//0dbm
+0x8c COM_TEST_POW_N5		//-5dbm
+0x8d COM_TEST_POW_N10		//-10dbm
+0x8e COM_TEST_EXIT			//�˳�����ģʽ
+)
+(
+0xa6 COMMAND_CURRENT_PROJECT
+0xa7 COMMAND_CURRENT_MODE
+0xa9 COMMAND_CURRENT_FW_VERSION
+0xb0 COMMAND_USER_DEFINED		//user defined cmd
+)
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+(
+640 TIMER_NODATA_DELAY	//200ms
+
+384 TIMER_MS_BLANK_DELAY
+
+384 TIMER_KB_MUL_BLANK_DELAY
+
+384 TIMER_KB_SYS_CRTL_BLANK_DELAY
+
+384 TIMER_KB_BLANK_DELAY
+)
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+2 KB_SYSTEM_CONCTRL_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+5 KB_BIT_CONSUMER_REPORT_ID
+8 KB_N_KEY_ROLLOVER_REPORT_ID
+)
+(
+0x01 BIND_ACKPAYLOAD
+0x03 KB_LED_ACKPAYLOAD
+)
+(
+7 DG_ENABLE_XTAL_24M
+6 DG_ENABLE_NEW_CHMAP
+5 DG_ENABLE_EEPROM
+4 DG_ENABLE_KB_ICON
+3 DG_ENABLE_24G_2M
+)
+(
+0x01 DEVICE_DATA_TPYE_MOUSE
+0x00 DEVICE_DATA_TPYE_KEYBOARD
+)
+(
+0x00 HID_REPORTID_KEY_STANDARD
+0x01 HID_REPORTID_MOUSE
+0x02 HID_REPORTID_SYSTEM_CTRL
+0x03 HID_REPORTID_CONSUMER_KEY
+0x05 HID_REPORTID_BIT_CONSUMER_KEY
+0x08 HID_REPORTID_N_KEY_ROLLOVER
+)
+(
+0x04	 HID_KEY_A
+0x05        HID_KEY_B
+0x06        HID_KEY_C
+0x07        HID_KEY_D
+0x08        HID_KEY_E
+0x09        HID_KEY_F
+0x0a        HID_KEY_G
+0x0b        HID_KEY_H
+0x0c        HID_KEY_I
+0x0d        HID_KEY_J
+0x0e        HID_KEY_K
+0x0f        HID_KEY_L
+0x10        HID_KEY_M
+0x11        HID_KEY_N
+0x12        HID_KEY_O
+0x13        HID_KEY_P
+0x14        HID_KEY_Q
+0x15        HID_KEY_R
+0x16        HID_KEY_S
+0x17        HID_KEY_T
+0x18        HID_KEY_U
+0x19        HID_KEY_V
+0x1a        HID_KEY_W
+0x1b        HID_KEY_X
+0x1c        HID_KEY_Y
+0x1d        HID_KEY_Z
+
+0x1e        HID_KEY_1
+0x1f        HID_KEY_2
+0x20        HID_KEY_3
+0x21        HID_KEY_4
+0x22        HID_KEY_5
+0x23        HID_KEY_6
+0x24        HID_KEY_7
+0x25        HID_KEY_8
+0x26        HID_KEY_9
+0x27        HID_KEY_0
+
+0x28        HID_KEY_ENTER
+0x29        HID_KEY_ESC
+0x2a        HID_KEY_BACKSPACE
+0x2b        HID_KEY_TAB
+0x2c        HID_KEY_SPACE
+0x2d        HID_KEY_MINUS				 		// -_
+0x2e        HID_KEY_EQUAL				 		// =+
+0x2f        HID_KEY_LEFT_BRACKET 		 	// [{
+0x30        HID_KEY_RIGHT_BRACKET 	 		// ]}
+0x31        HID_KEY_BACK_SLASH 		 		// \|
+
+0x32        HID_KEY_K42
+0x33        HID_KEY_SEMICOLON			 	// ;:
+0x34        HID_KEY_QUOTE				 		// ' "
+0x35        HID_KEY_TILDE				 		// `~
+0x36        HID_KEY_LESS_THAN			 		// ,<
+0x37        HID_KEY_GREAT_THAN		 		// .>
+0x38        HID_KEY_SLASH				 		// /?
+0x39        HID_KEY_CAPS_LOCK
+
+0x3a        HID_KEY_F1
+0x3b        HID_KEY_F2
+0x3c        HID_KEY_F3
+0x3d        HID_KEY_F4
+0x3e        HID_KEY_F5
+0x3f        HID_KEY_F6
+0x40        HID_KEY_F7
+0x41        HID_KEY_F8
+0x42        HID_KEY_F9
+0x43        HID_KEY_F10
+0x44        HID_KEY_F11
+0x45        HID_KEY_F12
+
+0x46        HID_KEY_PRINT_SCREEN
+0x47        HID_KEY_SCROLL_LOCK
+0x48        HID_KEY_PAUSE
+0x49        HID_KEY_INSERT
+0x4a        HID_KEY_HOME
+0x4b        HID_KEY_PAGE_UP
+0x4c        HID_KEY_DELETE
+0x4d        HID_KEY_END
+0x4e        HID_KEY_PAGE_DOWN
+
+0x4f        HID_KEY_RIGHT_ARROW
+0x50        HID_KEY_LEFT_ARROW
+0x51        HID_KEY_DOWN_ARROW
+0x52        HID_KEY_UP_ARROW
+
+0x53        HID_KEY_NUM_LOCK
+0x54        HID_KEY_KP_SLASH
+0x55        HID_KEY_KP_ASTERISK
+0x56        HID_KEY_KP_MINUS
+0x57        HID_KEY_KP_PLUS
+0x58        HID_KEY_KP_ENTER
+0x59        HID_KEY_KP_1
+0x5a        HID_KEY_KP_2
+0x5b        HID_KEY_KP_3
+0x5c        HID_KEY_KP_4
+0x5d        HID_KEY_KP_5
+0x5e        HID_KEY_KP_6
+0x5f        HID_KEY_KP_7
+0x60        HID_KEY_KP_8
+0x61        HID_KEY_KP_9
+0x62        HID_KEY_KP_0
+0x63        HID_KEY_KP_DEL
+
+0x64        HID_KEY_K45
+0x65        HID_KEY_APP
+0x66        HID_KEY_POWER
+0x67        HID_KEY_KP_EQUAL
+
+
+0x87        HID_KEY_K56
+0x88        HID_KEY_K133
+0x89        HID_KEY_K14
+0x8a        HID_KEY_K132
+0x8b        HID_KEY_K131
+
+0x90        HID_KEY_KR_R
+0x91        HID_KEY_KR_L
+
+0xe0        HID_KEY_LEFT_CTRL
+0xe1        HID_KEY_LEFT_SHIFT
+0xe2        HID_KEY_LEFT_ALT
+0xe3        HID_KEY_LEFT_GUI
+0xe4        HID_KEY_RIGHT_CTRL
+0xe5        HID_KEY_RIGHT_SHIFT
+0xe6        HID_KEY_RIGHT_ALT
+0xe7        HID_KEY_RIGHT_GUI
+
+0xe8 	HID_KEY_MULTIKEY_MEDIA
+0xe9 	HID_KEY_MULTIKEY_VOL_DOWN
+0xea 	HID_KEY_MULTIKEY_VOL_UP
+0xeb 	HID_KEY_MULTIKEY_MUTE
+0xec 	HID_KEY_MULTIKEY_PRE_TRACK
+0xed 	HID_KEY_MULTIKEY_NEXT_TRACK
+0xee 	HID_KEY_MULTIKEY_PALY
+0xef 	HID_KEY_MULTIKEY_STOP
+0xf0 	HID_KEY_AC_HOME
+0xf1 	HID_KEY_MAIL
+0xf2 	HID_KEY_MY_COMPUTER
+0xf3 	HID_KEY_AC_FAVORITES
+0xf4 	HID_KEY_CALCULATOR
+0xf5 	HID_KEY_AC_SEARCH
+0xf6 	HID_KEY_AC_BACK
+0xf7 	HID_KEY_OS_SOFT_KB
+0xf8 	HID_KEY_LIGHT_DOWN
+0xf9 	HID_KEY_LIGHT_UP
+0xfa 	HID_KEY_IOS_ANDROID_OS_LOCK
+0xfb	HID_KEY_MAC_EJECT
+0xfc	HID_KEY_AC_FORWARD
+0xfd	HID_KEY_AC_STOP
+0xfe	HID_KEY_android_set
+0xff 	HID_KEY_SYSTEM_SLEEP
+        // 0xe8~0xff reserved
+0xa5	HID_KEY_SELECT_ALL
+0xa6 	HID_KEY_COPY
+0xa7	HID_KEY_PASTE
+0xa8	HID_KEY_CUT
+0xa9	HID_KEY_ALL_OS_LOCK
+0xaa	HID_KEY_OSK
+0xab	HID_KEY_LANGUAGE
+0xac 	HID_KEY_APP_TILING
+0xad	HID_KEY_SEARCH
+0xae     	HID_KEY_PB
+0xaf	HID_KEY_ALL_OS_HOME
+	 // 0xa5~0xaf reserved
+0x7f     	HID_KEY_FN
+0x00     	HID_KEY_NULL
+)
+(
+0x01 LEFT_CONTROL
+0x02 LEFT_SHIFT
+0x04 LEFT_ALT
+0x08 LEFT_GUI
+0x10 RIGHT_CONTROL
+0x20 RIGHT_SHIFT
+0x40 RIGHT_ALT
+0x80 RIGHT_GUI
+0x09 LEFT_GUI_CONTROL
+0x0a LEFT_SHIFT_GUI
+)
+(
+0x00 KB_PC_KEYSEL_NUMLOCK
+0x01 KB_PC_KEYSEL_CAPSLOCK
+0x02 KB_PC_KEYSEL_SCROLLLOCK
+)
+(
+8 KEYSCAN_COL_NUM
+20 KEYSCAN_ROW_NUM
+)
+(
+0 CAMMBINATION_KEY_FREE
+1 CAMMBINATION_KEY_PRESS
+2 CAMMBINATION_KEY_HOLD
+3 CAMMBINATION_KEY_COMPLETE
+4 CAMMBINATION_KEY_WAIT_RELEASE
+5 CAMMBINATION_KEY_RELEASE
+6 CAMMBINATION_KEY_NULL
+)
+(
+
+0x600 PNP_MICROSOFT
+0x4c00 PNP_IOS
+0x1208 PNP_MAC
+
+
+0 SYSTEM_OS_WINDOWS
+1 SYSTEM_OS_ANDROID
+2 SYSTEM_OS_IOS
+3 SYSTEM_OS_MAC
+
+)
+(
+0 KEYBOARD_CONSUMER_KEY_STANDBY
+1 KEYBOARD_CONSUMER_KEY_PRESS
+2 KEYBOARD_CONSUMER_KEY_RELEASE
+)
+(
+//keyboard_function_flag
+0x08 KEYBOARD_FLAG_LEN
+//byte 0
+0x00 KEYBOARD_24G_PAIRING_FLAG
+0x01 KEYBOARD_STORE_MEMORY_FLAG
+0x02 KEYBOARD_LOW_VOLTAGE_FLAG
+0x03 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x04 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+//byte 1
+0x08 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+0x09 KEYBOARD_ENABLE_16M
+0x0a KEYBOARD_DISABLE_ICE
+0x0b KEYBOARD_ENABLE_ADC
+0x0c KEYBOARD_ENABLE_FLASH
+0x0d KEYBOARD_ENABLE_2K_EEPROM
+0x0e KEYBOARD_ENABLE_EEPROM
+0x0f KEYBOARD_ENABLE_OTP
+
+//byte 2
+0x10 KEYBOARD_ENABLE_24G
+0x11 KEYBOARD_ENABLE_AUTO_24G_PARING
+0x12 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x13 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x14 KEYBOARD_ENABLE_24G_2M_PHY
+0x15 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+
+//byte 3
+0x18 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+0x19 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x1a KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x1b KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+
+//byte 4
+0x20 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+0x21 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+0x22 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+0x23 KEYBOARD_ENABLE_MOUSE
+0x24 KEYBOARD_ENABLE_USB
+
+//byte 5
+0x28 KEYBOARD_ENABLE_030_POWER_LED
+0x29 KEYBOARD_ENABLE_LOW_LED
+0x2a KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+0x2b KEYBOARD_ENABLE_BACKLIGHT
+
+//byte 6
+0x30 KEYBOARD_ENABLE_FN_ARROW
+0x31 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+0x32 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+0x33 KEYBOARD_ENABLE_FN_OS_SWITCH
+0x34 KEYBOARD_ENABLE_FN_LOCK
+
+//byte 7
+0x38 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x39 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+0x3a KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+0x3b KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+0x3c KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+0x3d KEYBOARD_ENABLE_SDA_MULTI_R_LINE
+0x3e KEYBOARD_ENABLE_SDA_MULTI_ICE_LINE
+
+)
+(
+//eeprom address offect
+0x00 KEYBOARD_INFO_EEPROM_OFFECT
+0x00 KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT
+0x01 KEYBOARD_BLE_ADDR_EEPROM_OFFECT
+0x28 KEYBOARD_STORE_FLAG
+0x2b KEYBOARD_G24_ADDR_EEPROM_OFFECT	//4bytes
+0x2f KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET
+0x31 KEYBOARD_FN_FLAG_EEPROM_OFFSET
+0x36 KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET
+0x39 KEYBOARD_RGB_TPYE_OFFSET
+
+0x00 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO
+0x01 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR
+0x02 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR
+0x03 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK
+0x04 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM
+0x05 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE
+)
+(
+0 KEYBOARD_RGB_BLUE_STATUS
+1 KEYBOARD_RGB_GREEN_STATUS
+2 KEYBOARD_RGB_RED_STATUS
+
+0 RGB_BACKLIGHT_STATUS_OFF
+1 RGB_BACKLIGHT_STATUS_ON
+2 RGB_BACKLIGHT_STATUS_BREATHE
+
+0 RGB_BACKLIGHT_ON_TPYE_RED
+1 RGB_BACKLIGHT_ON_TPYE_ORANGE
+2 RGB_BACKLIGHT_ON_TPYE_PURPLE
+3 RGB_BACKLIGHT_ON_TPYE_GREEN
+4 RGB_BACKLIGHT_ON_TPYE_CYAN
+5 RGB_BACKLIGHT_ON_TPYE_BLUE
+6 RGB_BACKLIGHT_ON_TPYE_WHITE
+
+0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
+1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
+2 RGB_BACKLIGHT_BREATHE_TPYE_RED
+3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
+4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
+5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
+6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
+)
+(
+0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
+1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
+)
+(
+0x01 KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR
+0x02 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR
+0x03 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN
+)
+(
+0x20 KEYBOARD_BLE_L2CAP_TXBUFF_SIZE
+)
+(
+0 KEYBOARD_BATTARY_1V5
+1 KEYBOARD_BATTARY_3V0
+2 KEYBOARD_BATTARY_4V2
+)
+(//mem_module_flag
+//bit0~bit7 config module function
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_SEND_MTU23
+2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+//bit8~bit15 module states change
+8 MODULE_FLAG_BLE_DATA_FINISH
+
+)
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+(
+	5 FLAG_MODULE_READ_VDD_COUNT
+)
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+)
+(//Command
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x12 HCI_CMD_BLE_DISCONNECT
+0x13 HCI_CMD_DELETE_DEVICE
+0x14 HCI_CMD_CREATE_CONNECT
+0x26 HCI_CMD_SET_NVRAM_REQ
+0x27 HCI_CMD_SLEEP
+0x28 HCI_CMD_CONFIRM_GKEY
+0x2a HCI_CMD_AUTO_ADV_SCAN
+0x2b HCI_CMD_POWER_REQ
+0x2c HCI_CMD_POWER_SET
+0x30 HCI_CMD_PASSKEY_ENTRY
+0x31 HCI_CMD_SET_GPIO
+0x32 HCI_CMD_READ_GPIO
+0x33 HCI_CMD_LE_SET_PAIRING
+0x34 HCI_CMD_LE_SET_ADV_DATA
+0x35 HCI_CMD_LE_SET_SCAN_DATA
+0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
+0x37 HCI_CMD_LE_SET_ADV_PARM
+0x38 HCI_CMD_LE_START_PAIRING
+0x40 HCI_CMD_SET_WAKE_GPIO
+0x42 HCI_CMD_SET_TX_POWER
+0x43 HCI_CMD_BOOT_VERSION_REQ
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+0x49 HCI_CMD_REJECT_JUSTWORK
+0x51 HCI_CMD_RESET_CHIP_REQ
+
+0x61 HCI_CMD_LE_SET_FIXED_PASSKEY
+
+0x76 HCI_CMD_DELETE_CUSTOMIZE_SERVICE
+0x77 HCI_CMD_ADD_SERVICE_UUID
+0x78 HCI_CMD_ADD_CHARACTERISTIC_UUID
+0x7a HCI_CMD_PASSKEY_ENTRY_INPUT
+0x7b HCI_CMD_LE_CREAT_CONN
+
+0x90 HCI_CMD_BLE_SET_PHY
+0x91 HCI_CMD_BLE_READ_CURRENT_PHY
+0x92 HCI_CMD_BLE_SET_DLE
+0x93 HCI_CMD_READ_CHIP_DATA
+0x94 HCI_CMD_WRITE_CHIP_DATA
+ifdef COMPILE_WECHAT
+0x95 HCI_CMD_WECHAT_SEND_DATA
+endif
+0xff HCI_CMD_CLOSE_LPM
+)
+(//event
+0x00 HCI_EVENT_SPP_CONN_REP
+0x01 HCI_EVENT_HID_CONN_REP
+0x02 HCI_EVENT_LE_CONN_REP
+0x03 HCI_EVENT_SPP_DIS_REP
+0x04 HCI_EVENT_HID_DIS_REP
+0x05 HCI_EVENT_LE_DIS_REP
+0x06 HCI_EVENT_CMD_RES
+0x07 HCI_EVENT_SPP_DATA_REP
+0x08 HCI_EVENT_LE_DATA_REP
+0x09 HCI_EVENT_STANDBY_REP
+
+0x0a HCI_EVENT_STATUS_RES
+
+0x0D HCI_EVENT_NVRAM_REP
+0x0e HCI_EVENT_GKEY
+0x0F HCI_EVENT_INVALID_PACKET
+0x10 HCI_EVENT_GET_PASSKEY
+0x11 HCI_EVENT_LE_TK
+0x12 HCI_EVENT_REMOTE_MTU
+0x14 HCI_EVENT_LE_PAIRING_STATE
+0X15 HCI_EVENT_LE_ENCRYPTION_STATE
+0x17 HCI_EVENT_LE_CONNECTION_UPDATE
+0x1d HCI_EVENT_LE_GKEY
+0x29 HCI_EVENT_UUID_HANDLE
+0x2b HCI_EVENT_LE_INPUT_GKEY
+
+0x40 HCI_BLE_UPDATE_PHY_EVENT
+ifdef COMPILE_WECHAT
+0x41 HCI_BLE_WECHAT_RECEIVE_PUSH_DATA
+endif
+)
+(//command HCI_CMD_SET_GPIO
+//byte 0
+0x00 HCI_CMD_CONFIG_GPIO_INPUT
+0x01 HCI_CMD_CONFIG_GPIO_OUTPUT
+//byte 1 input state
+0x00 GPIO_INPUT_PULLUP
+0x01 GPIO_INPUT_PULLDOWN
+0x02 GPIO_INPUT_HIGH_IMPEDANCE
+)
+(
+0x0080	FLAG_BLE_PAIRING_SUCCESS
+0x0180	FLAG_BLE_PAIRING_FAIL
+)
+(
+1	FLAG_EVENT_START_ENC
+0	FLAG_EVENT_PAUSE_ENC
+)
+(
+0 MOUDLE_STATE_BT_BIT
+1 MOUDLE_STATE_BLE_BIT
+)
+(
+5 BIT_OF_NOTIFY_AUTHENTICATED
+6 BIT_OF_READ_AUTHENTICATED
+7 BIT_OF_WRITE_AUTHENTICATED
+)
+(
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0x03 MOUSE_LR_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
+0x12 MOUSE_R_FW_BUTTON
+0x12 MOUSE_M_BK_BUTTON
+0x14 MOUSE_M_FW_BUTTON
+0X18 MOUSE_BK_FW_BUTTON
+//mouse default gpio
+0x1B MOUSE_DEFAULT_XA_GPIO
+0x1C MOUSE_DEFAULT_XB_GPIO
+
+//ui led blink
+0X00C8  LED_RECONNECT_BLINK //200
+0X0190  LED_DPI_BLINK //400
+0X03E8  LED_DPI_BLINK_FIXED    //1000
+0X03E8  LED_DISCOVERY_BLINK    //1000
+0XFF    LED_LONG_BLINK
+0x05	LED_SENSOR_BLINK_CNT
+//mode device number
+0x00 MODE_24G_DEVICE
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x04 MODE_USB_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0x08 MOUSE_FLAG_LEN
+//byte 1
+0x00 MOUSE_SELECT_DEVICE_FLAG
+0x01 MOUSE_24G_PAIRING_FLAG
+0x02 MOUSE_STORE_EEPROM_FLAG
+0x03 MOUSE_BT_CANNEL_RECONN_FLAG
+0x04 MOUSE_LOW_VOLTAGE_FLAG
+0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+0x07 MOUSE_ENABLE_SPI2
+
+//byte 2
+0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0x09 MOUSE_ENABLE_2K_EEPROM
+0x0a MOUSE_ENABLE_WAKEUP_FROM_POWER
+0x0b MOUSE_ENABLE_16M
+0x0c MOUSE_ENABLE_USB
+0x0d MOUSE_ENABLE_24G_SEARCH_DONGLE
+0x0e MOUSE_ENABLE_LOAD_AND_STORE_DPI
+0x0f MOUSE_ENABLE_24G
+
+//byte 3
+0x10 MOUSE_ENABLE_FLASH
+0x11 MOUSE_ENABLE_EEPROM
+0x12 MOUSE_ENABLE_OTP
+0x13 MOUSE_ENABLE_ADC
+0x14 MOUSE_ENABLE_KEYBOARD
+0x15 MOUSE_ENABLE_DOUBLE_DPI_KEY
+0x16 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+
+//byte 4
+0x18 MOUSE_ENABLE_24G_250Hz
+0x19 MOUSE_ENABLE_24G_500Hz
+0x1a MOUSE_ENABLE_24G_1000
+0x1b MOUSE_ENABLE_BT_125Hz
+0x1c MOUSE_ENABLE_DPI_LEVEL_4
+0x1d MOUSE_ENABLE_USB_250
+0x1e MOUSE_ENABLE_USB_500
+0x1f MOUSE_ENABLE_USB_1000
+
+//byte 5
+0x20 MOUSE_ENABLE_1IO2LED
+0x21 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+0x22 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+0x23 MOUSE_ENABLE_LOW_LED
+0x24 MOUSE_ENABLE_LOW_FOR_LED
+0x25 MOUSE_ENABLE_DPI_FOR_LED
+
+//byte 6
+0x28 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+0x29 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+0x2a MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x2b MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+0x2c MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+0x2d MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+0x2e MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+0x2f MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN
+
+//byte 7 
+0x30 MOUSE_ENABLE_AUTO_24G_PARING
+0x31 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+0x32 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x33 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x34 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+0x35 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+0x36 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+0x37 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+
+//byte 8
+0x38 MOUSE_ENABLE_SMOOTHER
+0x39 MOUSE_ENABLE_XY_OFFSET
+0x3a MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x3b MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x3c MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+0x3d MOUSE_ENABLE_24G_2M_PHY
+0x3e MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+//mouse dpi level
+0x00 MOUSE_DPI_LEVEL1
+0x01 MOUSE_DPI_LEVEL2
+0x02 MOUSE_DPI_LEVEL3
+0x03 MOUSE_DPI_LEVEL4
+
+
+//mouse sensor angle
+0x00 MOUSE_6CLK_ANGLE
+0X01 MOUSE_9CLK_ANGLE
+0X02 MOUSE_12CLK_ANGLE
+0X03 MOUSE_3CLK_ANGLE
+
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_UP
+0x01 DPI_BUTTON_STATE_DOWN
+
+
+//PB button state 
+0x00 PB_BUTTON_STATE_UP
+0x01 PB_BUTTON_STATE_DOWN
+
+//Commbination_key state 
+0x00 COMMBINATION_KEY_STATE_UP
+0x01 COMMBINATION_KEY_STATE_DOWN
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0x58 MOUSE_STORE_FLAG
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_EEPROM_MODULE_INIT_FLAG
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0x00 P3065_ID2
+0x5a P_MX8650
+0xD8 P8009_ID2
+0x50 P6520A_ID2
+0x57 KA5857_ID2
+0x58 PKA8G2_ID1
+0x59 PKA8G2_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 P3204
+0X03 P3212
+0X04 P3065_XY
+0x05 MX8650
+0x06 P8009
+0x07 P6520
+0X08 KA8
+0X09 KA8_UL
+0X0a KA8_HD
+0X0b KA8G2
+0X0c S201X
+0X0d KA5857
+
+
+//SENSOR REG
+0x00 PAN_REG_PID_L
+0x01 PAN_REG_PID_H
+0x02 PAN_REG_MOTION_STAUS
+0x03 PAN_REG_DELTA_X
+0x04 PAN_REG_DELTA_Y
+0x05 PAN_REG_OPRATION_MODE
+0x06 PAN_REG_CONFIG
+0x07 PAN_REG_IMAGE_QUALITY
+0x08 PAN_REG_OPRATION_STATE
+0x09 PAN_REG_WRITE_PROTECT
+0x0A PAN_REG_SLEEP_1
+0x0B PAN_REG_ENTER_TIME
+0x0C PAN_REG_SLEEP_2
+0x0D PAN_REG_IMAGE_THRESHOLD
+0x0E PAN_REG_IMAGE_RECGNITION
+
+
+0x06 MOUSE_DPI_ADDRESS
+0x05 MOUSE_P3610_DPI_ADDRESS
+0x0D MOUSE_P3212_DPI_XADDRESS
+0x0E MOUSE_P3212_DPI_YADDRESS
+
+)
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+(
+2 BIT_POWER_ON
+)
+(
+0x00 MOUSE_L_KEY
+0x01 MOUSE_R_KEY
+0x02 MOUSE_M_KEY
+0x03 MOUSE_BK_KEY
+0x04 MOUSE_FW_KEY
+0x05 MOUSE_DPI_KEY
+0x06 MOUSE_PB_KEY
+0x07 MOUSE_CUSTOMER_KEY
+0x00 MOUSE_DPI_ANOTHER_KEY
+)
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+(
+1 KEY_DOWN 
+0 KEY_UP 
+)
+(
+0x00 KEYPAD_TYPE_CONSUMER
+0x01 KEYPAD_TYPE_MOUSE
+0x02 KEYPAD_TYPE_KEYPAD
+0x03 KEYPAD_TYPE_NEC
+)
+(
+0x03 MAX_QUEUE_UNIT
+)
+(
+0x100 NEC_STORE_BUF_SIZE
+0x3fff NEC_LEAR_HEAD
+)
+(
+0 INDEX_0
+1 INDEX_1
+2 INDEX_2
+3 INDEX_3
+4 INDEX_4
+5 INDEX_5
+6 INDEX_6
+7 INDEX_7
+8 INDEX_8
+9 INDEX_9
+10 INDEX_10
+11 INDEX_11
+12 INDEX_12
+13 INDEX_13
+14 INDEX_14
+15 INDEX_15
+16 INDEX_16
+17 INDEX_17
+18 INDEX_18
+19 INDEX_19
+20 INDEX_20
+)
+(
+0x00 NONE_FILTER
+0x01 WHITE_LIST_SCAN_FILTER
+0x02 WHITE_LIST_CONNECT_FILTER
+0x03 WHITE_LIST_CONN_SCAN_FILTER
+)
+(
+0xAB OTA_EVENT
+0xBA OTA_COMMAND
+)
+(
+0x10 OTA_PORTOCOL_VERSION_REQUEST
+0x11 OTA_BUCK_SIZE_REQUEST
+0x12 OTA_WORK_MODE_REQUEST
+0x13 OTA_SWITCH_WORK_MODE_REQUEST
+0x14 OTA_FLASH_CHECKSUM_REQUEST
+0x15 OTA_START_REQUEST
+0x16 OTA_DATA_WRITE_CMD
+0x17 OTA_DATA_WRITE_REQUEST
+0x18 OTA_END_REQUEST
+)
+(
+0x00 OTA_UPDATE_FLASH_NORMAL
+)
+(
+0x00 OTA_RESULT_SUCCESS
+0x01 OTA_RESULT_WORKMODE_NOT_SUPPORT
+0x02 OTA_RESULT_WORKMODE_ERROR
+0x03 OTA_RESULT_FLASHMODE_NOT_SUPPORT
+0x04 OTA_RESULT_INDEX_ERROR
+0x05 OTA_RESULT_LENGTH_ERROR
+0x06 OTA_RESULT_BUCK_SIZE_ERROR
+0x07 OTA_RESULT_WRITE_FLASH_ERROR
+0xFF OTA_RESULT_ERROR
+)
+(
+0x01 OTA_LE_CONN_PARAM_UPDATE_ENABLE
+0x00 OTA_LE_CONN_PARAM_UPDATE_DISABLE
+)
+(
+0 BLE_SHUTTER
+1 CLASSIC_SHUTTER
+)
+(
+0x0000 NVRAM_EEPROM_OFFSET
+)
+(
+0x1b3a SHUTTER_EEPROM_CONFIG_CRC
+)
+(
+5 MAX_QUEUE_NUM
+5 SHUTTER_BLE_DATA_BUFFER
+5 SHUTTER_CLASSIC_DATA_BUFFER
+)
+(
+0x13	GATT_CONSUMER_NOTIFY_HANDLE
+0x14	GATT_CONSUMER_WRITE_HANDLE
+0x17	GATT_KEYBOARD_NOTIFY_HANDLE
+0x18	GATT_KEYBOARD_WRITE_HANDLE
+)
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE
+//100ms
+0x00a0	SLOW_ADV_INTERVAL_VALUE
+)
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+(//Data Rom Buffer Addr
+313		BLE_GATT_LIST_SIZE
+487		BT_SDP_LIST_SIZE
+40		BLE_KEY_VALUE_LIST_SIZE
+40		BT_KEY_VALUE_LIST_SIZE
+)
+(//soft switch power state
+0		SS_STATE_POWER_UP
+1		SS_STATE_POWER_ON
+2		SS_STATE_POWER_OFF
+)
+(
+0		SS_POWER_STATE_OFFSET
+1		SS_POWER_ON_TIME
+2		SS_POWER_OFF_TIME
+3		SS_POWER_ON_CB
+5		SS_POWER_OFF_CB
+
+)
+(
+
+0x4FFE SIM_IIC_SCL_GPIO_NUM
+0x4FFF SIM_IIC_SDA_GPIO_NUM
+
+)
+(
+0 SHUTTER_TYPE
+1 SHUTTER_DY_TYPE
+)
+(
+10 MAX_QUEUE_NUM_COMBINEKEY
+15 MAX_QUEUE_NUM_RELEASE
+3 MAX_QUEUE_NUM_LONG
+3 MAX_QUEUE_NUM_LONG_RELEASE
+10 MAX_QUEUE_NEW_PRESS
+
+10 EVERY_PAYLOAD_LEN
+)
+(
+0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
+)
+(//Data Rom Buffer Addr
+640		BT_DY_KEY_VALUE_LIST_SIZE
+)
+(
+0x05   SHUTTER_PARA_TOTAL_NUM
+//0x7b0  SHUTTER_EFUSE_START_OFFECT	//起始地址
+//0x680  SHUTTER_EFUSE_END_OFFECT	       //结束地址
+)
+(
+//uart config
+115200 UART_BAUD
+)
+(
+10 SHUTTER_KEY_CONF_SATE_BYTES
+0 KEY_STATE_PRESS_CLK_OFFSET
+4 KEY_STATE_PRESS_COUNT_OFFSET
+5 KEY_STATE_RELEASE_CLK_OFFSET
+9 KEY_STATE_LONGPRESS_OFFSET
+4 KEY_STATE_PRESS_CLK_LENGTH
+1 KEY_STATE_PRESS_COUNT_LENGTH
+4 KEY_STATE_RELEASE_CLK_LENGTH
+1 KEY_STATE_LONGPRESS_LENGTH
+)
+(
+0  SHUTTER_RIGHT_KEY_NUM
+1  SHUTTER_LIKE_KEY_NUM
+2  SHUTTER_DOWN_KEY_NUM
+3  SHUTTER_PHOTO_KEY_NUM
+4  SHUTTER_UP_KEY_NUM
+5  SHUTTER_LEFT_KEY_NUM
+6  SHUTTER_MOVE_KEY_NUM
+7  SHUTTER_FUN_KEY_NUM
+)
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X55 ANDROID_EVERY_MOVE_SIZE
+0x07 IPHONE_EVERY_MOVE_SIZE
+0xfff IPHONE_ONCE_MAX_MOVE_VALUE
+)
+(
+0x00 MOVE_COMBINE_KEY
+0x01 MOVE_SINGLE_KEY
+)
+(
+//6key or 7key conf
+6 SHUTTER_SIX_KEY
+7 SHUTTER_SEVEN_KEY
+8 SHUTTER_EIGHT_KEY
+)
+(
+0x07 HCI_UART_TX_GPIO_NUM
+0x06 HCI_UART_RX_GPIO_NUM
+0x09 HCI_UART_RTS_GPIO_NUM
+0x0a HCI_UART_CTS_GPIO_NUM
+0x0c HCI_PMW_12MHZ_GPIO_NUM
+)
+(
+0x00 COMMAND_SUCCEEDED
+0x01 COMMAND_UNKNOWN
+0x0c COMMAND_DISALLOWED
+)
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+)
+(
+0x00 BT_ACL_START_NO_FLUSH
+0x01 BT_ACL_CONT
+0x02 BT_ACL_START
+)
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_CONTROLLER_AND_BASEBAND
+0x04 HCI_OGF_INFOMATIONAL_PARAM
+0x05 HCI_OGF_STATUS_PARAM
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LE_CONTROLLER
+0x3f HCI_OGF_VENDOR_SPECIFIC_DEBUG
+)
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+
+0X12 HCI_VENDOR_CMD_PATCH_SEC_INIT
+0X13 HCI_VENDOR_CMD_PATCH_SEC
+0x14 HCI_VENDOR_CMD_SET_FLOW_CONTROL
+)
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+8 G24_CH_NUMBER
+16 G24_CH_POLL_COUNT
+
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE
+
+0x5a USB_INTERFACE_INSERT
+0xa5 USB_INTERFACE_REMOVE
+
+
+10 LE_LPM_DISABLE_TO
+1 LE_LPM_DISABLE
+0 LE_LPM_ENABLE
+
+12 LE_INTERVAL_15MS
+9 LE_INTERVAL_11_25MS//11.25ms
+7 LE_INTERVAL_8_75MS//8.75ms
+6 LE_INTERVAL_7_5MS//7.5ms
+12 CLASSIC_INTERVAL_7_5MS
+14 CLASSIC_INTERVAL_8_75MS
+18 CLASSIC_INTERVAL_11_25MS
+
+)(
+256 l2cap_lpm_txbuf_len
+)
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0xf00 mem_dcoc_buf
+0xff0 mem_dcoc_buf_end
+)
+(
+0xf00 mem_le_l2cap_buf		//0x100
+)
+(
+0xd00 mem_ble_tx_buff0
+0x60 mem_ble_l2cap_tx_buff_size
+)
+(
+0xc00 mem_h5rx_buf//0x400
+0xeff mem_h5rx_buf_end
+0xf00 mem_h5tx_buf
+0xfff mem_h5tx_buf_end
+)
+(
+0x4c00 mem_savelist
+)
+(
+	  0 patch00_0
+	  1 patch00_1
+	  2 patch00_2
+	  3 patch00_3
+	  4 patch00_4
+	  5 patch00_5
+	  6 patch00_6
+	  7 patch00_7
+	  8 patch01_0
+	  9 patch01_1
+	 10 patch01_2
+	 11 patch01_3
+	 12 patch01_4
+	 13 patch01_5
+	 14 patch01_6
+	 15 patch01_7
+	 16 patch02_0
+	 17 patch02_1
+	 18 patch02_2
+	 19 patch02_3
+	 20 patch02_4
+	 21 patch02_5
+	 22 patch02_6
+	 23 patch02_7
+	 24 patch03_0
+	 25 patch03_1
+	 26 patch03_2
+	 27 patch03_3
+	 28 patch03_4
+	 29 patch03_5
+	 30 patch03_6
+	 31 patch03_7
+	 32 patch04_0
+	 33 patch04_1
+	 34 patch04_2
+	 35 patch04_3
+	 36 patch04_4
+	 37 patch04_5
+	 38 patch04_6
+	 39 patch04_7
+	 40 patch05_0
+	 41 patch05_1
+	 42 patch05_2
+	 43 patch05_3
+	 44 patch05_4
+	 45 patch05_5
+	 46 patch05_6
+	 47 patch05_7
+	 48 patch06_0
+	 49 patch06_1
+	 50 patch06_2
+	 51 patch06_3
+	 52 patch06_4
+	 53 patch06_5
+	 54 patch06_6
+	 55 patch06_7
+	 56 patch07_0
+	 57 patch07_1
+	 58 patch07_2
+	 59 patch07_3
+	 60 patch07_4
+	 61 patch07_5
+	 62 patch07_6
+	 63 patch07_7
+	 64 patch08_0
+	 65 patch08_1
+	 66 patch08_2
+	 67 patch08_3
+	 68 patch08_4
+	 69 patch08_5
+	 70 patch08_6
+	 71 patch08_7
+	 72 patch09_0
+	 73 patch09_1
+	 74 patch09_2
+	 75 patch09_3
+	 76 patch09_4
+	 77 patch09_5
+	 78 patch09_6
+	 79 patch09_7
+	 80 patch0a_0
+	 81 patch0a_1
+	 82 patch0a_2
+	 83 patch0a_3
+	 84 patch0a_4
+	 85 patch0a_5
+	 86 patch0a_6
+	 87 patch0a_7
+	 88 patch0b_0
+	 89 patch0b_1
+	 90 patch0b_2
+	 91 patch0b_3
+	 92 patch0b_4
+	 93 patch0b_5
+	 94 patch0b_6
+	 95 patch0b_7
+	 96 patch0c_0
+	 97 patch0c_1
+	 98 patch0c_2
+	 99 patch0c_3
+	100 patch0c_4
+	101 patch0c_5
+	102 patch0c_6
+	103 patch0c_7
+	104 patch0d_0
+	105 patch0d_1
+	106 patch0d_2
+	107 patch0d_3
+	108 patch0d_4
+	109 patch0d_5
+	110 patch0d_6
+	111 patch0d_7
+	112 patch0e_0
+	113 patch0e_1
+	114 patch0e_2
+	115 patch0e_3
+	116 patch0e_4
+	117 patch0e_5
+	118 patch0e_6
+	119 patch0e_7
+	120 patch0f_0
+	121 patch0f_1
+	122 patch0f_2
+	123 patch0f_3
+	124 patch0f_4
+	125 patch0f_5
+	126 patch0f_6
+	127 patch0f_7
+	128 patch10_0
+	129 patch10_1
+	130 patch10_2
+	131 patch10_3
+	132 patch10_4
+	133 patch10_5
+	134 patch10_6
+	135 patch10_7
+	136 patch11_0
+	137 patch11_1
+	138 patch11_2
+	139 patch11_3
+	140 patch11_4
+	141 patch11_5
+	142 patch11_6
+	143 patch11_7
+	144 patch12_0
+	145 patch12_1
+	146 patch12_2
+	147 patch12_3
+	148 patch12_4
+	149 patch12_5
+	150 patch12_6
+	151 patch12_7
+	152 patch13_0
+	153 patch13_1
+	154 patch13_2
+	155 patch13_3
+	156 patch13_4
+	157 patch13_5
+	158 patch13_6
+	159 patch13_7
+	160 patch14_0
+	161 patch14_1
+	162 patch14_2
+	163 patch14_3
+	164 patch14_4
+	165 patch14_5
+	166 patch14_6
+	167 patch14_7
+	168 patch15_0
+	169 patch15_1
+	170 patch15_2
+	171 patch15_3
+	172 patch15_4
+	173 patch15_5
+	174 patch15_6
+	175 patch15_7
+	176 patch16_0
+	177 patch16_1
+	178 patch16_2
+	179 patch16_3
+	180 patch16_4
+	181 patch16_5
+	182 patch16_6
+	183 patch16_7
+	184 patch17_0
+	185 patch17_1
+	186 patch17_2
+	187 patch17_3
+	188 patch17_4
+	189 patch17_5
+	190 patch17_6
+	191 patch17_7
+	192 patch18_0
+	193 patch18_1
+	194 patch18_2
+	195 patch18_3
+	196 patch18_4
+	197 patch18_5
+	198 patch18_6
+	199 patch18_7
+	200 patch19_0
+	201 patch19_1
+	202 patch19_2
+	203 patch19_3
+	204 patch19_4
+	205 patch19_5
+	206 patch19_6
+	207 patch19_7
+	208 patch1a_0
+	209 patch1a_1
+	210 patch1a_2
+	211 patch1a_3
+	212 patch1a_4
+	213 patch1a_5
+	214 patch1a_6
+	215 patch1a_7
+	216 patch1b_0
+	217 patch1b_1
+	218 patch1b_2
+	219 patch1b_3
+	220 patch1b_4
+	221 patch1b_5
+	222 patch1b_6
+	223 patch1b_7
+	224 patch1c_0
+	225 patch1c_1
+	226 patch1c_2
+	227 patch1c_3
+	228 patch1c_4
+	229 patch1c_5
+	230 patch1c_6
+	231 patch1c_7
+	232 patch1d_0
+	233 patch1d_1
+	234 patch1d_2
+	235 patch1d_3
+	236 patch1d_4
+	237 patch1d_5
+	238 patch1d_6
+	239 patch1d_7
+	240 patch1e_0
+	241 patch1e_1
+	242 patch1e_2
+	243 patch1e_3
+	244 patch1e_4
+	245 patch1e_5
+	246 patch1e_6
+	247 patch1e_7
+	248 patch1f_0
+	249 patch1f_1
+	250 patch1f_2
+	251 patch1f_3
+	252 patch1f_4
+	253 patch1f_5
+	254 patch1f_6
+	255 patch1f_7
+	  0 patch20_0
+	  1 patch20_1
+	  2 patch20_2
+	  3 patch20_3
+	  4 patch20_4
+	  5 patch20_5
+	  6 patch20_6
+	  7 patch20_7
+	  8 patch21_0
+	  9 patch21_1
+	 10 patch21_2
+	 11 patch21_3
+	 12 patch21_4
+	 13 patch21_5
+	 14 patch21_6
+	 15 patch21_7
+	 16 patch22_0
+	 17 patch22_1
+	 18 patch22_2
+	 19 patch22_3
+	 20 patch22_4
+	 21 patch22_5
+	 22 patch22_6
+	 23 patch22_7
+	 24 patch23_0
+	 25 patch23_1
+	 26 patch23_2
+	 27 patch23_3
+	 28 patch23_4
+	 29 patch23_5
+	 30 patch23_6
+	 31 patch23_7
+	 32 patch24_0
+	 33 patch24_1
+	 34 patch24_2
+	 35 patch24_3
+	 36 patch24_4
+	 37 patch24_5
+	 38 patch24_6
+	 39 patch24_7
+	 40 patch25_0
+	 41 patch25_1
+	 42 patch25_2
+	 43 patch25_3
+	 44 patch25_4
+	 45 patch25_5
+	 46 patch25_6
+	 47 patch25_7
+	 48 patch26_0
+	 49 patch26_1
+	 50 patch26_2
+	 51 patch26_3
+	 52 patch26_4
+	 53 patch26_5
+	 54 patch26_6
+	 55 patch26_7
+	 56 patch27_0
+	 57 patch27_1
+	 58 patch27_2
+	 59 patch27_3
+	 60 patch27_4
+	 61 patch27_5
+	 62 patch27_6
+	 63 patch27_7
+	 64 patch28_0
+	 65 patch28_1
+	 66 patch28_2
+	 67 patch28_3
+	 68 patch28_4
+	 69 patch28_5
+	 70 patch28_6
+	 71 patch28_7
+	 72 patch29_0
+	 73 patch29_1
+	 74 patch29_2
+	 75 patch29_3
+	 76 patch29_4
+	 77 patch29_5
+	 78 patch29_6
+	 79 patch29_7
+	 80 patch2a_0
+	 81 patch2a_1
+	 82 patch2a_2
+	 83 patch2a_3
+	 84 patch2a_4
+	 85 patch2a_5
+	 86 patch2a_6
+	 87 patch2a_7
+	 88 patch2b_0
+	 89 patch2b_1
+	 90 patch2b_2
+	 91 patch2b_3
+	 92 patch2b_4
+	 93 patch2b_5
+	 94 patch2b_6
+	 95 patch2b_7
+	 96 patch2c_0
+	 97 patch2c_1
+	 98 patch2c_2
+	 99 patch2c_3
+	100 patch2c_4
+	101 patch2c_5
+	102 patch2c_6
+	103 patch2c_7
+	104 patch2d_0
+	105 patch2d_1
+	106 patch2d_2
+	107 patch2d_3
+	108 patch2d_4
+	109 patch2d_5
+	110 patch2d_6
+	111 patch2d_7
+	112 patch2e_0
+	113 patch2e_1
+	114 patch2e_2
+	115 patch2e_3
+	116 patch2e_4
+	117 patch2e_5
+	118 patch2e_6
+	119 patch2e_7
+	120 patch2f_0
+	121 patch2f_1
+	122 patch2f_2
+	123 patch2f_3
+	124 patch2f_4
+	125 patch2f_5
+	126 patch2f_6
+	127 patch2f_7
+	128 patch30_0
+	129 patch30_1
+	130 patch30_2
+	131 patch30_3
+	132 patch30_4
+	133 patch30_5
+	134 patch30_6
+	135 patch30_7
+	136 patch31_0
+	137 patch31_1
+	138 patch31_2
+	139 patch31_3
+	140 patch31_4
+	141 patch31_5
+	142 patch31_6
+	143 patch31_7
+	144 patch32_0
+	145 patch32_1
+	146 patch32_2
+	147 patch32_3
+	148 patch32_4
+	149 patch32_5
+	150 patch32_6
+	151 patch32_7
+	152 patch33_0
+	153 patch33_1
+	154 patch33_2
+	155 patch33_3
+	156 patch33_4
+	157 patch33_5
+	158 patch33_6
+	159 patch33_7
+	160 patch34_0
+	161 patch34_1
+	162 patch34_2
+	163 patch34_3
+	164 patch34_4
+	165 patch34_5
+	166 patch34_6
+	167 patch34_7
+	168 patch35_0
+	169 patch35_1
+	170 patch35_2
+	171 patch35_3
+	172 patch35_4
+	173 patch35_5
+	174 patch35_6
+	175 patch35_7
+	176 patch36_0
+	177 patch36_1
+	178 patch36_2
+	179 patch36_3
+	180 patch36_4
+	181 patch36_5
+	182 patch36_6
+	183 patch36_7
+	184 patch37_0
+	185 patch37_1
+	186 patch37_2
+	187 patch37_3
+	188 patch37_4
+	189 patch37_5
+	190 patch37_6
+	191 patch37_7
+	192 patch38_0
+	193 patch38_1
+	194 patch38_2
+	195 patch38_3
+	196 patch38_4
+	197 patch38_5
+	198 patch38_6
+	199 patch38_7
+	200 patch39_0
+	201 patch39_1
+	202 patch39_2
+	203 patch39_3
+	204 patch39_4
+	205 patch39_5
+	206 patch39_6
+	207 patch39_7
+	208 patch3a_0
+	209 patch3a_1
+	210 patch3a_2
+	211 patch3a_3
+	212 patch3a_4
+	213 patch3a_5
+	214 patch3a_6
+	215 patch3a_7
+	216 patch3b_0
+	217 patch3b_1
+	218 patch3b_2
+	219 patch3b_3
+	220 patch3b_4
+	221 patch3b_5
+	222 patch3b_6
+	223 patch3b_7
+	224 patch3c_0
+	225 patch3c_1
+	226 patch3c_2
+	227 patch3c_3
+	228 patch3c_4
+	229 patch3c_5
+	230 patch3c_6
+	231 patch3c_7
+	232 patch3d_0
+	233 patch3d_1
+	234 patch3d_2
+	235 patch3d_3
+	236 patch3d_4
+	237 patch3d_5
+	238 patch3d_6
+	239 patch3d_7
+	240 patch3e_0
+	241 patch3e_1
+	242 patch3e_2
+	243 patch3e_3
+	244 patch3e_4
+	245 patch3e_5
+	246 patch3e_6
+	247 patch3e_7
+	248 patch3f_0
+	249 patch3f_1
+	250 patch3f_2
+	251 patch3f_3
+	252 patch3f_4
+	253 patch3f_5
+	254 patch3f_6
+	255 patch3f_7
+
+)
+(
+	0x8000 core_chipid
+	0x8001 core_revid
+	0x8003 core_kick
+	0x8004 core_write_wdt
+	0x8005 core_lpm_wr
+	0x8006 core_misc_ctrl
+	0x8007 core_otp_rdata
+	0x8007 core_efuse_rdata
+	0x800a core_ccm_ctrl
+	0x800b core_write_wdt2
+	0x8010 core_reset
+	0x8011 core_encrypt
+	0x8012 core_lpm_wr2
+	0x8020 core_set_bistfix
+	0x8022 core_ucode_hi
+	0x8023 core_ucode_ctrl
+	0x8024 core_ucode_low
+	0x8025 core_ucode_data
+
+	0x8040 core_halfslot
+	0x8042 core_clksel
+	0x8043 core_uart_clksel
+	0x8043 core_config
+	0x8044 core_otp_addr
+	0x8046 core_otp_din
+	0x8046 core_otp_ctrl2
+	0x8047 core_otp_ctrl
+	0x8047 core_otp_pab
+	0x8048 core_xtal_stable_time
+	0x8049 core_gpio_ds
+	0x804c core_lpm_reg
+	0x8050 core_clkoff
+	0x8052 core_uart_baud
+	0x8054 core_uart_rsaddr
+	0x8056 core_uart_readdr
+	0x8058 core_uart_rrptr
+	0x805a core_uart_tsaddr
+	0x805c core_uart_teaddr
+	0x805e core_uart_twptr
+	0x8060 core_uart_ctrl
+	0x8061 core_nec_ctrl
+	0x8062 core_nec_start_addr
+	0x8064 core_nec_end_addr
+	0x8066 core_nec_rptr
+	0x8068 core_ccm_input_playload_addr
+	0x806a core_ccm_output_playload_addr
+	0x806c core_ccm_aad0
+	0x806d core_ccm_aad1
+	0x806e core_ccm_aad2
+	0x806f  core_bist_ctrl
+	0x8070 core_gpio_conf
+	0x8080 core_spid_ctrl
+	0x8081 core_spid_delay
+	0x8082 core_spid_txlen
+	0x8084 core_spid_txaddr
+	0x8086 core_spid_rxaddr
+	0x8088 core_spid_rxlen
+	0x808a core_iicd_ctrl
+	0x808b core_iicd_scl_low
+	0x808c core_iicd_scl_high
+	0x808d core_iicd_start_setup
+	0x808e core_iicd_start_hold
+	0x808f core_iicd_stop_setup
+	0x8090 core_iicd_data_setup
+	0x8091 core_iicd_data_hold
+	0x8092 core_iicd_txlen
+	0x8094 core_iicd_txaddr
+	0x8096 core_iicd_rxaddr
+	0x8098 core_iicd_rxlen
+	0x809a core_pwm_en
+	0x809b core_pwm_init
+	0x809c core_pwm_pcnt0
+	0x809e core_pwm_ncnt0
+	0x80a0 core_pwm_pcnt1
+	0x80a2 core_pwm_ncnt1
+	0x80a4 core_pwm_pcnt2
+	0x80a6 core_pwm_ncnt2
+	0x80a8 core_pwm_pcnt3
+	0x80aa core_pwm_ncnt3
+	0x80ac core_pwm_pcnt4
+	0x80ae core_pwm_ncnt4
+	0x80b0 core_pwm_pcnt5
+	0x80b2 core_pwm_ncnt5
+	0x80b4 core_pwm_pcnt6
+	0x80b6 core_pwm_ncnt6
+	0x80b8 core_pwm_pcnt7
+	0x80ba core_pwm_ncnt7
+	0x80bc core_pwm_sync
+	0x80bd core_pwm_timermode
+	0x80be core_pwm_autoload
+	0x80bf core_sum_ctrl
+	0x80c0 core_ccm_inptr
+	0x80c2 core_dac_ctrl	
+	0x80c3 core_dac_vol
+	0x80c4 core_dac_saddr
+	0x80c6 core_dac_len
+	0x80c8 core_dac_coef
+	0x80cb core_ccnt_bit
+	0x80cc core_sadc_ctrl
+	0x80cd core_sadc_clkdiv
+	0x80ce core_sadc_saddr
+	0x80d0 core_sadc_eaddr
+	0x80d2 core_keybuf_saddr
+	0x80d4 core_gpio_conf_hi
+
+	0x8100 core_clkn
+	0x8108 core_misc_status
+	0x8109 core_qdec_cntx
+	0x810a core_watchdog_cnt
+	0x810b core_uart_status
+	0x810c core_uart_rbaud
+	0x810e core_uart_txitems
+	0x8110 core_uart_trptr
+	0x8112 core_uart_rxitems
+	0x8114 core_uart_rdptr
+	0x8116 core_uart_rwptr
+	0x8118 core_debug_baud
+	0x811a core_ccm_outptr
+	0x811c core_gpio_in
+	0x811d core_gpio_in1
+	0x811e core_adc_sum
+	0x8120 core_nec_wptr
+	0x8122 core_current_otp_addr
+	0x8124 core_spid_remain
+	0x8126 core_iicd_remain
+	0x8128 core_dma_status
+	0x8129 core_perf_status
+	0x812a core_adc_in
+	0x812c core_nec_rxitem
+	0x812e core_otpd_remain
+	0x8130 core_lpm_ctrl
+	0x8132 core_lpm_isogate
+	0x8133 core_lpm_ldosel
+	0x8134 core_io_vsel
+	0x8135 core_io_doze_en
+	0x813a core_xtal_cap
+	0x813d core_xtal_ib
+	0x813e core_lpm_xtalcnt
+	0x813f core_lpm_buckcnt
+	0x8140 core_lpm_ldocnt
+	0x8141 core_puwakeup
+	0x8142 core_lpm_sysctl
+	0x8143 core_ucode_flag
+	0x8144 core_peripheral_lock
+	0x8145 core_mpu_s0_saddr
+	0x8147 core_mpu_s0_eaddr
+	0x8149 core_mpu_s1_saddr
+	0x814b core_mpu_s1_eaddr
+	0x814d core_gpio_wakeup_cfg
+	0x8155 core_aes_decode_key_init
+	0x815b core_clk_counter
+	0x815e core_bist_done
+	0x8160 core_bist_fail
+	0x8162 core_dac_rptr	
+	0x8164 core_sadc_data	
+	0x8166 core_rccnt_counter
+		
+	0x8203 core_ice_ctrl
+	0x8204 core_ice_status
+	0x8205 core_ice_break0
+	0x8207 core_ice_break1
+  
+
+	0x8900 modem_en
+	0x8960 core_rf_rx_agc_ctrl
+	0x8961 core_rf_rx_gain_fix
+	0x8968 core_agc_wb_sat_th
+	0x8969 core_agc_nb_sat_th
+	0x89a0 modem_rssi
+	0x89a1 modem_wb_pow
+	0x89a2 modem_nb_pow
+	0x89a3 modem_gain
+	0x89a4 modem_status
+
+	0x8a00 core_bbpll_ctrl0              
+	0x8a01 core_bbpll_ctrl1              
+	0x8a02 core_bbpll_cfg0               
+	0x8a03 core_bbpll_cfg1               
+	0x8a04 core_bbpll_cfg2               
+	0x8a05 core_bbpll_cfg3               
+	0x8a06 core_bbpll_cfg4               
+	0x8a07 core_gpadc_ctrl
+	0x8a08 core_gpadc_cfg0
+	0x8a09 core_gpadc_cfg1
+	0x8a0a core_gpadc_cfg2
+	0x8a0b core_gpadc_cfg3
+	0x8a0c core_gpadc_status
+	0x8a0d core_vtest_ctrl0
+	0x8a0e core_vtest_ctrl1
+	0x8a0f core_ldo_trx_ctrl0
+	0x8a10 core_ldo_trx_ctrl1
+	0x8a11 core_ldo_trx_ctrl2
+	0x8a12 core_ldo_rfpll_ctrl
+    0x8a13 core_ldo_trx_cfg0
+    0x8a14 core_ldo_trx_cfg1
+    0x8a15 core_ldo_trx_cfg2
+    0x8a16 core_ldo_rfpll_mnc_cfg2
+
+    0x8a20 core_rfpll_afc_ctrl0
+    0x8a21 core_rfpll_afc_ctrl1
+    0x8a22 core_rfpll_afc_ctrl2
+    0x8a23 core_rfpll_en_ctrl0
+    0x8a24 core_rfpll_en_ctrl1
+    0x8a25 core_rf_en_ctrl0
+    0x8a26 core_rf_en_ctrl1
+
+	0x8a30 core_rx_force_en_ctrl
+	0x8a31 core_rx_gc_force_val
+	0x8a32 core_rx_lna_isel_force_val
+
+	0x8a40 core_rx_lna_hg_isel_gc7        
+	0x8a41 core_rx_lna_hg_isel_gc6        
+	0x8a42 core_rx_lna_hg_isel_gc5        
+	0x8a43 core_rx_lna_lg_isel_gc4        
+	0x8a44 core_rx_lna_lg_isel_gc3        
+	0x8a45 core_rx_lna_lg_isel_gc2        
+	0x8a46 core_rx_lna_lg_isel_gc1        
+	0x8a47 core_rx_lna_lg_isel_gc0        
+	0x8a48 core_rx_abb_gc_gc8              
+	0x8a49 core_rx_abb_gc_gc7              
+	0x8a4a core_rx_abb_gc_gc6              
+	0x8a4b core_rx_abb_gc_gc5              
+	0x8a4c core_rx_abb_gc_gc4              
+	0x8a4d core_rx_abb_gc_gc3              
+	0x8a4e core_rx_abb_gc_gc2              
+	0x8a4f core_rx_abb_gc_gc1              
+	0x8a50 core_rx_abb_gc_gc0              
+
+	0x8a60 core_tx_ctrl0
+	0x8a61 core_tx_ctrl1
+	0x8a62 core_tx_ctrl2
+	0x8a63 core_tx_ctrl3
+
+	0x8a70 core_rfpll_cal_ctrl0
+	0x8a71 core_rfpll_cal_ctrl1
+	0x8a72 core_rfpll_cal_ctrl2
+	0x8a73 core_rfpll_cal_ctrl3
+	0x8a74 core_rfpll_cal_ctrl4
+	0x8a75 core_rfpll_cal_ctrl5
+	0x8a76 core_rfpll_cal_ctrl6
+	0x8a77 core_rfpll_cal_ctrl7
+	0x8a78 core_rfpll_cal_ctrl8
+	0x8a79 core_rfpll_cal_ctrl9
+	0x8a7a core_rfpll_cal_ctrl10
+	0x8a7b core_rfpll_cal_ctrl11
+	0x8a7c core_rfpll_cal_result0
+	0x8a7d core_rfpll_cal_result1
+	0x8a7e core_rfpll_cal_result2
+
+    0x8a80 core_rfpll_cfg0
+    0x8a81 core_rfpll_cfg1
+    0x8a82 core_rfpll_cfg2
+    0x8a83 core_rfpll_cfg3
+    0x8a84 core_rfpll_cfg4
+    0x8a85 core_rfpll_cfg5
+    0x8a86 core_rfpll_cfg6
+    0x8a87 core_rfpll_cfg7
+
+    0x8a88 core_rx_cfg0
+    0x8a89 core_rx_cfg1
+    0x8a8a core_rx_cfg2
+    0x8a8b core_rx_cfg3
+    0x8a8c core_rx_cfg4
+    0x8a8d core_rx_cfg5
+    0x8a8e core_rx_cfg6
+    0x8a8f core_rx_cfg7
+    0x8a90 core_rx_cfg8
+
+	0x8aa0 core_rx_tiai_dcoc_gc0          
+	0x8aa1 core_rx_tiaq_dcoc_gc0          
+	0x8aa2 core_rx_tiai_dcoc_gc1          
+	0x8aa3 core_rx_tiaq_dcoc_gc1          
+	0x8aa4 core_rx_tiai_dcoc_gc2          
+	0x8aa5 core_rx_tiaq_dcoc_gc2          
+	0x8aa6 core_rx_tiai_dcoc_gc3          
+	0x8aa7 core_rx_tiaq_dcoc_gc3          
+	0x8aa8 core_rx_tiai_dcoc_gc4          
+	0x8aa9 core_rx_tiaq_dcoc_gc4          
+	0x8aaa core_rx_tiai_dcoc_gc5          
+	0x8aab core_rx_tiaq_dcoc_gc5          
+	0x8aac core_rx_tiai_dcoc_gc6          
+	0x8aad core_rx_tiaq_dcoc_gc6          
+	0x8aae core_rx_tiai_dcoc_gc7          
+	0x8aaf core_rx_tiaq_dcoc_gc7          
+	0x8ab0 core_rx_abbi_dcoc_gc0
+	0x8ab1 core_rx_abbq_dcoc_gc0
+	0x8ab2 core_rx_abbi_dcoc_gc1
+	0x8ab3 core_rx_abbq_dcoc_gc1           
+	0x8ab4 core_rx_abbi_dcoc_gc2
+	0x8ab5 core_rx_abbq_dcoc_gc2
+	0x8ab6 core_rx_abbi_dcoc_gc3
+	0x8ab7 core_rx_abbq_dcoc_gc3
+	0x8ab8 core_rx_abbi_dcoc_gc4
+	0x8ab9 core_rx_abbq_dcoc_gc4
+	0x8aba core_rx_abbi_dcoc_gc5
+	0x8abb core_rx_abbq_dcoc_gc5
+	0x8abc core_rx_abbi_dcoc_gc6
+	0x8abd core_rx_abbq_dcoc_gc6
+	0x8abe core_rx_abbi_dcoc_gc7
+	0x8abf core_rx_abbq_dcoc_gc7
+	0x8ac0 core_rx_abbi_dcoc_gc8
+	0x8ac1 core_rx_abbq_dcoc_gc8
+	0x8ac2 core_rx_tiai_dcoc_force
+	0x8ac3 core_rx_tiaq_dcoc_force
+	0x8ac4 core_rx_abbi_dcoc_force
+	0x8ac5 core_rx_abbq_dcoc_force
+	0x8ac8 core_chgpump_ctrl
+
+	0x8c00 core_usb_config
+	0x8c01 core_usb_addr
+	0x8c02 core_usb_rx_saddr
+	0x8c04 core_usb_rx_eaddr
+	0x8c06 core_usb_rxptr
+	0x8c08 core_usb_tx_saddr0
+	0x8c0a core_usb_tx_saddr1
+	0x8c0c core_usb_tx_saddr2
+	0x8c0e core_usb_tx_saddr3
+	0x8c10 core_usb_epmap
+	0x8c11 core_usb_pupd
+	0x8c12 core_usb_hmode
+	0x8c13 core_usb_int_mask
+	0x8c18 core_usb_trig
+	0x8c19 core_usb_stall
+	0x8c1a core_usb_toggle
+	0x8c1b core_usb_clear_nak
+	0x8c20 core_usb_rx_wptr
+	0x8c22 core_usb_status
+	0x8c24 core_usb_stall_status
+	0x8c25 core_usb_txbusy
+	0x8c26 core_usb_sof_cnt
+	0x8c28 core_usb_rxcnt
+
+	
+
+
+
+    
+    
+)
+(
+
+4 BIST_CTRL_FIX_SCHED_RAM
+5 BIST_CTRL_FIX_XRAM
+6 BIST_CTRL_FIX_PATCH_RAM
+
+7 AES_EN
+)
+(
+4 rx_freq_offset
+2 tx_freq_offset
+)
+(
+/* bit difinitions */
+  4 whiteoff_bit
+  6 clksel_rc
+  1 clksel_dpll_24M
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+)
+(
+  4 cold_wake
+  5 gpio_latch
+  6 retmem_cs
+  7 isogate
+)
+(
+  2 fast_wake
+  3 ice_mode
+  4 reload_code
+)
+(
+1 lpmreg_sel_counter
+2 lpmreg_sel_scanmode
+)
+(
+0 SPI_LOCK_BIT
+1 PWM_LOCK_BIT
+2 UART_LOCK_BIT
+3 IIC_LOCK_BIT
+4 ADPCM_LOCK_BIT
+5 ROM_LOCK_BIT
+6 OPTION_LOCK
+6 OTP_NOT_LIMIT
+7 OTP_LIMIT
+)
+(
+4 LPM_DOZE_EN_BIT	
+)
+(
+  0x01 RCCNT_START
+  0x02 SPID_START
+  0x04 IICD_START
+  0x08 OTP_KEY_LOCK
+  0x10 INIT_KEY
+  0x20 SHIFT_KEY
+  0X80 CCNT_START
+)
+(
+  0 OTPD_CRCOK
+  1 OTPD_DONE
+  2 SPID_CRCOK
+  3 SPID_DONE
+  4 IICD_CRCOK
+  5 IICD_DONE
+  6 IICD_ACK
+)
+(
+1 UART_STATUS_TX_BUSY
+2 UART_STATUS_RX_FIFO_EMPTY
+3 UART_STATUS_RX_FIFO_FULL
+4 UARTB_STATUS_TX_BUSY
+5 UARTB_STATUS_RX_FIFO_EMPTY
+6 UARTB_STATUS_RX_FIFO_FULL
+)
+(//core_uart_clksel
+0 UART_CLOCK_SELECT_BIT
+0xFE UART_CLOCK_SELECT_CRYSTAL
+0x01 UART_CLOCK_SELECT_DPLL
+
+24000000 uart_clock_freq_24M
+48000000 uart_clock_freq_48M
+)
+(//bit map of core_uart_ctrl
+0 BIT_UART_CONTROL_ENABLE
+1 BIT_UART_CONTROL_PARITY
+2 BIT_UART_CONTROL_DATA_LENGTH
+3 BIT_UART_CONTROL_STOP_BIT_SIZE
+4 BIT_UART_CONTROL_FLOW_CONTROL
+5 BIT_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+6 BIT_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+7 BIT_UART_CONTROL_RATE_BAUD_SETTING
+)
+(//FUN of core_uart_ctrl
+0x01 FUN_UART_CONTROL_ENABLE
+0x06 FUN_UART_CONTROL_PARITY_ODD
+0x04 FUN_UART_CONTROL_PARITY_EVEN
+0x08 FUN_UART_CONTROL_STOP_2BIT
+0x00 FUN_UART_CONTROL_STOP_1BIT
+0x10 FUN_UART_CONTROL_FLOW_CONTROL_ENABLE
+0x20 FUN_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+0x40 FUN_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+0x80 FUN_UART_CONTROL_SETTING_RATE_BAUD
+)
+(//bit map of core_nec_control
+0x00 BIT_NEC_ENABLE
+0x01 BIT_NEC_CLK_DIVIDE_NUM
+)
+(//FUN  of core_nec_control
+0x01 FUN_NEC_ENABLE
+0x30 FUN_NEC_CLK_DIVIDE_24	//24M , 
+)
+0x8b uart_ctrl_default //BCSP
+0x81 uart_ctrl_h4 //H4
+0x81 uart_ctrl_normal
+0x91 uart_ctrl_5line
+0x81 uart_ctrl_57600
+2 uart_baud_len
+0x00 uartclk_crystal
+0x01 uartclk_dpll
+0x1a0 uart_baud_115200
+0xbb uart_baud_256000
+0x340 uart_baud_57600
+0x34 uart_baud_921600
+0x9c4 uart_baud_9600
+(
+	0 CLOCK_OFF_AUTH_ROM
+	1 CLOCK_OFF_UC_ROM
+	2 CLOCK_OFF_DEBUG_UART
+	3 CLOCK_OFF_SCHED_RAM
+	4 CLOCK_OFF_TRANCE_FIFO
+	5 CLOCK_OFF_CORDIC
+	6 CLOCK_OFF_OTPD
+	7 CLOCK_OFF_I2C
+	8 CLICK_OFF_SARADC_DMA
+	9 CLOCK_OFF_KEYSCAN
+	9 CLOCK_OFF_NEC
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_UARTB
+	0x0f CLOCK_OFF_UART
+)
+(
+  0 gpcfg_input
+  6 gpcfg_dac_p  
+  7 gpcfg_dac_n
+  8 gpcfg_uart_txd
+  9 gpcfg_uart_rxd
+  10 gpcfg_uart_rts
+  11 gpcfg_uart_cts
+  
+  16 gpcfg_pwm_out0
+  17 gpcfg_pwm_out1
+  18 gpcfg_pwm_out2
+  19 gpcfg_pwm_out3
+  20 gpcfg_pwm_out4
+  21 gpcfg_pwm_out5
+  22 gpcfg_pwm_out6
+  23 gpcfg_pwm_out7
+  24 gpcfg_nec_input
+  
+  31 gpcfg_spid_miso
+  32 gpcfg_spid_ncs
+  33 gpcfg_spid_sck
+  34 gpcfg_spid_mosi
+  35 gpcfg_spid_sdio
+  
+  44 gpcfg_iic_scl
+  45 gpcfg_iic_sda
+  
+  62 gpcfg_output_low
+  63 gpcfg_output_high
+  
+  0x00 gpcfg_high_impedance
+  0x40 gpcfg_pullup
+  0x80 gpcfg_pulldown
+  0xc0 gpcfg_no_ie
+)
+(
+16	GPIO_NUMBER
+8	GPIO_NUMBER_EXT
+0xFF  GPIO_DISABLE
+)
+(
+  0x00   SP_FLAG_STANDBY
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+(
+  0x00   SP_CALC_STANDBY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+(
+  0x00   SP_KEY_INVALID
+  0x03   SP_KEY_VALID_256
+
+)
+(
+0 SECURE_CONNECTIONS_LE_BIT
+1 SECURE_CONNECTIONS_BR_BIT
+)
+(
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+)
+(
+0 BT_CMD_STANDBY
+13 BT_CMD_START_ADV
+14 BT_CMD_STOP_ADV
+15 BT_CMD_START_DIRECT_ADV
+16 BT_CMD_STOP_DIRECT_ADV
+17 BT_CMD_LE_DISCONNECT
+18 BT_CMD_LE_UPDATE_CONN
+19 BT_CMD_LED_OFF
+20 BT_CMD_LED_ON
+21 BT_CMD_LED_BLINK
+22 BT_CMD_LE_START_CONN
+23 BT_CMD_LE_START_SCAN
+24 BT_CMD_LE_STOP_SCAN
+25 BT_CMD_ENTER_HIBERNATE
+27 BT_CMD_LE_SMP_SECURITY_REQUEST
+31 BT_CMD_STORE_RECONN_INFO_LE
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+)
+(
+0x00 BT_EVT_NULL
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2c BT_EVT_BUTTON_DOWN
+0x2d BT_EVT_BUTTON_UP
+0x2e BT_EVT_REMOTE_UNSNIFF
+0x30 BT_EVT_LE_PAIRING_FAIL
+0x31 BT_EVT_LE_PAIRING_SUCCESS
+0x32 BT_EVT_LE_START_ENC
+0X33 BT_EVT_LE_PAUSE_ENC
+0X34 BT_EVT_LE_TK_GENERATE
+0x35 BT_EVT_BT_GKEY_GENERATE
+0x36 BT_EVT_BT_GET_PASSKEY
+0x39 BT_EVT_24G_PAIRING_COMPLETE
+0x3a BT_EVT_24G_ATTEMPT_FAIL
+0x3b BT_EVT_LE_GKEY_GENERATE
+0x3c BT_EVT_24G_ATTEMPT_SUCCESS
+0x3d BT_EVT_STORE_NVRAM
+0x3e BT_EVT_LE_PAIRING_COMPLETE
+0x3F BT_EVT_LE_RECONNECT_COMPLETE
+0x40 BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
+0x41 BT_EVT_LE_LTK_LOST
+0x42 BT_EVT_LE_UPDATE_PHY
+0x43 BT_EVT_LE_GET_PASSKEY
+0x44 BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED
+)
+(
+0 OFF
+1 ON
+)
+(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+)
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+(//led style struct 
+0 		LED_OFFSET_LED_TYPE
+1 		LED_OFFSET_BLINK_COUNT
+2		LED_OFFSET_LED_GPIO
+3		LED_OFFSET_ON_TIME
+5		LED_OFFSET_OFF_TIME
+7 		LED_OFFSET_CB_LEDON
+9		LED_OFFSET_CB_LEDOFF
+11		LED_OFFSET_LENGTH
+)
+(//LED state
+0 UI_LED_STATE_BLINK_STOP
+1 UI_LED_STATE_BLINK_START
+2 UI_LED_STATE_LIGHTING
+3 UI_LED_STATE_DARKING
+4 UI_LED_STATE_BLINK_LIGHTING
+5 UI_LED_STATE_BLINK_DARKING
+
+0xFF LED_INFINITE_FLASH_NUM
+
+)
+(
+0x00 STANDARD_REQ
+0x01 CLASS_REQ
+0x02 MANUFACTURER_REQ
+)
+(
+0x00 GET_STATUS                // Code for Get Status
+0x01 CLEAR_FEATURE             // Code for Clear Feature
+0x03 SET_FEATURE              // Code for Set Feature
+0x05 SET_ADDRESS              // Code for Set Address
+0x06 GET_DESCRIPTOR           // Code for Get Descriptor
+0x07 SET_DESCRIPTOR           // Code for Set Descriptor(not used)
+0x08 GET_CONFIGURATION        // Code for Get Configuration
+0x09 SET_CONFIGURATION        // Code for Set Configuration
+0x0A GET_INTERFACE            // Code for Get Interface
+0x0B SET_INTERFACE            // Code for Set Interface
+0x0C SYNCH_FRAME              // Code for Synch Frame(not used)
+)
+(
+0x01 DSC_DEVICE               // Device Descriptor
+0x02 DSC_CONFIG               // Configuration Descriptor
+0x03 DSC_STRING               // String Descriptor
+0x04 DSC_INTERFACE            // Interface Descriptor
+0x05 DSC_ENDPOINT             // Endpoint Descriptor
+)
+(
+0x21 DSC_HID			      // HID Class Descriptor
+0x22 DSC_HID_REPORT			  // HID Report Descriptor
+)
+(
+0x80 IN_DEVICE                // Request made to device,
+                              // direction is IN
+0x00 OUT_DEVICE               // Request made to device,
+                              // direction is OUT
+0x81 IN_INTERFACE             // Request made to interface,
+                              // direction is IN
+0x01 OUT_INTERFACE            // Request made to interface,
+                              // direction is OUT
+0x82 IN_ENDPOINT              // Request made to endpoint,
+                              // direction is IN
+0x02 OUT_ENDPOINT             // Request made to endpoint,
+)
+(
+0x01 GET_REPORT 		       // Code for Get Report
+0x02 GET_IDLE				   // Code for Get Idle
+0x03 GET_PROTOCOL			   // Code for Get Protocol
+0x09 SET_REPORT				   // Code for Set Report
+0x0A SET_IDLE				   // Code for Set Idle
+0x0B SET_PROTOCOL			   // Code for Set Protocol
+0xF2 HID_REPORT_ID           
+64 EP0_PACKET_SIZE         
+6 EP1_PACKET_SIZE         
+16 HID_REPORT_SIZE         
+0x001B HID_REPORT_DESCRIPTOR_SIZE    
+)
+(
+0 TYPE_SIN		
+1 TYPE_ATAN	
+2 TYPE_MULT	
+3 TYPE_DIV		
+4 TYPE_ASIN	
+5 TYPE_SQRT	
+6 TYPE_COS		
+7 TYPE_TAN		 
+)
+(
+0 DFIFO0_IN_EMPTY
+1 DFIFO1_IN_EMPTY
+2 DFIFO2_IN_EMPTY
+3 DFIFO3_IN_EMPTY
+4 DFIFO0_OUT_EMPTY
+5 DFIFO1_OUT_EMPTY
+6 DFIFO2_OUT_EMPTY
+7 DFIFO3_OUT_EMPTY
+)
+(
+)
+(
+0 USB_STATUS_SETUP
+1 USB_STATUS_SUSPEND
+2 USB_STATUS_NAK
+3 USB_STATUS_RESET
+4 USB_STATUS_ACK
+5 USB_STATUS_RXREADY
+6 USB_STATUS_RXFULL
+7 USB_STATUS_TXDONE0
+8 USB_STATUS_TXDONE1
+9 USB_STATUS_TXDONE2
+10 USB_STATUS_TXDONE3
+)
+(
+1 USB_GOT_REPORT_REQ
+2 USB_CONNECTED
+3 USB_SLEEP
+4 USB_RESUME
+5 USB_SETIDLE_1
+)
+(
+0x10 USB_EP1_KB
+0x20 USB_EP2_MS
+0x21 USB_EP2_MULTIKEY
+0x22 USB_EP2_SYSTEMKEY
+0x23 USB_EP2_BIT_CONSUMER
+0x24 USB_EP2_N_KEY_ROLLOVER
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+(
+0x01ba PC_GET_REPORT
+0x02ba PC_SET_REPORT
+0x0200 PC_SET_REPORT_bValue
+0x0000 PC_SET_REPORT_wIndex
+0x0001 PC_SET_REPORT_bLength
+0xba PC_REPORT_ID
+
+0x01 PC_GET_DATA
+0x00 PC_GET_NONDATA
+)
+(
+//--------------------------------------------------
+// Define device states
+0x00 DEV_ATTACHED	// Device is in Attached State
+0x01 DEV_POWERED	// Device is in Powered State
+0x02 DEV_DEFAULT		// Device is in Default State
+0x03 DEV_ADDRESS	// Device is in Addressed State
+0x04 DEV_CONFIGURED	// Device is in Configured State
+0x05 DEV_SUSPENDED	// Device is in Suspended State
+)
+(
+// Define wIndex bitmaps
+0x81 IN_EP1                    // Index values used by Set and Clear
+0x01 OUT_EP1                   // commands for Endpoint_Halt
+0x82 IN_EP2              
+0x02 OUT_EP2             
+0x83 IN_EP3              
+0x03 OUT_EP3             
+)
+(
+0 EP0_STALL
+1 EP1_IN_STALL
+2 EP1_OUT_STALL
+3 EP2_IN_STALL
+4 EP2_OUT_STALL
+5 EP3_IN_STALL
+6 EP3_OUT_STALL
+)
+(
+// Define wValue bitmaps for Standard Feature Selectors
+0x00 ENDPOINT_HALT             // Endpoint_Halt feature selector
+0x01 DEVICE_REMOTE_WAKEUP      // Remote wakeup feature(not used)
+0x00 BOOT_PROTOCOL
+0x01 REPORT_PROTOCOL
+0x01 USB_MAX_NUM_CFG
+)
+(
+640 TIMER_NAK_DELAY
+5000 TIMER_WAKEUP_DELAY
+)
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+memalloc(
+ 1 mem_le_adv_transmit
+1 mem_le_adv_waitcnt
+1 mem_le_adv_rcv
+1 mem_le_req_rcv
+1 mem_le_scanrsp_rcv
+1 mem_le_conn_rcv
+
+1 mem_current_context
+1 mem_le_ch_mapped
+1 mem_last_freq
+1 mem_rssi
+2 mem_context_ptr
+2 mem_rx_window
+
+
+/* lpo related */
+1 mem_lpm_adjust
+6 mem_sync_clke
+1 mem_lpm_current_mult
+12 mem_gpio_wakeup_cfg
+
+
+4 mem_clkn_bt
+4 mem_clke_bt
+4 mem_dpll_clkn
+
+2 mem_slot_offset
+
+
+1 mem_loadcode_times
+1 mem_select_list_item
+0 mem_temp_reconn_record
+1 mem_record_bt_mode
+2 mem_list_item_ptr
+
+1 mem_rssi_hex
+
+
+2 mem_param_tx_setup
+2 mem_param_rf_setup
+2 mem_param_conn_access
+2 mem_param_clke_cal
+2 mem_param_pll_setup
+2 mem_param_rx_setup
+2 mem_param_dpll_start_delay
+2 mem_param_rt_rthalfslot
+2 mem_param_clke_cal_le_1m
+2 mem_param_clke_cal_le_2m
+2 mem_param_clke_cal_le_coded
+
+)
+memalloc(
+260 mem_le_rxbuf
+
+/* security temp */
+4 mem_le_mic
+4 mem_le_peer_mic
+//8 mem_le_skdm
+//8 mem_le_skds
+16 mem_le_mrand
+
+
+/* ========= le context =========== */
+1 mem_le_state
+1 mem_le_mode
+2 mem_le_tsniff
+4 mem_le_anchor
+6 mem_le_clk_offset
+2 mem_le_receive_window
+6 mem_le_plap
+1 mem_le_conn_handle
+1 mem_le_arq
+1 mem_le_ch
+1 mem_le_hop
+2 mem_le_event_count
+4 mem_le_supervision_timer
+2 mem_le_instant
+1 mem_le_channels
+1 mem_le_op
+
+	/* these 3 should NOT be seperated */
+4 mem_le_access
+3 mem_le_crcinit
+1 mem_le_window_size
+
+	/* these 3 should NOT be seperated */
+2 mem_le_slave_latency
+2 mem_le_superto
+5 mem_le_channel_map
+
+
+1 mem_le_rx_phy
+1 mem_le_tx_phy
+
+9 mem_le_update_new_param
+
+16 mem_le_sk
+
+1 mem_le_peer_sca
+1 mem_le_err_code
+1 mem_le_ll_pairing_fail_reason
+
+/* ========= le context ending =========== */
+
+
+)
+memalloc(
+
+/* load code */
+1 mem_ucode_status
+1 mem_spid_tbuf				/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0 mem_iicd_tbuf				/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+1 mem_addr_hi
+1 mem_addr_mi
+1 mem_addr_lo
+1 mem_iicd_addr
+4 mem_spid_rbuf
+2 mem_ucode_buf
+2 mem_ucode_len
+2 mem_sched_addr
+16 mem_ucode_keybuf
+
+32 mem_otp_temp
+
+1 mem_app_evt_timer_count
+)
+memalloc (
+16 mem_input_store
+
+2 mem_ec_loopc
+1 mem_aes_cmac_data_length
+
+96 mem_dat
+
+/* ecc calculation */
+32 mem_ax_256 //32 bytes
+32 mem_ay_256 // 32 bytes
+32 mem_az_256 // 32 bytes
+32 mem_bx_256 // 32 bytes
+32 mem_by_256 // 31 bytes
+
+0 mem_bz_256  //32 bytes
+0 mem_tmp1
+24 memahbak
+8 mem_tmp5
+32 mem_cx_256  //32 bytes
+31 mem_cy_256  // 32 bytes
+1 mem_cy5_256 // 1 byte
+32 mem_cz_256 // 32 bytes
+32 mem_k_256 //32 bytes
+32  mem_tmp1_256 //32 bytes
+
+32 mem_tmp5_256
+32  mem_tmp2_256
+0 mem_tmp3_256
+32 mem_t1_256
+0 mem_tmp0_256
+32 mem_t0_256
+32 mem_t2_256
+32 mem_t3_256
+32 mem_t7_256
+
+24 mem_p
+24 mem_a
+24 mem_b
+24 mem_gx
+24 mem_gy
+32 memh0
+
+32 mem_p_256		
+32 mem_a_256
+32 mem_gx_256
+32 mem_gy_256
+16 mem_le_slat
+
+)
+memalloc(
+0 mem_sp_state_start
+1 mem_sp_dhkey_invalid
+4 mem_gkey
+0 mem_sp_state_end
+
+32 mem_le_pubkey_remote_x_256
+32 mem_le_pubkey_remote_y_256
+32 mem_le_dhkey_256
+
+16 mem_sp_confirm_remote
+)
+memalloc(
+1 mem_ipc_skip_continue_proc
+) 
+memalloc(
+
+1 mem_fifo_temp
+
+8 mem_pdatatemp
+8 mem_temp //8 bytes
+4 mem_timeup // 4 bytes
+4 mem_rega //4 bytes
+4 mem_regb //4 bytes
+3 mem_regc //3 bytes
+2 mem_contr //2 bytes
+2 mem_contw //2 bytes
+2 mem_contus
+2 mem_contue
+2 mem_contu
+2 mem_queue
+2 mem_loopcnt
+
+4 mem_saved_gpio_in
+
+0 mem_module_rx_error_data_buffer
+0 mem_le_adv_channel_map_temp
+0 mem_le_data_len_temp	//1byte
+0 mem_event_cmd_response_content	//2byte
+0 mem_le_prand		//16byte
+0 mem_AES_CMAC_k	 //16 bytes
+0 mem_regext_index 	//1 bytes
+1 mem_temp_block0
+0 mem_le_data_temp	//15bytes
+15 mem_temp_block1
+0 mem_le_tx_buf_temp //48byte
+0 mem_le_aes_128	//16byte
+0 mem_regext   //64 bytes
+0 mem_AES_CMAC_k1  //16 bytes
+16 mem_temp_block2
+0 mem_AES_CMAC_k2  //16 bytes
+16 mem_temp_block3
+0 mem_AES_CMAC_temp  // 16 bytes
+16 mem_temp_block4
+0 mem_AES_CMAC_M_last // 16 bytes
+1 mem_module_uart_cmd
+1 mem_module_uart_opcode
+1 mem_module_uart_len
+1 mem_module_temp_nl_discard_packet
+12 mem_temp_block5
+0 mem_le_mackey //16 bytes
+0 mem_app_receive_temp
+2 mem_key_value_temp
+2 mem_key_value
+1 mem_key_value_temp1
+1 mem_key_value_temp2
+1 mem_key_value_temp3
+1 mem_key_value_temp4
+1 mem_key_value_temp5
+1 mem_key_value_temp6
+6 mem_temp_block6
+
+3 mem_scale_ratio
+3 mem_xcnt
+2 mem_scale_ratio_temp
+)
+memalloc test (
+/* test related */
+2 mem_le_test_sync
+2 mem_le_test_pcnt
+2 mem_tst_pktcnt_crc
+2 mem_tst_pktcnt_dmh
+3 mem_tmp_buffer_head
+80 mem_tmp_buffer
+
+)
+memalloc usb_dongle(
+256 mem_dg_rssi_noise_buffer
+256 mem_dg_rssi_noise_dg_buffer
+256 mem_dg_rssi_noise_ms_buffer
+256 mem_dg_rssi_noise_kb_buffer
+
+)
+memalloc module(
+	//ble
+	2 mem_module_le_rx_data_len
+	2 mem_module_le_rx_data_address
+	2 mem_module_le_rx_data_handle
+
+ifdef COMPILE_WECHAT
+	0 mem_wechat_tx_buffer
+	1 mem_wechat_tx_bMagicNumber
+	1 mem_wechat_tx_bVer
+	2 mem_wechat_tx_nLength
+	2 mem_wechat_tx_nCmdId
+	2 mem_wechat_tx_nSeq1
+	255 mem_wechat_tx_payload
+
+	0 mem_wechat_rx_buffer
+	1 mem_wechat_rx_bMagicNumber
+	1 mem_wechat_rx_bVer
+	2 mem_wechat_rx_nLength
+	2 mem_wechat_rx_nCmdId
+	2 mem_wechat_rx_nSeq
+	255 mem_wechat_rx_payload
+
+	255 mem_module_wechat_local_data_buffer
+
+endif
+)
+memalloc mouse(
+2 mem_init_cnt
+2 mem_data_pre
+2 mem_data_current
+3 mem_data_sum
+2 mem_data_value
+)
+memalloc rec(
+
+0 mem_malloc_rec_start
+
+//ota
+2 mem_rec_queue_ota_sptr
+2 mem_rec_queue_ota_eptr
+2 mem_rec_queue_ota_rptr
+2 mem_rec_queue_ota_wptr
+0 mem_rec_queue_ota_buf	//1280
+0 mem_rec_voice_raw_start
+799 mem_rec_voice_raw
+1 mem_rec_voice_raw_end
+
+//audio
+1 mem_rec_voice_queue_count
+20 mem_rec_queue_buf
+100 mem_rec_adpcm
+
+//nec
+255 mem_rec_nec_rx_start
+1 mem_rec_nec_rx_end
+255 mem_rec_nec_rx_store_start
+1 mem_rec_nec_rx_store_end
+
+4 mem_rec_ota_flash_buf_head
+0 mem_rec_ota_flash_buf	//300
+
+4 mem_rec_nec_flash_write_head
+0 mem_rec_nec_rx_info
+1 mem_rec_nec_rx_len
+2 mem_rec_nec_rx_perid_freq
+255 mem_rec_nec_rx_data
+1 mem_rec_nec_rx_analysis_end
+1 mem_rec_nec_rx_count
+
+1 mem_rec_nec_timer
+1 mem_rec_nec_timeout
+2 mem_rec_nec_usercode
+1 mem_rec_nec_datacode
+
+1 mem_rec_nec_learn_key_num
+1 mem_rec_nec_learn_key_state
+1 mem_rec_nec_learn_enable_flag
+4 mem_rec_nec_learn_timeout
+1 mem_rec_nec_learn_state
+
+20 mem_rec_period_cal
+2 mem_rec_period_cal_ptr
+1 mem_rec_period_cal_count
+20 mem_rec_nec_period_array
+
+2 mem_rec_nec_store_sptr
+2 mem_rec_nec_store_eptr
+2 mem_rec_nec_store_wptr
+
+1 mem_rec_nec_receive_data0
+1 mem_rec_nec_receive_data1
+1 mem_rec_nec_receive_data2
+3 mem_rec_nec_receive_data
+1 mem_rec_nec_data
+
+1 mem_rec_nec_period
+1 mem_rec_nec_duty
+1 mem_rec_nec_freq
+2 mem_rec_nec_carry_time
+
+4 mem_rec_nec_learn_stime
+4 mem_rec_nec_learn_ntime
+4 mem_rec_nec_learn_outtime
+1 mem_rec_nec_learn_succ
+2 mem_rec_nec_learn_succ_ptr
+
+1 mem_rec_nec_learn_send_flag
+1 mem_rec_nec_led_state
+1 mem_rec_nec_led_blink_count
+
+1 mem_malloc_rec_end
+)
+memalloc hci_boot(
+2 mem_hci_opcode_ocf
+1 mem_hci_opcode_ogf
+
+//event head
+1 mem_hci_event_head_type
+1 mem_hci_event_head_event_code
+1 mem_hci_event_para_total_length
+
+//command complete
+1 mem_hci_command_complete_num_hci_command_packet
+0 mem_hci_command_complete_command_opcode
+2 mem_hci_opcode
+0 mem_hci_command_complete_return_parameter
+1 mem_hci_command_complete_return_parameter_status
+0 mem_hci_command_complete_return_parameter_chip_id
+
+)
+memalloc usb(
+2 mem_usb_status
+1 mem_usb_fifo_empty
+2 mem_usb_read_len
+65 mem_usb_txbuf
+10 mem_usb_txbuf1
+10 mem_usb_txbuf2
+64 mem_usb_rxbuf
+1 mem_usb_rxbuf_end
+2 mem_bufptr
+1 mem_remain
+2 mem_hidreportdesc_kb
+2 mem_hidreportdesc_m
+19 mem_devicedesc
+60 mem_confdesc
+5 mem_string0
+30 mem_string1
+30 mem_string2
+30 mem_string3
+2 mem_cb_usb_config
+
+1 mem_usb_tx_interval
+9 mem_usb_vid_pid
+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
+
+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_set_report_data
+64 mem_usb0_get_report_data
+2 mem_usb_setup_bValue_temp
+1 mem_usb0_get_set_report
+1 mem_usb0_data_ready_report
+1 mem_usb_tx_win_enable
+1 mem_usb_tx_mac_enable
+1 mem_usb_idle_flag
+1 mem_usb_idle_rate
+1 mem_usb_get_protocol_flag
+1 mem_usb_set_protocol_status
+1 mem_usb_set_protocol_value
+1 mem_usb_state
+1 mem_usb_remote_wakeup
+1 mem_usb_clear_remote_wakeup
+1 mem_sdsystem_wakeup_flag
+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_usb_ep1_data
+1 mem_usb_ep2_data
+1 mem_usb_tx_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_clear_halt
+16 mem_usb_mouse_data
+16 mem_usb_kb_data
+16 mem_usb_kb_n_key_rollvoer_data
+8 mem_usb_kb_multikey
+8 mem_usb_kb_system
+2 mem_usb_test_cnt
+10 mem_usb_test_kb
+0 mem_usb_clear_mem_end
+64 mem_usb_ccid_buf
+)
+amemalloc mem_le_update_new_param(
+//update connection parameter
+	0 mem_le_new_param
+	1 mem_le_new_transmitwindowsize
+	2 mem_le_new_transmitwindowoffset
+	2 mem_le_new_conninterval
+	2 mem_le_new_connslavelatency
+	2 mem_le_new_connsupervisiontimeout
+)
+amemalloc mem_le_update_new_param(
+//update map parameter
+	5 mem_le_new_map
+)
+amemalloc mem_le_update_new_param(
+//update phy parameter
+	1 mem_le_new_m2s_phy
+	1 mem_le_new_s2m_phy
+)
+amemalloc mem_le_rxbuf(
+//data channel PDU
+	1 mem_le_rxbuf_data_header
+	1 mem_le_rxbuf_data_length
+	255 mem_le_rxbuf_data_payload
+)
+amemalloc mem_le_rxbuf(
+//data channel LL control PDU
+	1 mem_le_rxbuf_data_ll_header
+	1 mem_le_rxbuf_data_ll_length
+	1 mem_le_rxbuf_data_ll_opcode
+	26 mem_le_rxbuf_data_ll_control_data
+)
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+	1 mem_le_rxbuf_adv_header
+	1 mem_le_rxbuf_adv_length
+	255 mem_le_rxbuf_adv_payload
+)
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+//Scan Req
+	1 mem_le_rxbuf_adv_scan_req_header
+	1 mem_le_rxbuf_adv_scan_req_length
+	6 mem_le_rxbuf_adv_scan_req_scan_address
+	6 mem_le_rxbuf_adv_scan_req_adv_address
+)
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+//Connect IND
+	1 mem_le_rxbuf_adv_connect_ind_header
+	1 mem_le_rxbuf_adv_connect_ind_length
+	6 mem_le_rxbuf_adv_connect_ind_init_address
+	6 mem_le_rxbuf_adv_connect_ind_adv_address
+	4 mem_le_rxbuf_adv_connect_ind_access_address
+	3 mem_le_rxbuf_adv_connect_ind_crc_init
+	1 mem_le_rxbuf_adv_connect_ind_win_size
+	2 mem_le_rxbuf_adv_connect_ind_win_offset
+	2 mem_le_rxbuf_adv_connect_ind_interval
+	2 mem_le_rxbuf_adv_connect_ind_latency
+	2 mem_le_rxbuf_adv_connect_ind_timeout
+	5 mem_le_rxbuf_adv_connect_ind_channel_map
+	1 mem_le_rxbuf_adv_connect_ind_hop_and_sca
+)
+amemalloc mem_temp_block2(
+	2 mem_le_search_handle_start
+	2 mem_le_search_handle_end
+	0 mem_le_att_offset
+	1 mem_le_search_att_type_length
+	16 mem_le_search_att_type
+
+	1 mem_le_curr_att_len
+
+	2 mem_le_cur_attlist_start_ptr
+	2 mem_le_cur_handle_start
+	2 mem_le_cur_handle_end
+	1 mem_le_cur_uuid_length
+	16 mem_le_cur_uuid
+	2 mem_le_cur_handle
+)
+amemalloc mem_le_rxbuf(
+//data channel ATT start PDU
+	1 mem_le_rxbuf_data_att_header
+	1 mem_le_rxbuf_data_att_length
+	2 mem_le_rxbuf_data_att_l2cap_length
+	2 mem_le_rxbuf_data_att_cid
+	1 mem_le_rxbuf_data_att_opcode
+	250 mem_le_rxbuf_data_att_payload
+)
+amemalloc mem_le_rxbuf(
+//data channel ATT continue PDU
+	1 mem_le_rxbuf_data_continue_header
+	1 mem_le_rxbuf_data_continue_length
+	255 mem_le_rxbuf_data_continue_payload
+)
+amemalloc mem_le_rxbuf(
+//data channel ATT write request PDU
+	1 mem_le_rxbuf_data_att_write_header
+	1 mem_le_rxbuf_data_att_write_length
+	2 mem_le_rxbuf_data_att_write_l2cap_length
+	2 mem_le_rxbuf_data_att_write_cid
+	1 mem_le_rxbuf_data_att_write_opcode
+	2 mem_le_rxbuf_data_att_write_handle
+	248 mem_le_rxbuf_data_att_write_payload
+)
+amemalloc mem_le_rxbuf(
+//data channel ATT prepare write request PDU
+	1 mem_le_rxbuf_data_prepare_att_write_header
+	1 mem_le_rxbuf_data_prepare_att_write_length
+	2 mem_le_rxbuf_data_prepare_att_write_l2cap_length
+	2 mem_le_rxbuf_data_prepare_att_write_cid
+	1 mem_le_rxbuf_data_prepare_att_write_opcode
+	2 mem_le_rxbuf_data_prepare_att_write_handle
+	2 mem_le_rxbuf_data_prepare_att_write_offset
+	246 mem_le_rxbuf_data_prepare_att_write_payload
+)
+amemalloc mem_otp_temp(
+	8 mem_otp_adc
+	1 mem_otp_adc_ratio
+	7 mem_otp_coordinate
+	1 mem_otp_core_ldo
+	1 mem_otp_verf_bg
+	1 mem_otp_charge_pump
+	1 mem_otp_dpll_ibais
+	8 mem_otp_temp1
+	1 mem_otp_hv_sel
+	1 mem_otp_ldo_vsel
+	1 mem_otp_load_delay
+	1 mem_otp_load_check_sum
+)
+xmemalloc(
+/* patch enable 0x4000-0x403f  */
+
+1 mem_patch00
+1 mem_patch01
+1 mem_patch02
+1 mem_patch03
+1 mem_patch04
+1 mem_patch05
+1 mem_patch06
+1 mem_patch07
+1 mem_patch08
+1 mem_patch09
+1 mem_patch0a
+1 mem_patch0b
+1 mem_patch0c
+1 mem_patch0d
+1 mem_patch0e
+1 mem_patch0f
+1 mem_patch10
+1 mem_patch11
+1 mem_patch12
+1 mem_patch13
+1 mem_patch14
+1 mem_patch15
+1 mem_patch16
+1 mem_patch17
+1 mem_patch18
+1 mem_patch19
+1 mem_patch1a
+1 mem_patch1b
+1 mem_patch1c
+1 mem_patch1d
+1 mem_patch1e
+1 mem_patch1f
+1 mem_patch20
+1 mem_patch21
+1 mem_patch22
+1 mem_patch23
+1 mem_patch24
+1 mem_patch25
+1 mem_patch26
+1 mem_patch27
+1 mem_patch28
+1 mem_patch29
+1 mem_patch2a
+1 mem_patch2b
+1 mem_patch2c
+1 mem_patch2d
+1 mem_patch2e
+1 mem_patch2f
+1 mem_patch30
+1 mem_patch31
+1 mem_patch32
+1 mem_patch33
+1 mem_patch34
+1 mem_patch35
+1 mem_patch36
+1 mem_patch37
+1 mem_patch38
+1 mem_patch39
+1 mem_patch3a
+1 mem_patch3b
+1 mem_patch3c
+1 mem_patch3d
+1 mem_patch3e
+1 mem_patch3f
+
+	/* 3 device contexts  */
+83 mem_context
+1 mem_current_amaddr
+1 mem_lpm_mode
+4 mem_last_clkn
+
+	/* parameters */
+1 mem_fcomp_div
+2 mem_rx_window_sniff
+2 mem_rf_init_ptr
+
+
+1 mem_rf_rccal
+1 mem_handle_num
+
+
+	/* lpm related */
+2 mem_chip_functions
+2 mem_lpm_wake_lock
+2 mem_lpm_interval
+1 mem_lpm_overhead
+1 mem_lpm_hibernate_switch
+1 mem_sniff_unint_lost
+4 mem_sleep_counter   
+4 mem_sleep_counter_all
+6 mem_sleep_clkn
+3 mem_sniff_rcv
+3 mem_sniff_lost
+3 mem_clks_per_lpo
+
+1 mem_lpm_mult
+1 mem_lpm_mult_timeout
+1 mem_lpm_mult_cnt
+
+1 mem_lpm_xtalcnt
+1 mem_lpm_buckcnt
+1 mem_lpm_ldocnt
+1 mem_lpm_isogate
+1 mem_lpm_isogate_stage2
+1 mem_lpm_isogate_final
+1 mem_lpm_ldo_sel
+1 mem_lpm_sysctl
+1 mem_lpm_hv_sel
+
+24 mem_saved_gpio	 
+3 mem_saved_gsel
+8 mem_saved_mark
+1 mem_saved_spidctrl
+2 mem_patch_ptr
+2 mem_patch_len
+
+32 mem_timers
+
+
+/* HCI */
+1 mem_hci_cmd
+1 mem_hci_conn_handle
+3 mem_hci_plap
+1 mem_hci_puap
+2 mem_hci_pnap
+
+
+1 mem_xtal_c_sel
+24 mem_ghpc_table
+12 mem_aac_res_table
+1 mem_tx_power
+1 mem_modem_rssi
+1 mem_gain_fix
+3 mem_gain_table
+1 mem_gain_second_agc_en
+1 mem_system_clk
+
+ifdef DEBUG_RF_INIT
+20 mem_rf_init_data
+endif
+1 mem_otp_charge_pump_x
+1 mem_otp_dpll_ibais_x
+
+1 mem_xtal_freq
+)
+xmemalloc(
+1 mem_version
+2 mem_company_id
+2 mem_sub_version
+
+2 mem_le_dsniff
+2 mem_le_conn_interval
+1 mem_le_tx_ifs_defference
+1 mem_le_tx2m_delay
+
+1 mem_le_txheader
+1 mem_le_txlen
+256 mem_le_txpayload
+
+//modified name
+1 mem_le_name_len
+30 mem_le_name
+
+
+/* smp related */
+
+16 mem_le_ltk
+1 mem_ltk_exists
+16 mem_le_rconfirm
+16 mem_le_srand
+1 mem_le_iat
+1 mem_le_rat
+1 mem_le_preq
+1 mem_le_preq_iocap
+1 mem_le_preq_oob
+1 mem_le_preq_auth
+1 mem_le_preq_max_keysize
+1 mem_le_preq_init_key_distribution
+1 mem_le_preq_resp_key_distribution
+1 mem_le_pres
+1 mem_le_pres_iocap
+1 mem_le_pres_oob
+1 mem_le_pres_auth
+1 mem_le_pres_max_keysize
+1 mem_le_pres_init_key_distribution
+1 mem_le_pres_resp_key_distribution
+
+
+
+//START of LE conn parameter structure
+0 mem_le_conn_param
+1 mem_le_conn_peer_addr_type
+6 mem_le_conn_peer_addr
+1 mem_le_conn_own_addr_type
+2 mem_le_interval_min
+2 mem_le_interval_max
+2 mem_le_latency
+2 mem_le_timeout
+//START of LE conn parameter structure
+
+
+3 mem_le_lap
+1 mem_le_uap
+2 mem_le_nap
+
+
+2 mem_le_local_mtu
+2 mem_le_remote_mtu
+
+8 mem_le_skdm
+8 mem_le_skds
+
+2 mem_le_init_superto
+2 mem_ui_le_uuid_table
+
+1 mem_le_secure_connect_flag
+1 mem_le_secure_connect_state
+1 mem_le_sc_confirm_gkey_flag
+
+
+1 mem_le_pairing_state
+1 mem_le_enc_state
+1 mem_le_pairing_mode
+4 mem_le_tk
+2 mem_le_ediv
+8 mem_le_rand
+16 mem_le_irk
+
+//LE attribute list
+4 mem_le_transmit_window
+
+//ble General configuration 
+1 mem_le_configuration
+16 mem_le_fixed_ltk
+2 mem_le_pairing_handle
+
+
+1 mem_le_packet_llid
+
+//for continue
+2 mem_le_l2cap_size
+2 mem_le_packet_len_recved
+2 mem_le_payload_ptr
+
+/* test */
+1 mem_le_testtype
+1 mem_cmd_le_create_conn
+
+//ble gatt signaling
+1 mem_le_signaling_identifier
+2 mem_le_l2cap_signaling_conn_param_update_rsp_result
+
+1 mem_le_md_count
+2 mem_ble_l2cap_tx_buff0_ptr
+2 mem_ble_l2cap_tx_buff_size_ptr
+)
+xmemalloc(
+// parameters
+1 mem_le_scan_enable
+2 mem_le_scan_interval
+2 mem_le_scan_window
+
+
+1 mem_le_adv_data_len
+31 mem_le_adv_data
+1 mem_le_scan_data_len
+31 mem_le_scan_data
+
+//START of LE adv parameter structure
+1 mem_le_adv_enable
+0 mem_le_adv_param
+2 mem_le_adv_interval
+1 mem_le_adv_type
+1 mem_le_adv_own_addr_type
+6 mem_le_adv_direct_addr
+1 mem_le_adv_channel_map
+//END of LE adv parameter structure
+
+//START of LE scan parameter structure
+0 mem_le_scan_params
+1 mem_le_scan_type
+1 mem_le_scan_own_addr_type
+//END of LE scan parameter structure
+)
+xmemalloc(
+	1 mem_le_l2cap_att_states
+
+
+	/* should be together */
+	1 mem_le_att_opcode
+	2 mem_le_att_handle
+	1 mem_le_search_res
+
+	2 mem_le_notify_handle
+	1 mem_le_search_uuid_length
+	16 mem_le_search_uuid
+)
+xmemalloc(
+8 mem_le_local_feature
+1 mem_le_tx_phys
+1 mem_le_rx_phys
+
+2 mem_remote_rx_max_octets
+2 mem_remote_rx_max_time
+2 mem_remote_tx_max_octets
+2 mem_remote_tx_max_time
+2 mem_local_rx_max_octets
+2 mem_local_rx_max_time
+2 mem_local_tx_max_octets
+2 mem_local_tx_max_time
+
+)
+xmemalloc(
+2 mem_ucode_ptr
+1 mem_ucode_flag
+1 mem_device_option
+1 mem_peripheral_lock_flag
+0 mem_bistfix_val
+2 mem_bistfix_addr_sched
+2 mem_bistfix_addr_x
+2 mem_bistfix_addr_patch
+1 mem_bistfix_val_xram
+4 mem_bistfix_val_patchram
+
+/*App Callback Functons*/
+2 mem_cb_check_wakelock
+2 mem_cb_before_hibernate
+2 mem_cb_before_lpm
+2 mem_cb_le_process
+2 mem_cb_idle_process
+2 mem_cb_bb_event_process
+2 mem_cb_att_write
+2 mem_cb_ble_transmit
+2 mem_cb_event_timer
+2 mem_cb_bt_set_mult
+2 mem_cb_spi_flash_write_complate
+2 mem_cb_before_lpm_sleep
+
+2 mem_eeprom_base
+
+//lpm mode
+1 mem_wake_up_delay_timer
+
+1 mem_app_connection_options
+
+//
+2 mem_app_disconn_reason
+2 mem_app_disconn_reason_flag
+1 mem_xrecord_mode
+
+1 mem_eeprom_block_size
+1 mem_spi_init_clk
+1 mem_spi_init_delay_time
+1 mem_spi_ncs_gpio
+
+2 mem_nv_data_ptr
+1 mem_nv_data_number
+
+2 mem_queue_ptr
+
+
+//adc
+
+2 mem_reference_inter1p8v_2v_adc_io_data
+2 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+2 mem_reference_inter1p8v_1v_adc_io_data
+2 mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+
+0 mem_adc_reference3v_ft_data	
+2 mem_adc_reference3v_gpio1v_ft_data	
+2 mem_adc_reference3v_gpio2v_ft_data	
+2 mem_adc_reference3v_vdcdc3p6v_ft_data	
+2 mem_adc_reference3v_vdcdc4p6v_ft_data	
+2 mem_adc_reference3v_inter1v_ft_data
+2 mem_adc_reference3v_inter1v_now_data	
+1 mem_adc_reference_mode
+
+2 mem_reference_voltage
+1 mem_adc_config_flag
+1 mem_adc_channel
+1 mem_adc_clkdiv
+2 mem_adc_current_value
+1 mem_adc_power_flag	//bit0:low power falg ; bit1:no power flag
+2 mem_adc_saddr_ptr
+2 mem_adc_eaddr_ptr
+1 mem_adc_dma_enable
+1 mem_adc_cal_c0
+1 mem_adc_cal_c1
+1 mem_adc_cal_c2
+1 mem_adc_cal_c3
+1 mem_adc_cal_c4
+1 mem_adc_cal_c5
+1 mem_adc_cal_c6
+1 mem_adc_cal_c7
+
+3 mem_spi_write_addr
+2 mem_spi_write_ptr
+2 mem_spi_write_len
+1 mem_spi_write_flash_sm
+
+
+1 mem_spi_cs_gpio
+1 mem_spi_si_gpio
+1 mem_spi_so_gpio
+1 mem_spi_sclk_gpio
+1 mem_spi_wp_gpio
+1 mem_spi_hold_gpio
+
+
+1 mem_eeprom_wp_gpio
+1 mem_eeprom_scl_gpio
+1 mem_eeprom_sda_gpio
+2 mem_kscan_ptr
+0 mem_key_num_ptr
+2 mem_keyscan_ptr
+2 mem_key_value_retention
+2 mem_power_param_ptr
+
+1 mem_seqi
+1 mem_set_cdb_on
+1 mem_syn_cal_ctrl
+
+1 mem_nec_decode_error_value
+
+ifdef AC_50HZ
+1 mem_ac_detect_gpio
+0 mem_ac_detect_control
+1 mem_ac_detect_div
+1 mem_ac_detect_window
+endif
+
+1 mem_wdt_always_work
+
+1 mem_power_ctrl_disable
+
+1 mem_ring_ibias_trim
+2 mem_ring_ibias_vtune_low
+2 mem_ring_ibias_vtune_high
+1 mem_ring_ibias_calc_adc_gpio
+1 mem_ring_ibias_calc_adc_channel
+)
+xmemalloc(
+
+1 mem_rf_debug_rx_gpio
+1 mem_rf_debug_tx_gpio
+)
+xmemalloc(
+0 mem_l2cap_xmem_start
+
+//*******************L2CAP malloc********************//
+1 mem_used_map
+0 mem_tx_fifo0
+1 mem_tx_fifo0_map
+2 mem_tx_fifo0_ptr
+0 mem_tx_fifo1
+1 mem_tx_fifo1_map
+2 mem_tx_fifo1_ptr
+0 mem_tx_fifo2
+1 mem_tx_fifo2_map
+2 mem_tx_fifo2_ptr
+0 mem_tx_fifo3
+1 mem_tx_fifo3_map
+2 mem_tx_fifo3_ptr
+0 mem_tx_fifo_end
+
+2 mem_l2cap_lpm_txbuf_ptr
+0 mem_l2cap_xmem_end
+
+)
+xmemalloc(
+5 mem_ccm_pcnt_tx
+5 mem_ccm_pcnt_rx
+4 mem_ccm_last_mic
+0 mem_ccm_iv
+4 mem_ccm_ivm
+4 mem_ccm_ivs
+2 mem_ccm_len
+2 mem_ccm_rx_ptr
+)
+xmemalloc(
+1 mem_sc_only_mode
+1 mem_sp_debug_mode
+1 mem_secure_connections_enable
+1 mem_sc_calc
+1 mem_sc_local_key_invalid
+
+
+32 mem_sc_private_key_256
+32 mem_sc_pubkey_local_x_256
+32 mem_sc_pubkey_local_y_256
+
+
+0 mem_sp_state_xmem
+1 mem_authentication_passkey_times
+1 mem_passkey_1bit
+0 mem_sp_state_xmem_end
+)
+xmemalloc(
+//UI Work area
+1 mem_ipc_lock_bt
+1 mem_ipc_lock_c51
+8 mem_ipc_fifo_bt2c51
+8 mem_ipc_fifo_c512bt
+
+1 mem_ui_button_timer
+1 mem_ui_button_last_state
+4 mem_ui_timer_last_btclk
+2 mem_ui_state_map
+
+1 mem_ui_button_timeout
+1 mem_ui_button_gpio
+1 mem_ui_led_init_state_set
+
+1 mem_ui_led_struct_num
+2 mem_ui_led_struct_ptr
+
+)
+xmemalloc g24(
+6 mem_24g_lap
+34 mem_24g_rxbuf
+32 mem_24g_txbuf
+36 mem_24g_txpayload
+32 mem_24g_rxpayload
+1 mem_24g_rxdata_length
+1 mem_24g_pid
+1 mem_24g_no_ack
+3 mem_24g_sta_crc
+3 mem_24g_last_crc
+1 mem_24g_sta_pid
+1 mem_24g_last_pid
+1 mem_24g_datalen
+1 mem_24g_data_type
+1 mem_24g_txlen
+2 mem_24g_rx_window
+1 mem_24g_ch
+1 mem_24g_current_ch_number
+4 mem_24g_addr
+4 mem_24g_ch_map1
+4 mem_24g_ch_map2
+4 mem_24g_ch_map3
+4 mem_24g_ch_map4
+4 mem_24g_tx_btclk
+1 mem_24g_interval
+1 mem_24g_interval_min
+1 mem_24g_interval_max
+2 mem_24g_syncword
+1 mem_24g_syncword_crc8
+1 mem_24g_get_syncword_crc8
+1 mem_24g_pair_switch
+8 mem_24g_enter_hibernate
+
+1 mem_24g_rx_phy
+1 mem_24g_tx_phy
+
+1 mem_24g_ch_map_update
+4 mem_24g_ch_update_map1
+4 mem_24g_ch_update_map2
+4 mem_24g_ch_update_map3
+4 mem_24g_ch_update_map4
+
+1 mem_24g_disable_fec1
+1 mem_24g_off_type
+)
+xmemalloc g24_tx(
+1 mem_rssi_hex_received
+
+)
+xmemalloc g24(
+4 mem_24g_pair_addr
+1 mem_24g_pair_ch
+1 mem_24g_pair_tx_power
+
+)
+xmemalloc g24_tx(
+1 mem_24g_pair_sm
+1 mem_24g_pair_no_ack
+2 mem_24g_pair_timeout_init
+2 mem_24g_pair_timeout
+2 mem_24g_pair_count
+)
+xmemalloc g24_rx(
+1 mem_24g_device1_bind_step
+1 mem_24g_device2_bind_step
+1 mem_24g_bind_device_status
+8 mem_24g_bind_payload
+1 mem_24g_device1_bind_disable
+1 mem_24g_device2_bind_disable
+
+)
+xmemalloc g24_rx(
+2 mem_cb_24g_receive_process
+2 mem_cb_24g_ackpayload
+2 mem_cb_24g_data_device1
+2 mem_cb_24g_data_device2
+34 mem_24g_rxdata_temp
+1 mem_24g_abort_packet
+4 mem_24g_hop_btclk
+1 mem_24g_hop_interval
+1 mem_24g_pair_mode
+1 mem_24g_ackpayload_enable
+1 mem_24g_hop_packet
+1 mem_24g_mode_switch
+1 mem_24g_nodata_timer_enable
+
+1 mem_24g_mode_init
+1 mem_24g_work_mode
+1 mem_24g_time_slice
+1 mem_24g_self_last_ch
+1 mem_24g_self_ch_number
+1 mem_24g_self_config_ch_once
+1 mem_24g_device1_last_ch
+1 mem_24g_device1_ch_number
+1 mem_24g_device1_config_ch_once
+1 mem_24g_device2_last_ch
+1 mem_24g_device2_ch_number
+1 mem_24g_device2_config_ch_once
+1 mem_24g_led_status
+1 mem_24g_bind_mode_continue
+
+1 mem_tx_power_temp
+
+1 mem_24g_mode_B_S_switch
+1 mem_24g_mode_B_S_switch_init
+2 mem_24g_mode_B_S_switch_cnt
+1 mem_24g_mode_B_S_switch_exit
+1 mem_24g_B_S_time_slice
+1 mem_24g_B_S_mode_switch_disable
+
+1 mem_24g_bind_device_living
+)
+xmemalloc g24_tx(
+2 mem_24g_reconn_timeout_init
+2 mem_24g_reconn_timeout
+2 mem_24g_reconn_count
+1 mem_24g_reconn_type
+1 mem_24g_fast_conn_enable
+4 mem_24g_fast_conn_addr
+4 mem_24g_receiver_addr
+1 mem_24g_fast_conn_temp_ch
+1 mem_24g_receiver_temp_ch
+1 mem_24g_device_temp_ch
+
+)
+xmemalloc g24_rx(
+4 mem_24g_transmitter_addr
+4 mem_24g_device1_addr
+4 mem_24g_device2_addr
+
+)
+xmemalloc g24(
+1 mem_rssi_buff_index
+)
+xmemalloc g24_tx(
+1 mem_rssi_signal_index
+2 mem_rssi_signal_buf_ptr
+
+)
+xmemalloc g24_rx(
+1 mem_rssi_noise_avg
+1 mem_rssi_noise_index
+
+1 mem_rssi_noise_self_avg
+1 mem_rssi_noise_device1_avg
+1 mem_rssi_noise_device2_avg
+1 mem_rssi_noise_self_index
+1 mem_rssi_noise_device1_index
+1 mem_rssi_noise_device2_index
+
+2 mem_rssi_noise_buffer_ptr
+2 mem_rssi_noise_self_buffer_ptr
+2 mem_rssi_noise_device1_buffer_ptr
+2 mem_rssi_noise_device2_buffer_ptr
+
+)
+xmemalloc g24_tx(
+2 mem_cb_24g_transmit_data
+2 mem_cb_24g_search_receiver
+2 mem_cb_24g_lpm_before
+2 mem_cb_24g_transmit_short_sleep
+2 mem_cb_24g_transmit_long_sleep
+
+1 mem_24g_conn_sm
+
+1 mem_24g_ensure
+2 mem_24g_txfail_cnt
+1 mem_24g_attempt_fail_flag
+
+1 mem_24g_retry
+1 mem_24g_abort_pac
+1 mem_24g_max_retry
+4 mem_24g_device_addr
+3 mem_24g_short_sleep_set
+8 mem_24g_long_sleep_set
+4 mem_24g_long_sleep_set1
+
+1 mem_24g_pac_index
+1 mem_24g_transmit_by_interrupt
+2 mem_24g_transmit_by_interrupt_exit_count
+2 mem_24g_transmit_by_interrupt_exit_count_init
+2 mem_24g_long_sleep_param_update_timer_init
+2 mem_24g_long_sleep_param_update_timer
+
+1 mem_24g_fast_hop_count
+2 mem_24g_retransmit
+)
+xmemalloc g24_tx(
+1 mem_rssi_avg_received
+1 mem_power_ctrl_level
+1 mem_power_ctrl_pac_succ_cnt
+1 mem_power_ctrl_pac_succ_cnt_init
+
+1 mem_rssi_dis_min_24g
+1 mem_rssi_dis_max_24g
+1 mem_rssi_hex_received_max_value
+
+1 mem_rssi_dis_min_ble
+1 mem_rssi_dis_max_ble
+)
+xmemalloc g24_rx_car_adpcm(
+	16 mem_ad_indexTable
+	356 mem_ad_stepsizeTable
+
+	4 mem_ad_state_valpred
+	4 mem_ad_state_index
+	1 mem_ad_in_numSamples
+	2 mem_ad_in_ptr
+	2 mem_ad_out_ptr
+	1 mem_ad_sign
+	1 mem_ad_delta
+	4 mem_ad_step
+	4 mem_ad_valpred
+	4 mem_ad_index
+	4 mem_ad_vpdiff
+	4 mem_ad_inputbuffer
+	1 mem_ad_bufferstep
+)
+xmemalloc g24_rx_car(
+1 mem_car_le_24g_tx_pair_mode
+2 mem_car_le_24g_ch_count
+4 mem_car_24g_addr_other
+12 mem_car_24g_tx_payload_temp
+12 mem_car_24g_rx_payload_temp
+
+1 mem_car_24g_loselink_count
+1 mem_car_ble_connted_flag
+4 mem_car_full_control_remote_lap
+2 mem_100ms_adv_control_timer
+2 mem_100ms_factory_test_control_timer
+	
+1 mem_pwm_flag	
+1 mem_period_count
+1 mem_timer_count
+1 mem_car_motor_gpio_num
+0 mem_car_motor_gpio_map
+1 mem_car_motor_left_gpio
+1 mem_car_motor_right_gpio
+1 mem_car_motor_front_gpio
+1 mem_car_motor_back_gpio
+1 mem_car_pwm_gpio
+
+
+6 mem_otp_lot_xy_temp
+1 mem_f_flag
+1 mem_b_flag
+1 mem_adv_control_start_flag  
+1 mem_stop_4w1_flag 
+1 mem_factory_control_flag
+1 mem_car_gpio_control_mode
+
+1 mem_car_le_queue_each_size
+1 mem_car_le_queue_length
+1 mem_car_le_queue_current_num
+1 mem_car_le_queue_read_ptr
+1 mem_car_le_queue_write_ptr
+80 mem_car_le_queue_ele
+11 mem_car_ble_write_data
+400 mem_car_ble_att_list
+
+60 mem_otp_sys_cfg_temp
+
+)
+xmemalloc g24_rx_dongle(
+1 mem_dg_kb_bind_flag
+8 mem_dg_kb_data_sta_data
+8 mem_dg_kb_data_last_data
+3 mem_dg_kb_multikey_sta_data
+3 mem_dg_kb_multikey_last_data
+3 mem_dg_kb_system_sta_data
+3 mem_dg_kb_system_last_data
+1 mem_dg_kb_blank_data_enable
+1 mem_dg_kb_mul_blank_data_enable
+1 mem_dg_kb_system_crtl_blank_data_enable
+1 mem_dg_ms_blank_data_enable
+
+1 mem_dg_sys_config
+9 mem_dg_usb_vid_pid
+1 mem_dg_usb_tx_interval
+32 mem_dg_usb_device_name
+1 mem_dg_kb_bind_success
+1 mem_dg_pc_sleep_flag
+
+1 mem_dg_24g_tx_power_default
+1 mem_dg_kb_bit_consumer_blank_data_enable
+4 mem_dg_kb_bit_consumer_sta_data
+4 mem_dg_kb_bit_consumer_last_data
+4 mem_dg_device_version
+)
+xmemalloc g24_tx_hid_keyboard(
+1 mem_power_on_flag
+8 mem_keyboard_flag
+
+//switch device
+1 mem_keyboard_switch_count_temp
+3 mem_keyboard_switch_device_to_g24
+3 mem_keyboard_switch_device_to_bt1
+3 mem_keyboard_switch_device_to_bt2
+3 mem_keyboard_switch_device_to_bt3
+3 mem_keyboard_switch_device_to_usb
+1 mem_keyboard_switch_device_flag
+1 mem_keyboard_switch_g24_enable
+1 mem_keyboard_switch_bt_enable
+1 mem_keyboard_switch_g24_press_timer
+1 mem_keyboard_switch_bt_press_timer
+
+
+//adc
+2 mem_keyboard_vdd_full_vol
+2 mem_keyboard_vdd_empty_vol
+2 mem_keyboard_vdd_low_vol
+1 mem_keyboard_power_type
+
+//pwm
+6 mem_rgb_pwm_conf
+1 mem_rgb_pwm_breathe_flag
+1 mem_rgb_on_color_temp
+7 mem_rgb_on_color
+1 mem_pwm_lpm_mode_flag
+2 mem_keyboard_rgb_on_timer
+4 mem_ui_check_timer_setup
+2 mem_customize_timer_setup
+1 mem_backlight_breathe_type
+
+//le
+3 mem_keyboard_le_lap_temp
+1 mem_keyboard_le_change_vid_pid_flag
+1 mem_keybaord_le_pnp_vid_source
+2 mem_keyboard_le_vid
+2 mem_keyboard_le_pid
+2 mem_keyboard_le_product_version
+2 mem_keyboard_le_hid_map
+22 mem_keyboard_blob_response_consumer_customize
+16 mem_le_search_service_uuid
+1 mem_le_connect_ios_mac_flag
+2 mem_le_search_mac_uuid
+9 mem_le_search_mac_manu_name
+2 mem_keybord_appearance
+
+//le conn param update
+1 mem_keyboard_le_send_conn_param_update
+1 mem_keyboard_le_send_conn_param_update_timer
+1 mem_le_start_auto_reco_timer
+
+//gpio
+1 mem_keyboard_pb_button_gpio
+1 mem_mcu_stb_gpio
+1 mem_mcu_clk_gpio
+1 mem_mcu_rstb_gpio
+1 mem_keyboard_num_led_gpio
+1 mem_keyboard_caps_led_gpio
+1 mem_keyboard_scroll_led_gpio
+1 mem_keyboard_power_led_gpio
+1 mem_keyboard_low_voltage_alarm_gpio
+1 mem_keyboard_24g_led_gpio
+1 mem_keyboard_bt1_led_gpio
+1 mem_keyboard_bt2_led_gpio
+1 mem_keyboard_bt3_led_gpio
+
+1 mem_keyboard_led_r_gpio
+1 mem_keyboard_led_g_gpio
+1 mem_keyboard_led_b_gpio
+
+8 mem_key_row_gpio
+21 mem_key_col_gpio
+12 mem_key_excol_gpio
+2 mem_kb_row_ptr
+2 mem_kb_col_ptr
+2 mem_kb_excol_ptr
+
+// keyscan
+21 mem_keyscan_value_current
+21 mem_keyscan_value_check
+21 mem_keyscan_value_old
+11 mem_keyscan_exmcu_value
+2 mem_keyscan_value_ptr
+2 mem_keyscan_exmcu_value_ptr
+1 mem_keyscan_value_temp
+1 mem_keyscan_col_loop_count
+2 mem_keyscan_exmcu_wait_wake_count
+
+1 mem_same_keyvalue_timerout_flag
+2 mem_same_keyvalue_timer_init
+2 mem_same_keyvalue_timer
+
+1 mem_keyboard_current_col_press_key_count
+1 mem_keyboard_all_press_key_count
+1 mem_keyboard_same_row_press_key_count
+1 mem_keyboard_ghost_flag
+1 mem_keyboard_data_change_flag
+1 mem_keyboard_keyvalue_temp
+1 mem_keyboard_press_flag_temp
+1 mem_keyboard_keyvalue_bit_loop_count
+10 mem_keyboard_keyvalue_buffer
+1 mem_keboard_n_key_rollover_send_flag
+15 mem_keyboard_n_key_rollover_data
+168 mem_keyboard_keyvalue_map
+10 mem_keyboard_tx_data
+1 mem_keyboard_data_send_flag
+
+1 mem_keyboard_fn_flag
+1 mem_keyboard_control_key_flag
+1 mem_keyboard_alt_flag
+1 mem_keyboard_shift_flag
+1 mem_keyboard_bt_button_flag
+1 mem_keyboard_pairing_type
+
+1 mem_24g_repeat_send_flag
+1 mem_keyboard_led_status_get
+1 mem_keyboard_led_status_get_timer
+1 mem_keyboard_led_status_get_timer_last
+
+0 mem_keyboard_fn_esc_f1_f12
+1 mem_keyboard_fn_first
+1 mem_keyboard_fn_esc
+1 mem_keyboard_fn_f1
+1 mem_keyboard_fn_f2
+1 mem_keyboard_fn_f3
+1 mem_keyboard_fn_f4
+1 mem_keyboard_fn_f5
+1 mem_keyboard_fn_f6
+1 mem_keyboard_fn_f7
+1 mem_keyboard_fn_f8
+1 mem_keyboard_fn_f9
+1 mem_keyboard_fn_f10
+1 mem_keyboard_fn_f11
+1 mem_keyboard_fn_f12
+1 mem_keyboard_fn_del
+
+1 mem_keyboard_fn_lock_flag
+1 mem_keyboard_fn_lock_keyvalue
+
+2 mem_keyboard_commbination_key_bt
+2 mem_keyboard_commbination_key_24g
+2 mem_keyboard_commbination_fast_conn_bt
+1 mem_keyboard_commbination_press_type
+1 mem_keyboard_commbination_key_step
+1 mem_keyboard_commbination_control_key_value
+1 mem_keyboard_commbination_standard_key_value
+1 mem_keyboard_commbination_control_key_delay_release_timer
+
+1 mem_keyboard_consumer_key_status
+1 mem_kb_computer_system
+
+//memory
+1 mem_keyboard_device_info_store_flag
+1 mem_otp_store_device_info_flag
+1 mem_otp_store_system_flag
+24 mem_otp_read_retention_memory
+2 mem_otp_read_retention_offset
+2 mem_otp_read_retention_max_size
+
+//led
+1 mem_keyboard_device_poweron_timer_init
+1 mem_keyboard_device_poweron_timer
+2 mem_keyboard_num_caps_scoll_led_on_timer
+1 mem_keyboard_mode_led_on_timer
+1 mem_keyboard_adc_low_volatage_led_timer_count
+2 mem_adc_low_volatage_led_blink_timer
+1 mem_keyboard_low_volatage_led_flag
+1 mem_keyboard_low_volatage_led_blink_count
+1 mem_keyboard_low_volatage_led_blink_new_data_enable
+1 mem_keyboard_pair_led_flag
+1 mem_keyboard_pair_led_blink_count
+
+//usb
+1 mem_usb_vdd_status_current
+1 mem_usb_vdd_status_last
+1 mem_usb_wait_updata_timer
+9 mem_keyboard_usb_vid_pid
+
+12 mem_keyscan_exmcu_value_new
+2 mem_keyboard_hid_fix_handle
+177 mem_keyboard_le_table
+
+1 mem_keyboard_delay_lpm_flag
+4 mem_keyboard_evt_btclk
+1 mem_keyboard_evt_timer_count
+1 mem_keyboard_scan_enter_lpm
+
+0 mem_keyboard_end
+)
+xmemalloc module(
+	2 mem_soft_version_num
+	1 mem_module_wake_up_gpio
+	1 mem_module_state_gpio
+	1 mem_module_connect_state_gpio
+
+	2 mem_current_packet_length
+	1 mem_module_state
+
+	1 mem_module_mcu_wake_pin
+	4 mem_module_mcu_wake_delay_us
+
+	1 mem_module_le_lpm_mult
+	1 mem_module_bluetooth_stauts_by_command
+
+	//uart
+	2 mem_module_uart_rx_buffer
+	2 mem_module_uart_rx_buffer_end
+	2 mem_module_uart_tx_buffer
+	2 mem_module_uart_tx_buffer_end
+	2 mem_module_uarta_baud_rate
+
+	//ADC
+	1 mem_module_read_vdd_flag
+	1 mem_module_read_vdd_count
+	1 mem_module_vdd_quotient
+	1 mem_module_vdd_remainder
+
+	//ble
+	1 mem_module_ble_data_uart_max_length
+
+	//flag
+	2 mem_module_flag
+
+	1 mem_module_hci_notify_len
+	2 mem_module_hci_notify_handle
+	2 mem_module_hci_nofiy_addr
+	1 mem_module_hci_notify_type
+
+	1 mem_le_conn_flag
+
+ifdef COMPILE_WECHAT
+	1 mem_module_wechat_indication_handle
+	1 mem_module_wechat_write_handle
+	2 mem_module_wechat_tx_buffer_ptr
+	2 mem_module_wechat_rx_buffer_ptr
+	2 mem_module_wechat_rx_push_data_cb
+	2 mem_module_wechat_tx_nSeq
+	2 mem_module_wechat_tx_len
+	2 mem_module_wechat_tx_address
+	2 mem_module_wechat_rx_len
+	2 mem_module_wechat_rx_address
+	1 mem_module_wechat_receive_push_data
+endif
+
+	600 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
+	0 mem_module_nv_data_end
+)
+xmemalloc g24_tx_hid_mouse(
+// Mouse Work Area
+0 mem_mouse_param_config
+1 mem_lbutton_gpio
+1 mem_mbutton_gpio
+1 mem_rbutton_gpio
+1 mem_bk_button_gpio
+1 mem_fw_button_gpio
+1 mem_dpi_button_gpio
+1 mem_mouse_sensor_sclk_gpio
+1 mem_mouse_sensor_sdio_gpio
+1 mem_select_sensor_angle_gpio
+1 mem_sensor_angle_default
+1 mem_sensor_angle_gnd
+1 mem_sensor_angle_vin
+1 mem_config_sensor_dpi	
+1 mem_whee_ta_data_gpio
+1 mem_whee_tb_data_gpio
+1 mem_matrix_public_gpio
+1 mem_config_select_device_button_gpio
+1 mem_customer_key_gpio
+1 mem_firebutton_gpio
+1 mem_dpi_another_button_gpio
+1 mem_mouse_logo_led_gpio
+1 mem_mouse_1io2led_multi_24gled
+1 mem_mouse_1io2led_multi_bt1led
+1 mem_mouse_1io2led_multi_bt2led
+1 mem_mouse_low_voltage_alarm_gpio
+1 mem_mouse_dpi_gpio
+0 mem_mouse_param_config_end
+
+1 mem_device_temp_gpio
+
+//LED
+//mediacy
+1 mem_mouse_multi_led_blink_enable
+1 mem_mouse_multi_led_type
+1 mem_mouse_multi_led_state
+1 mem_mouse_multi_led_blink_type				//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+
+//time parm
+1 mem_mouse_le_reconn_blink_limit
+1 mem_mouse_multi_led_powon_timer_init		//power on time
+1 mem_mouse_multi_led_powon_timer
+1 mem_mouse_multi_24gled_blink_timer_init	//24gled blink time
+1 mem_mouse_multi_le_discovery_blink_timer_init	//le discovery blink time
+1 mem_mouse_multi_le_reconn_blink_timer_init	//le reconn blink time
+1 mem_mouse_dpi_led_blink_timer_init		//dpi blink time
+1 mem_mouse_multi_led_blink_timer
+1 mem_mouse_low_led_blink_timer			//low blink time
+1 mem_mouse_low_led_blink_half_timer
+//blink count
+1 mem_mouse_multi_24gled_blink_count_init	//24g count
+1 mem_mouse_multi_le_reconn_blink_count_init	//le reconn count
+1 mem_mouse_multi_led_blink_count
+1 mem_mouse_multi_lowled_blink_count_init	//low count
+1 mem_mouse_multi_low_led_blink_count
+2 mem_mouse_logo_led_on_time_init
+1 mem_mouse_dpi_led_delay_count
+1 mem_mouse_dpi_led_delay_count_init
+//LED end
+
+//lost-packet compensation
+1 mem_mouse_24g_fast_hop_count_2ms
+3 mem_mouse_24g_short_sleep_set_4ms
+3 mem_mouse_24g_long_sleep_set_4ms
+3 mem_mouse_24g_short_sleep_set_8ms
+3 mem_mouse_24g_long_sleep_set_8ms
+
+4 mem_mouse_24g_tsniff
+4 mem_mouse_24g_tsniff_2ms
+4 mem_mouse_24g_tsniff_4ms
+4 mem_mouse_24g_tsniff_8ms
+3 mem_mouse_24g_short_sleep_set_init
+
+1 mem_mouse_24g_tx_count
+6 mem_mouse_24g_tx_time_last
+4 mem_mouse_24g_tx_time_last_delt
+5 mem_mouse_24g_tx_time_sum
+1 mem_mouse_24g_tx_time_sum_count
+1 mem_mouse_24g_tx_time_offset
+1 mem_mouse_24g_sleep_miss
+4 mem_mouse_24g_sleep_time_temp
+4 mem_mouse_24g_sleep_miss_temp
+
+1 mem_mouse_sleep_deal_type
+
+//sensor param
+1 mem_sensor_id1
+1 mem_sensor_id2
+
+1 mem_mouse_move_flag
+
+1 mem_mouse_asm_flag
+2 mem_mouse_x_pre
+2 mem_mouse_y_pre
+1 mem_mouse_data_xtemp
+1 mem_mouse_data_ytemp
+
+0 mem_mouse_dpi_seting
+1 mem_320x_dpi_0
+1 mem_320x_dpi_1
+1 mem_320x_dpi_2
+1 mem_320x_dpi_3
+1 mem_3212_dpi_0
+1 mem_3212_dpi_1
+1 mem_3212_dpi_2
+1 mem_3212_dpi_3
+1 mem_ka8g2_dpi_0
+1 mem_ka8g2_dpi_1
+1 mem_ka8g2_dpi_2
+1 mem_ka8g2_dpi_3
+//S210x
+0 mem_sensor_s201_dpi
+1 mem_sensor_s201_dpi_0
+1 mem_sensor_s201_dpi_1
+1 mem_sensor_s201_dpi_2
+1 mem_sensor_s201_dpi_3
+1 mem_sensor_s201_dpi_4
+
+1 mem_mouse_cpi_count
+1 mem_mouse_dpi_button_state
+1 mem_mouse_dpi_long_press_flag
+
+10 mem_sensor_3212_init
+10 mem_sensor_3204_init
+10 mem_sensor_3205_init
+26 mem_sensor_32xx_init
+34 mem_sensor_32xx_init_1
+30 mem_sensor_8650_init
+30 mem_sensor_ka8ul_init
+16 mem_sensor_8009_init
+18 mem_sensor_ka8g2_init
+12 mem_sensor_p6520_init
+12 mem_sensor_ka5857_init
+8 mem_sensor_poweron_init
+8 mem_sensor_ka8g2_poweron_init
+	
+1 mem_mouse_clear_sensor_data_flag
+1 mem_config_sensor_type
+1 mem_config_sensor_angle
+1 mem_bluetooth_125hz_cnt
+
+
+// mouse key
+10 mem_customer_key_press_init
+1 mem_mouse_lkey_press_status
+1 mem_mouse_rkey_press_status
+1 mem_mouse_mkey_press_status
+1 mem_mouse_bkkey_press_status
+1 mem_mouse_fwkey_press_status
+1 mem_mouse_dpikey_press_status
+1 mem_mouse_pbkey_press_status
+1 mem_mouse_customerkey_press_status
+1 mem_mouse_key_temp
+1 mem_mouse_key_status
+
+1 mem_mouse_matrix_key_cow_count
+1 mem_mouse_matrix_key_row_count
+1 mem_mouse_ghost_flag
+
+//fire key
+1 mem_fire_key_status
+4 mem_fire_key_delay
+1 mem_fire_key_flag
+
+//another dpi key
+1 mem_dpi_another_press_status
+1 mem_dpi_another_button_state
+1 mem_dpi_another_button_down_enable
+1 mem_mouse_key_temp_patch
+
+//le name modify
+1 mem_le_name_patch_len
+19 mem_le_name_patch
+
+//device otp data
+1 mem_device_flag_last
+1 mem_device_flag_value
+
+6 mem_mouse_le_addr1_last
+6 mem_mouse_le_addr1_temp
+6 mem_mouse_le_locall_addr1_last
+6 mem_mouse_le_locall_addr1_temp
+
+6 mem_mouse_le_addr2_last
+6 mem_mouse_le_addr2_temp
+6 mem_mouse_le_locall_addr2_last
+6 mem_mouse_le_locall_addr2_temp
+
+1 mem_mouse_dpi_last
+1 mem_mouse_dpi_temp
+1 mem_mouse_otp_dpi_value
+
+4 mem_mouse_24g_addr_last
+4 mem_mouse_24g_addr_temp
+
+2 mem_random_addr_increase_count_last
+2 mem_random_addr_increase_count_temp
+
+//otp store info offset
+2 mem_otp_offset_le_addr2
+2 mem_otp_offset_le_addr2_end
+
+2 mem_otp_offset_le_locall_addr2
+2 mem_otp_offset_le_locall_addr2_end
+
+2 mem_otp_offset_dpi
+2 mem_otp_offset_dpi_end
+
+2 mem_otp_offset_device_flag
+2 mem_otp_offset_device_flag_end
+
+2 mem_otp_offset_24g_addr
+2 mem_otp_offset_24g_addr_end
+
+2 mem_otp_offset_le_addr1
+2 mem_otp_offset_le_addr1_end
+
+2 mem_otp_offset_le_locall_addr1
+2 mem_otp_offset_le_locall_addr1_end
+
+2 mem_otp_offset_le_addr_increase_count
+2 mem_otp_offset_le_addr_increase_count_end
+
+2 mem_otp_offset_app_initflag
+
+//usb
+1 mem_usb_tx_interval_retention
+9 mem_usb_vid_pid_retention
+30 mem_usb_device_name_retention
+
+// commbation key
+1 mem_mouse_commbination_key_bt
+1 mem_mouse_commbination_key_24g
+1 mem_mouse_commbination_key_dpi
+1 mem_mouse_commbination_key_select_device
+1 mem_mouse_commbination_dpi_timer
+1 mem_mouse_commbination_select_device_timer
+1 mem_mouse_commbination_key_count
+1 mem_mouse_pair_flag
+//patch area
+)
+xmemalloc rec(
+0 mem_xmalloc_rec_start
+1215 mem_rec_le_att_list
+
+//led
+0 mem_rec_led_style
+1 mem_rec_led_style_type
+1 mem_rec_led_style_blink_count
+1 mem_rec_led_style_gpio
+2 mem_rec_led_style_on_time
+2 mem_rec_led_style_off_time
+2 mem_rec_led_style_on_callback
+2 mem_rec_led_style_off_callback
+
+//led2 
+0 mem_rec_led2_style
+1 mem_rec_led2_style_type
+1 mem_rec_led2_style_blink_count
+1 mem_rec_led2_style_gpio
+2 mem_rec_led2_style_on_time
+2 mem_rec_led2_style_off_time
+2 mem_rec_led2_style_on_callback
+2 mem_rec_led2_style_off_callback
+
+//led ble pair
+0 mem_rec_le_pair_led_style
+1 mem_rec_le_pair_led_style_type
+1 mem_rec_le_pair_led_style_blink_count
+1 mem_rec_le_pair_led_style_gpio
+2 mem_rec_le_pair_led_style_on_time
+2 mem_rec_le_pair_led_style_off_time
+
+//led ble reconn
+0 mem_rec_le_reconn_led_style
+1 mem_rec_le_reconn_led_style_type
+1 mem_rec_le_reconn_led_style_blink_count
+1 mem_rec_le_reconn_led_style_gpio
+2 mem_rec_le_reconn_led_style_on_time
+2 mem_rec_le_reconn_led_style_off_time
+
+//led adc low power
+0 mem_rec_adc_low_led_style
+1 mem_rec_adc_low_led_style_type
+1 mem_rec_adc_low_led_style_blink_count
+1 mem_rec_adc_low_led_style_gpio
+2 mem_rec_adc_low_led_style_on_time
+2 mem_rec_adc_low_led_style_off_time
+
+
+//10ms timer
+4 mem_rec_ui_timer_btclk
+1 mem_rec_ui_timer_count
+2 mem_rec_cb_timer
+
+//tscan
+1 mem_rec_tscan_timer
+1 mem_rec_tscan_timeout
+
+1 mem_rec_tscan_row_nums
+1 mem_rec_tscan_col_nums
+2 mem_rec_tscan_col_gpio_ptr
+1 mem_rec_tscan_row_scanned
+1 mem_rec_tscan_col_scanned
+1 mem_rec_tscan_record_row
+1 mem_rec_tscan_record_col
+10 mem_rec_tscan_row_gpio
+10 mem_rec_tscan_col_gpio
+1 mem_rec_tscan_sequence
+1 mem_rec_tscan_gpio_nums
+1 mem_rec_tscan_row_scan_loop_count
+0 mem_rec_key_state
+1 mem_rec_tscan_gndkey_state
+1 mem_rec_tscan_key_state
+2 mem_rec_tscan_record_temp
+1 mem_rec_tscan_key_need_send_flag
+1 mem_rec_tscan_current_key_num
+1 mem_rec_gpio_wakeup_source
+1 mem_rec_tscan_gndkey_record_temp
+1 mem_rec_tscan_gndkey_need_send_flag
+
+40 mem_rec_tscan_key_nums_list
+10 mem_rec_tscan_gndkey_nums_list
+
+//combin key
+8 mem_rec_tscan_key_num_bit
+8 mem_rec_tscan_combin_key_num_bit
+2 mem_rec_tscan_current_gpio_ptr
+2 mem_rec_tscan_record_now
+1 mem_rec_combin_key_timeout
+1 mem_rec_combin_key_timer
+
+//tscan debounce
+1 mem_rec_gpio_bit_first
+1 mem_rec_gpio_bit_second
+1 mem_rec_gpio_bit_check
+1 mem_rec_gpio_for_wake_pullup
+
+//keypad
+1 mem_rec_keypad_type
+160 mem_rec_key_keyboard_value_list
+48 mem_rec_key_consumer_value_list
+64 mem_rec_key_mouse_value_list
+48 mem_rec_key_nec_value_list
+
+0 mem_rec_key_press_le
+3 mem_rec_key1_press_le
+3 mem_rec_key2_press_le
+3 mem_rec_key3_press_le
+3 mem_rec_key4_press_le
+3 mem_rec_key5_press_le
+3 mem_rec_key6_press_le
+3 mem_rec_key7_press_le
+3 mem_rec_key8_press_le
+3 mem_rec_key9_press_le
+3 mem_rec_key10_press_le
+3 mem_rec_key11_press_le
+3 mem_rec_key12_press_le
+3 mem_rec_key13_press_le
+3 mem_rec_key14_press_le
+3 mem_rec_key15_press_le
+3 mem_rec_key16_press_le
+3 mem_rec_key17_press_le
+3 mem_rec_key18_press_le
+3 mem_rec_key19_press_le
+3 mem_rec_key20_press_le
+3 mem_rec_key21_press_le
+
+3 mem_rec_key_release_le
+21 mem_rec_key_map
+1 mem_rec_gnd_key_offset
+1 mem_rec_keypad_fun
+
+
+//ble param
+1 mem_rec_le_enable_notify
+1 mem_rec_le_data_len
+1 mem_rec_le_connect_state
+
+//gatt
+2 mem_rec_report_id1_handle
+2 mem_rec_report_id2_handle
+2 mem_rec_report_id3_handle
+2 mem_rec_report_id4_handle
+
+//queue
+1 mem_rec_queue_each_size
+1 mem_rec_queue_length
+1 mem_rec_queue_curr_num
+1 mem_rec_queue_read_ptr
+1 mem_rec_queue_write_ptr
+32 mem_rec_queue_ele
+
+//adpcm
+16 mem_rec_ad_indexTable1
+356 mem_rec_ad_stepsizeTable1
+
+4 mem_rec_ad_state_valpred1
+4 mem_rec_ad_state_index1
+1 mem_rec_ad_in_numSamples1
+2 mem_rec_ad_in_ptr1
+2 mem_rec_ad_out_ptr1
+1 mem_rec_ad_sign1
+1 mem_rec_ad_delta1
+4 mem_rec_ad_step1
+4 mem_rec_ad_valpred1
+4 mem_rec_ad_index1
+4 mem_rec_ad_vpdiff1
+4 mem_rec_ad_inputbuffer1
+1 mem_rec_ad_bufferstep1	
+
+4 mem_rec_ad_val1
+4 mem_rec_ad_outputbuffer1
+4 mem_rec_ad_diff1
+
+1 mem_rec_voice_enable
+20 mem_rec_voice_notify
+2 mem_rec_adc_dma_rptr
+
+2 mem_rec_voice_notify_apk_handle
+2 mem_rec_voice_notify_box_handle
+2 mem_rec_control_notify_apk_handle
+2 mem_rec_control_notify_box_handle
+
+//filter policy
+1 mem_rec_white_list_num
+1 mem_rec_le_scan_filter_policy
+4 mem_rec_white_list_flash_write_head
+48 mem_rec_white_list
+1 mem_rec_le_req_type
+
+//nec 
+1 mem_rec_nec_send_gpio
+1 mem_rec_nec_receive_gpio
+
+//ota
+2 mem_rec_ota_write_index
+4 mem_rec_ota_write_length
+2 mem_rec_ota_write_data_addr
+3 mem_rec_ota_write_flash_addr
+3 mem_rec_ota_write_flash_addr_start
+4 mem_rec_ota_total_sum
+1 mem_rec_ota_update_flash_mode
+
+2 mem_rec_ota_version
+2 mem_rec_ota_buck_size
+2 mem_rec_ota_packet_max_len
+1 mem_rec_ota_work_mode
+
+2 mem_rec_ota_notify_handle
+1 mem_rec_ota_notify_opcode
+1 mem_rec_ota_notify_result
+9 mem_rec_ota_notify_data
+
+0 mem_rec_ota_le_conn_update_param
+2 mem_rec_ota_le_interval_min
+2 mem_rec_ota_le_interval_max
+2 mem_rec_ota_le_latency
+2 mem_rec_ota_le_timeout
+
+1 mem_rec_ota_reset_timeout
+1 mem_rec_ota_le_conn_param_update
+1 mem_rec_ota_enable
+1 mem_rec_le_packet_size
+
+3 mem_rec_ota_flash_base_addr
+3 mem_rec_ota_flash_offset_addr
+
+2 mem_rec_queue_ota_count
+2 mem_rec_ota_queue_size
+
+3 mem_rec_code_a_flash_addr
+3 mem_rec_code_b_flash_addr
+
+
+
+1 mem_xmalloc_rec_end
+)
+xmemalloc g24_tx_remote(
+
+4 mem_remote_lpm_gpio_config_flag
+1 mem_remote_lpm_gpio_config_io_temp
+
+1 mem_24g_tx_led_map
+1 mem_24g_led_count
+2 mem_24g_lpm_timer_count
+2 mem_24g_lpm_enter_count	
+6 mem_remote_otp_lot_xy_temp
+4 mem_remote_full_control_remote_lap
+
+0 mem_remote_car_key_conf0
+1 mem_remote_car_key_conf0_pin
+0 mem_remote_car_key_conf1
+1 mem_remote_car_key_conf1_pin
+0 mem_remote_car_key_conf2
+1 mem_remote_car_key_conf2_pin
+0 mem_remote_car_key_conf3
+1 mem_remote_car_key_conf3_pin
+0 mem_remote_car_key_conf4
+1 mem_remote_car_key_conf4_pin
+0 mem_remote_car_key_conf5
+1 mem_remote_car_key_conf5_pin
+0 mem_remote_car_key_conf6
+1 mem_remote_car_key_conf6_pin
+
+1 mem_remote_le_24g_recv_ack_flag
+1 mem_key_public_gpio
+1 mem_remote_mult_key
+
+2 mem_remote_le_24g_ch_count
+1 mem_le_24g_tx_send_flag
+1 mem_remote_le_24g_tx_pair_mode
+4 mem_remote_24g_addr_other
+
+12 mem_remote_24g_tx_payload_temp
+12 mem_remote_24g_rx_payload_temp
+
+)
+xmemalloc shutter(
+
+////////////////////////////////////
+//ble shutter configsuoy
+1 mem_ble_shutter_enable_notify
+2 mem_ble_shutter_reconn_adv_interval
+2 mem_ble_shutter_discovery_adv_interval
+2 mem_ble_shutter_reconn_timeout
+2 mem_ble_shutter_reconn_timer
+2 mem_ble_shutter_reconn_blink_on_time
+2 mem_ble_shutter_reconn_blink_off_time
+2 mem_ble_shutter_discovery_blink_on_time
+2 mem_ble_shutter_discovery_blink_off_time
+
+2 mem_ble_shutter_interval_min
+2 mem_ble_shutter_interval_max
+2 mem_ble_shutter_latency
+2 mem_ble_shutter_timeout
+
+2 mem_ble_shutter_interval_min_new
+2 mem_ble_shutter_interval_max_new
+2 mem_ble_shutter_latency_new
+2 mem_ble_shutter_timeout_new
+
+//////////////////shutter sleep timeout//////////////////
+2 mem_ble_shutter_discovery_timeout
+2 mem_ble_shutter_connect_timeout
+2 mem_shutter_sleep_timeout
+2 mem_shutter_sleep_timer
+
+/////////////////////////////////////////////////////////////////
+1 mem_shutter_hard_soft_switch_case
+1 mem_shutter_soft_switch_button_gpio
+1 mem_shutter_soft_switch_power_state
+1 mem_shutter_soft_switch_poweron_time
+1 mem_shutter_soft_switch_poweroff_time
+2 mem_shutter_soft_switch_poweron_callback_function
+2 mem_shutter_soft_switch_poweroff_callback_function
+
+0 mem_shutter_keyscan
+1 mem_shutter_key_num
+2 mem_cb_shutter_keycan
+1 mem_shutter_key_conf0
+1 mem_shutter_key_conf1
+
+5 mem_key0_press
+5 mem_key1_press
+5 mem_key2_press
+
+5 mem_key0_release
+5 mem_key1_release
+5 mem_key2_release
+
+5 mem_ble_data_buffer1
+5 mem_ble_data_buffer2
+5 mem_ble_data_buffer3
+5 mem_ble_data_buffer4
+5 mem_ble_data_buffer5
+5 mem_ble_data_buffer6
+5 mem_ble_data_buffer7
+5 mem_ble_data_buffer8
+50 mem_ble_data_buffer9_58
+
+1 mem_queue_each_size
+1 mem_queue_length
+1 mem_queue_curr_num
+1 mem_queue_read_ptr
+1 mem_queue_write_ptr
+32 mem_queue_ele
+
+170 mem_shutter_nv_data
+
+0 mem_shutter_led_struct_app_led
+1 mem_shutter_led_struct_app_led_type
+1 mem_shutter_led_struct_app_led_blink_count
+1 mem_shutter_led_struct_app_led_gpio
+2 mem_shutter_led_struct_app_led_on_time
+2 mem_shutter_led_struct_app_led_off_time
+2 mem_shutter_led_struct_app_led_on_callback
+2 mem_shutter_led_struct_app_led_off_callback
+
+0 mem_shutter_power_off_led_style
+1 mem_shutter_power_off_led_style_type
+1 mem_shutter_power_off_led_style_blink_count
+1 mem_shutter_power_off_led_style_gpio
+2 mem_shutter_power_off_led_style_on_time
+2 mem_shutter_power_off_led_style_off_time
+2 mem_shutter_power_off_led_style_on_callback
+2 mem_shutter_power_off_led_style_off_callback
+
+1 mem_shutter_soft_swtich_botton_down
+11 mem_shutter_soft_swtich_led_struct_temp
+1 mem_shutter_power_off_timeout
+1 mem_shutter_power_off_timer
+2 mem_shutter_key_conf0_temp
+1 mem_shutter_led_struct_app_led_gpio_temp
+1 mem_shutter_hard_soft_switch_case_temp
+1 mem_shutter_soft_switch_button_gpio_temp
+
+1 mem_shutter_soft_switch_first_power_on
+1 mem_shutter_dy_conf
+)
+xmemalloc shutter_dy(
+
+////////////////////////////////////
+//shutter common config
+
+//timers
+1 mem_shutter_1s_timer
+2 mem_shutter_timer_625us
+
+//patch variable
+11 mem_rf_init_data_new
+2 mem_key_value_xmem
+230 mem_shutter_le_hid_map
+412 mem_shutter_le_uuid_sup
+2 mem_shutter_le_map_len_android
+2 mem_shutter_le_map_len_ios
+16 mem_dy_le_search_service_uuid
+1 mem_iphone_flag
+1 mem_send_data_delay
+4 mem_key_send_clk
+10 mem_shutter_key_state0
+10 mem_shutter_key_state1
+10 mem_shutter_key_state2
+10 mem_shutter_key_state3
+10 mem_shutter_key_state4
+10 mem_shutter_key_state5
+10 mem_shutter_key_state6
+10 mem_shutter_key_state7
+10 mem_shutter_key_state8
+
+10 mem_dy_key0_press
+10 mem_dy_key1_press
+10 mem_dy_key2_press
+10 mem_dy_key3_press
+10 mem_dy_key4_press
+10 mem_dy_key5_press
+10 mem_dy_key6_press
+10 mem_dy_key7_press
+10 mem_dy_key8_press
+
+15 mem_key0_release_new
+15 mem_key1_release_new
+15 mem_key2_release_new
+15 mem_key3_release_new
+15 mem_key4_release_new
+15 mem_key5_release_new
+15 mem_key6_release_new
+15 mem_key7_release_new
+15 mem_key8_release_new
+
+3 mem_key0_long_press
+3 mem_key1_long_press
+3 mem_key2_long_press
+3 mem_key3_long_press
+3 mem_key4_long_press
+3 mem_key5_long_press
+3 mem_key6_long_press
+3 mem_key7_long_press
+3 mem_key8_long_press
+
+3 mem_key0_long_release
+3 mem_key1_long_release
+3 mem_key2_long_release
+3 mem_key3_long_release
+3 mem_key4_long_release
+3 mem_key5_long_release
+3 mem_key6_long_release
+3 mem_key7_long_release
+3 mem_key8_long_release
+
+2 mem_combine_key0
+2 mem_combine_key1
+2 mem_combine_key2
+2 mem_combine_key3
+2 mem_combine_key4
+2 mem_combine_key5
+
+2 mem_combine_key_state0
+
+10 mem_combine_key0_press
+10 mem_combine_key1_press
+10 mem_combine_key2_press
+10 mem_combine_key3_press
+10 mem_combine_key4_press
+10 mem_combine_key5_press
+10 mem_combine_key_release
+
+4 mem_shutter_move_data
+
+10 mem_key0_press_i
+10 mem_key1_press_i
+10 mem_key2_press_i
+10 mem_key3_press_i
+10 mem_key4_press_i
+10 mem_key5_press_i
+10 mem_key6_press_i
+10 mem_key7_press_i
+
+15 mem_key0_release_new_i
+15 mem_key1_release_new_i
+15 mem_key2_release_new_i
+15 mem_key3_release_new_i
+15 mem_key4_release_new_i
+15 mem_key5_release_new_i
+15 mem_key6_release_new_i
+15 mem_key7_release_new_i
+15 mem_key8_release_new_i
+
+3 mem_key0_long_press_i
+3 mem_key1_long_press_i
+3 mem_key2_long_press_i
+3 mem_key3_long_press_i
+3 mem_key4_long_press_i
+3 mem_key5_long_press_i
+3 mem_key6_long_press_i
+3 mem_key7_long_press_i
+3 mem_key8_long_press_i
+
+3 mem_key0_long_release_i
+3 mem_key1_long_release_i
+3 mem_key2_long_release_i
+3 mem_key3_long_release_i
+3 mem_key4_long_release_i
+3 mem_key5_long_release_i
+3 mem_key6_long_release_i
+3 mem_key7_long_release_i
+3 mem_key8_long_release_i
+
+
+10 mem_key3_release_new_t
+10 mem_key3_release_new_i_t
+1 mem_key3_press_count
+1 mem_shutter_like_timeout
+1 mem_shutter_key_pressed
+1 mem_shutter_combine_key_release
+550 mem_shutter_mousekey_value_list
+1 mem_shutter_back_count
+1 mem_shutter_le_conned
+
+0 mem_move_config
+1 mem_shutter_iphone_beyond_x_count
+1 mem_shutter_iphone_beyond_y_count
+2 mem_shutter_move_data_x
+2 mem_shutter_move_data_y
+1 mem_last_shutter_le_iphone_flag
+0 mem_move_config_end
+1 mem_shutter_back_count_cache
+1 mem_shutter_iphone_beyond_x_cache
+1 mem_shutter_iphone_beyond_y_cache
+10 mem_shutter_iphone_move_mid
+1 mem_shutter_long_key_released_flag
+1 mem_shutter_move_mid_timer
+1 mem_shutter_pairing_success
+2 mem_combine_key_release_value
+1 mem_last_press_key_value
+1 mem_shutter_first_move
+1 mem_move_mode_set
+1 mem_move_mode_key_index
+1 mem_move_mode_trigger_enable
+5 mem_shutter_android_move_mid
+10 mem_shutter_iphone_up_mid
+10 mem_shutter_iphone_like_mid
+1 mem_shutter_key_num_conf
+9 mem_shutter_dy_key_conf
+11 mem_le_dy_adv_data
+12 mem_le_dy_scan_data
+8 mem_ble_shutter_dy_interval_min_android
+8 mem_ble_shutter_dy_interval_min_ios
+8 mem_shutter_ble_discovery_time_conf
+2 mem_queue_dy_each_size
+
+7 mem_shutter_led_on_light_dark_led_conf
+7 mem_shutter_led_off_light_dark_led_conf
+4 mem_shutter_reconn_blink_on_time_conf
+4 mem_shutter_discovery_blink_on_time_conf
+2 mem_shutter_efuse_start_offset
+2 mem_shutter_efuse_end_offset
+
+0 mem_initial_move_conf
+2 mem_android_initial_move_x
+2 mem_android_initial_move_y
+2 mem_iphone_initial_move_x
+2 mem_iphone_initial_move_y
+//修改增加保存参数
+0 mem_otp_move_config
+2 mem_otp_shutter_move_data_x
+2 mem_otp_shutter_move_data_y
+1 mem_otp_last_shutter_le_iphone_flag
+0 mem_otp_move_config_end
+2 mem_otp_write_offset_addr
+2 mem_otp_read_offset_addr
+2 mem_otp_read_ios_android_addr
+2 mem_shutter_le_pairing_handle
+2 mem_shutter_temp_count
+1 mem_shutter_first_read_flag
+1 mem_shutter_valid_data_flag
+1 mem_shutter_volume_timer
+1 mem_shutter_link_timer
+8 mem_shutter_link_data
+8 mem_shutter_link_data_i
+1 mem_shutter_link_loop_flag
+
+1 mem_shutter_dy_le_enc_timer
+0 mem_shutter_end
+)
+xmemalloc hci_boot(
+1 mem_hci_uart_tx_gpio
+1 mem_hci_uart_rx_gpio
+1 mem_hci_uart_rts_gpio
+1 mem_hci_uart_cts_gpio
+1 mem_hci_pwm_12mhz_gpio
+)
+xmemalloc g24_tx_hid(
+
+// adc
+//adc struct
+0 mem_device_vdd_calculate_set
+2 mem_device_vdd_full_vol
+2 mem_device_vdd_empty_vol
+2 mem_device_vdd_low_vol
+2 mem_device_vdd_now_vol
+1 mem_adc_channel_gpio
+1 mem_adc_low_volatage_led_timer_count
+1 mem_device_adc_last_low_voltage_flag
+2 mem_device_discovery_timeout
+2 mem_device_24g_pair_timeout_init
+1 mem_device_direct_timeout
+1 mem_device_24g_reconn_timeout_init
+1 mem_device_24g_pair_tx_power
+1 mem_device_normal_tx_power
+1 mem_rssi_dis_min_24g_init
+1 mem_rssi_dis_max_24g_init
+1 mem_rssi_hex_received_max_value_init
+1 mem_rssi_dis_min_ble_init
+1 mem_rssi_dis_max_ble_init
+
+1 mem_mouse_key
+2 mem_mouse_x
+2 mem_mouse_y
+1 mem_mouse_z
+1 mem_mouse_tz
+1 mem_mouse_xy_h
+1 mem_mouse_key_last
+
+1 mem_device_switch_gpio
+1 mem_device_reuse_2ice_gpio
+1 mem_sensor_motion_gpio
+
+//mouse wheel
+1 mem_whee_a_data_gpio
+1 mem_whee_b_data_gpio
+1 mem_wheel_tb_old_pinlevel
+1 mem_wheel_tb_new_pinlevel
+1 mem_wheel_tog 
+1 mem_mouse_tz_data
+1 mem_mwheel_b_old_pinlevel
+1 mem_mwheel_b_new_pinlevel
+1 mem_mwheel_tog 
+1 mem_mouse_z_data
+1 mem_mouse_wheel_trigger
+1 mem_mouse_wheel_trigger_timer
+
+// usb
+1 mem_wire_usb_interval
+1 mem_usb_addr
+1 mem_usb_vdd_status
+1 mem_usb_keyboard_flag
+
+//three devices param
+//eeprom/flash
+0 mem_device_information_start
+1 mem_device_flag
+1 mem_device1_type
+6 mem_device1_addr
+6 mem_device1_locall_addr
+
+1 mem_device2_type
+6 mem_device2_addr
+6 mem_device2_locall_addr
+
+1 mem_device3_type
+6 mem_device3_addr
+6 mem_device3_locall_addr
+2 mem_store_flag
+1 mem_mouse_dpi
+4 mem_device_24g_addr
+2 mem_random_addr_increase_count
+
+1 mem_keyboard_24g_fn_lock
+1 mem_keyboard_bt1_fn_lock
+1 mem_keyboard_bt2_fn_lock
+1 mem_keyboard_bt3_fn_lock
+1 mem_keyboard_usb_fn_lock
+1 mem_keyboard_bt1_computer_system
+1 mem_keyboard_bt2_computer_system
+1 mem_keyboard_bt3_computer_system
+1 mem_backlight_on_flag
+1 mem_backlight_on_type
+1 mem_backlight_on_level
+1 mem_backlight_breath_speed
+67 mem_mouse_retention
+0 mem_device_information_end
+
+6 mem_device_compare_addr
+3 mem_flash_base
+4 mem_write_flash_head_temp
+1 mem_store_information_delay_timer
+1 mem_store_information_delay_timer_init
+
+// 2.4G
+1 mem_device_search_dongle_interval
+1 mem_device_search_dongle_ch
+1 mem_device_search_dongle_count
+1 mem_device_search_dongle_action
+1 mem_24g_enter_lpm_timer
+1 mem_mouse_24g_enter_lpm_enable
+1 mem_keyboard_led_status
+
+
+// mouse configured param
+8 mem_mouse_flag 
+1 mem_device_number
+1 mem_device_flag_temp
+1 mem_device_otp_flag_temp
+1 mem_device_fast_direct_timeout
+2 mem_device_24g_power_on_fast_conn_timer
+2 mem_device_24g_search_dongle_time_init
+2 mem_device_no_data_timeout
+1 mem_device_direct_timer
+
+10 mem_customer_key_press
+1 mem_customer_key
+1 mem_customer_data_trigger
+1 mem_customer_data_trigger_last
+3 mem_device_set_analog_bit_set
+1 mem_bt_discovery_count
+1 mem_select_device_count
+1 mem_mouse_commbination_key
+1 mem_select_device_button_statue
+1 mem_commbination_key_statue
+1 mem_combination_ui_button_count
+
+
+1 mem_24g_shutdown_flag
+1 mem_24g_long_sleep_set_level
+
+2 mem_tx_power_factory_param
+
+1 mem_mouse_24g_long_sleep_flag
+
+//no motion pin
+1 mem_mouse_long_mult_count
+1 mem_mouse_long_mult_flag
+1 mem_mouse_current_mult_timer
+
+1 mem_reconn_times
+1 mem_reconn_times_init
+2 mem_device_no_data_timer
+8 mem_mouse_rssi_signal_buf				
+4 mem_btclk_sensor
+1 mem_device_fast_conn_flag
+2 mem_device_discovery_timer
+1 mem_device_need_soft_reset
+
+// le
+1 mem_device_le_bb_connected_flag
+1 mem_device_le_reconnect_flag
+1 mem_device_send_secutiry_request_timer
+
+3 mem_device_le_lap_temp
+3 mem_le_adv_ind
+3 mem_le_adv_direct_ind
+20 mem_le_adv_swift_pair
+1 mem_le_data_len
+2 mem_le_keyboard_handle
+2 mem_le_multimedia_handle
+2 mem_le_systemctrl_handle
+2 mem_le_battery_level_handle
+1 mem_le_battery_level_percentage
+2 mem_le_battery_level_updata_timer_init
+2 mem_le_battery_level_updata_timer
+1 mem_le_conn_param_reject
+64 mem_le_tx_buffer0_omemalloc
+64 mem_le_tx_buffer1_omemalloc
+64 mem_le_tx_buffer2_omemalloc
+64 mem_le_tx_buffer3_omemalloc
+1 mem_le_connect_status_flag
+1 mem_le_start_encrypt_timer
+
+7 mem_device_addr_temp
+1 mem_lpm_mult_init
+1 mem_qdec_set_flag
+
+)
Index: output/auth.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/auth.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/auth.rom	(working copy)
@@ -0,0 +1,1911 @@
+01
+00
+02
+00
+28
+02
+00
+18
+02
+00
+02
+03
+28
+01
+0a
+03
+00
+02
+00
+2a
+14
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+02
+03
+28
+01
+02
+05
+00
+02
+01
+2a
+02
+c2
+03
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+08
+00
+02
+00
+28
+02
+01
+18
+09
+00
+02
+03
+28
+01
+20
+0a
+00
+02
+05
+2a
+00
+0b
+00
+02
+02
+29
+02
+00
+00
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+02
+03
+28
+01
+02
+10
+00
+02
+50
+2a
+07
+02
+35
+12
+22
+aa
+01
+00
+11
+00
+02
+00
+28
+02
+12
+18
+12
+00
+02
+03
+28
+01
+06
+13
+00
+02
+4e
+2a
+01
+01
+14
+00
+02
+03
+28
+01
+12
+15
+00
+02
+4d
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+16
+00
+02
+02
+29
+02
+00
+00
+17
+00
+02
+08
+29
+02
+02
+01
+18
+00
+02
+03
+28
+01
+1a
+19
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+1a
+00
+02
+02
+29
+02
+00
+00
+1b
+00
+02
+08
+29
+02
+01
+01
+1c
+00
+02
+03
+28
+01
+12
+1d
+00
+02
+4d
+2a
+02
+00
+00
+1e
+00
+02
+02
+29
+02
+00
+00
+1f
+00
+02
+08
+29
+02
+03
+01
+20
+00
+02
+03
+28
+01
+12
+21
+00
+02
+4d
+2a
+02
+00
+00
+22
+00
+02
+02
+29
+02
+00
+00
+23
+00
+02
+08
+29
+02
+04
+01
+24
+00
+02
+03
+28
+01
+0e
+25
+00
+02
+4d
+2a
+02
+00
+00
+26
+00
+02
+08
+29
+02
+02
+02
+27
+00
+02
+03
+28
+01
+02
+28
+00
+02
+4b
+2a
+f5
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+f8
+26
+ff
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+29
+00
+02
+03
+28
+01
+1a
+2a
+00
+02
+33
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+2b
+00
+02
+02
+29
+02
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+01
+01
+00
+03
+2e
+00
+02
+00
+28
+02
+0f
+18
+2f
+00
+02
+03
+28
+01
+12
+30
+00
+02
+19
+2a
+01
+64
+31
+00
+02
+02
+29
+02
+00
+00
+32
+00
+02
+03
+28
+01
+04
+33
+00
+02
+4c
+2a
+00
+00
+00
+1a
+06
+bc
+ff
+09
+88
+a1
+01
+85
+04
+19
+00
+2a
+ff
+00
+15
+00
+26
+ff
+00
+75
+08
+95
+01
+81
+00
+c0
+41
+05
+01
+09
+06
+a1
+01
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+f3
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+05
+15
+00
+25
+01
+95
+05
+75
+01
+81
+02
+95
+01
+75
+03
+81
+01
+05
+01
+09
+30
+09
+31
+16
+01
+F8
+26
+FF
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+05
+01
+09
+80
+a1
+01
+85
+02
+05
+01
+19
+81
+29
+88
+15
+00
+25
+01
+95
+08
+75
+01
+81
+06
+c0
+06
+00
+ff
+09
+0e
+a1
+01
+85
+BA
+95
+1f
+75
+08
+26
+ff
+00
+15
+00
+09
+01
+91
+02
+85
+BA
+95
+1f
+75
+08
+26
+ff
+00
+15
+00
+09
+01
+81
+02
+C0
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+26
+80
+03
+19
+00
+2a
+80
+03
+75
+10
+95
+01
+81
+00
+c0
+12
+12
+01
+00
+02
+00
+00
+00
+40
+51
+31
+20
+10
+02
+00
+01
+02
+00
+01
+3b
+09
+02
+3b
+00
+02
+01
+00
+a0
+32
+09
+04
+00
+00
+01
+03
+01
+01
+00
+09
+21
+00
+02
+00
+01
+22
+1a
+00
+07
+05
+81
+03
+40
+00
+02
+09
+04
+01
+00
+01
+03
+01
+02
+00
+09
+21
+00
+02
+00
+01
+22
+f3
+00
+07
+05
+82
+03
+40
+00
+02
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+13
+43
+68
+69
+70
+73
+65
+61
+2d
+42
+4c
+45
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c1
+03
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+12
+18
+10
+00
+02
+03
+28
+01
+06
+11
+00
+02
+4e
+2a
+01
+01
+12
+00
+02
+03
+28
+01
+12
+13
+00
+02
+4d
+2a
+02
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+02
+01
+16
+00
+02
+03
+28
+01
+12
+17
+00
+02
+4d
+2a
+02
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+03
+01
+1a
+00
+02
+03
+28
+01
+02
+1b
+00
+02
+4b
+2a
+1b
+05
+0c
+09
+01
+a1
+01
+85
+02
+09
+e9
+09
+ea
+09
+e2
+09
+30
+15
+01
+25
+0c
+75
+10
+95
+01
+81
+00
+c0
+1c
+00
+02
+03
+28
+01
+02
+1d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+1e
+00
+02
+03
+28
+01
+04
+1f
+00
+02
+4c
+2a
+01
+00
+20
+00
+02
+00
+28
+02
+0f
+18
+21
+00
+02
+03
+28
+01
+12
+22
+00
+02
+19
+2a
+01
+63
+00
+00
+02
+13
+00
+02
+00
+02
+13
+00
+01
+00
+02
+13
+00
+04
+00
+02
+13
+00
+06
+00
+02
+13
+00
+05
+00
+02
+13
+00
+00
+00
+02
+17
+00
+00
+28
+02
+17
+00
+00
+00
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+11
+55
+43
+48
+4f
+4e
+20
+30
+31
+20
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c8
+00
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+f0
+ff
+10
+00
+02
+03
+28
+01
+12
+11
+00
+02
+f1
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+12
+00
+02
+02
+29
+02
+00
+00
+13
+00
+02
+03
+28
+01
+08
+14
+00
+02
+f2
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+98
+2f
+8a
+42
+91
+44
+37
+71
+cf
+fb
+c0
+b5
+a5
+db
+b5
+e9
+5b
+c2
+56
+39
+f1
+11
+f1
+59
+a4
+82
+3f
+92
+d5
+5e
+1c
+ab
+98
+aa
+07
+d8
+01
+5b
+83
+12
+be
+85
+31
+24
+c3
+7d
+0c
+55
+74
+5d
+be
+72
+fe
+b1
+de
+80
+a7
+06
+dc
+9b
+74
+f1
+9b
+c1
+c1
+69
+9b
+e4
+86
+47
+be
+ef
+c6
+9d
+c1
+0f
+cc
+a1
+0c
+24
+6f
+2c
+e9
+2d
+aa
+84
+74
+4a
+dc
+a9
+b0
+5c
+da
+88
+f9
+76
+52
+51
+3e
+98
+6d
+c6
+31
+a8
+c8
+27
+03
+b0
+c7
+7f
+59
+bf
+f3
+0b
+e0
+c6
+47
+91
+a7
+d5
+51
+63
+ca
+06
+67
+29
+29
+14
+85
+0a
+b7
+27
+38
+21
+1b
+2e
+fc
+6d
+2c
+4d
+13
+0d
+38
+53
+54
+73
+0a
+65
+bb
+0a
+6a
+76
+2e
+c9
+c2
+81
+85
+2c
+72
+92
+a1
+e8
+bf
+a2
+4b
+66
+1a
+a8
+70
+8b
+4b
+c2
+a3
+51
+6c
+c7
+19
+e8
+92
+d1
+24
+06
+99
+d6
+85
+35
+0e
+f4
+70
+a0
+6a
+10
+16
+c1
+a4
+19
+08
+6c
+37
+1e
+4c
+77
+48
+27
+b5
+bc
+b0
+34
+b3
+0c
+1c
+39
+4a
+aa
+d8
+4e
+4f
+ca
+9c
+5b
+f3
+6f
+2e
+68
+ee
+82
+8f
+74
+6f
+63
+a5
+78
+14
+78
+c8
+84
+08
+02
+c7
+8c
+fa
+ff
+be
+90
+eb
+6c
+50
+a4
+f7
+a3
+f9
+be
+f2
+78
+71
+c6
Index: output/bt_format.meta
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_format.meta	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_format.meta	(working copy)
@@ -0,0 +1,11669 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_current_context
+0x0007 mem_le_ch_mapped
+0x0008 mem_last_freq
+0x0009 mem_rssi
+0x000a mem_context_ptr
+0x000c mem_rx_window
+0x000e mem_lpm_adjust
+0x000f mem_sync_clke
+0x0015 mem_lpm_current_mult
+0x0016 mem_gpio_wakeup_cfg
+0x0022 mem_clkn_bt
+0x0026 mem_clke_bt
+0x002a mem_dpll_clkn
+0x002e mem_slot_offset
+0x0030 mem_loadcode_times
+0x0031 mem_select_list_item
+0x0032 mem_temp_reconn_record
+0x0032 mem_record_bt_mode
+0x0033 mem_list_item_ptr
+0x0035 mem_rssi_hex
+0x0036 mem_param_tx_setup
+0x0038 mem_param_rf_setup
+0x003a mem_param_conn_access
+0x003c mem_param_clke_cal
+0x003e mem_param_pll_setup
+0x0040 mem_param_rx_setup
+0x0042 mem_param_dpll_start_delay
+0x0044 mem_param_rt_rthalfslot
+0x0046 mem_param_clke_cal_le_1m
+0x0048 mem_param_clke_cal_le_2m
+0x004a mem_param_clke_cal_le_coded
+0x004c mem_le_rxbuf
+0x0150 mem_le_mic
+0x0154 mem_le_peer_mic
+0x0158 mem_le_mrand
+0x0168 mem_le_state
+0x0169 mem_le_mode
+0x016a mem_le_tsniff
+0x016c mem_le_anchor
+0x0170 mem_le_clk_offset
+0x0176 mem_le_receive_window
+0x0178 mem_le_plap
+0x017e mem_le_conn_handle
+0x017f mem_le_arq
+0x0180 mem_le_ch
+0x0181 mem_le_hop
+0x0182 mem_le_event_count
+0x0184 mem_le_supervision_timer
+0x0188 mem_le_instant
+0x018a mem_le_channels
+0x018b mem_le_op
+0x018c mem_le_access
+0x0190 mem_le_crcinit
+0x0193 mem_le_window_size
+0x0194 mem_le_slave_latency
+0x0196 mem_le_superto
+0x0198 mem_le_channel_map
+0x019d mem_le_rx_phy
+0x019e mem_le_tx_phy
+0x019f mem_le_update_new_param
+0x01a8 mem_le_sk
+0x01b8 mem_le_peer_sca
+0x01b9 mem_le_err_code
+0x01ba mem_le_ll_pairing_fail_reason
+0x01bb mem_ucode_status
+0x01bc mem_spid_tbuf
+0x01bd mem_iicd_tbuf
+0x01bd mem_addr_hi
+0x01be mem_addr_mi
+0x01bf mem_addr_lo
+0x01c0 mem_iicd_addr
+0x01c1 mem_spid_rbuf
+0x01c5 mem_ucode_buf
+0x01c7 mem_ucode_len
+0x01c9 mem_sched_addr
+0x01cb mem_ucode_keybuf
+0x01db mem_otp_temp
+0x01fb mem_app_evt_timer_count
+0x01fc mem_input_store
+0x020c mem_ec_loopc
+0x020e mem_aes_cmac_data_length
+0x020f mem_dat
+0x026f mem_ax_256//32 bytes
+0x028f mem_ay_256// 32 bytes
+0x02af mem_az_256// 32 bytes
+0x02cf mem_bx_256// 32 bytes
+0x02ef mem_by_256// 31 bytes
+0x030f mem_bz_256//32 bytes
+0x030f mem_tmp1
+0x030f memahbak
+0x0327 mem_tmp5
+0x032f mem_cx_256//32 bytes
+0x034f mem_cy_256// 32 bytes
+0x036e mem_cy5_256// 1 byte
+0x036f mem_cz_256// 32 bytes
+0x038f mem_k_256//32 bytes
+0x03af mem_tmp1_256//32 bytes
+0x03cf mem_tmp5_256
+0x03ef mem_tmp2_256
+0x040f mem_tmp3_256
+0x040f mem_t1_256
+0x042f mem_tmp0_256
+0x042f mem_t0_256
+0x044f mem_t2_256
+0x046f mem_t3_256
+0x048f mem_t7_256
+0x04af mem_p
+0x04c7 mem_a
+0x04df mem_b
+0x04f7 mem_gx
+0x050f mem_gy
+0x0527 memh0
+0x0547 mem_p_256
+0x0567 mem_a_256
+0x0587 mem_gx_256
+0x05a7 mem_gy_256
+0x05c7 mem_le_slat
+0x05d7 mem_sp_state_start
+0x05d7 mem_sp_dhkey_invalid
+0x05d8 mem_gkey
+0x05dc mem_sp_state_end
+0x05dc mem_le_pubkey_remote_x_256
+0x05fc mem_le_pubkey_remote_y_256
+0x061c mem_le_dhkey_256
+0x063c mem_sp_confirm_remote
+0x064c mem_ipc_skip_continue_proc
+0x064d mem_fifo_temp
+0x064e mem_pdatatemp
+0x0656 mem_temp//8 bytes
+0x065e mem_timeup// 4 bytes
+0x0662 mem_rega//4 bytes
+0x0666 mem_regb//4 bytes
+0x066a mem_regc//3 bytes
+0x066d mem_contr//2 bytes
+0x066f mem_contw//2 bytes
+0x0671 mem_contus
+0x0673 mem_contue
+0x0675 mem_contu
+0x0677 mem_queue
+0x0679 mem_loopcnt
+0x067b mem_saved_gpio_in
+0x067f mem_module_rx_error_data_buffer
+0x067f mem_le_adv_channel_map_temp
+0x067f mem_le_data_len_temp//1byte
+0x067f mem_event_cmd_response_content//2byte
+0x067f mem_le_prand//16byte
+0x067f mem_AES_CMAC_k//16 bytes
+0x067f mem_regext_index//1 bytes
+0x067f mem_temp_block0
+0x0680 mem_le_data_temp//15bytes
+0x0680 mem_temp_block1
+0x068f mem_le_tx_buf_temp//48byte
+0x068f mem_le_aes_128//16byte
+0x068f mem_regext//64 bytes
+0x068f mem_AES_CMAC_k1//16 bytes
+0x068f mem_temp_block2
+0x069f mem_AES_CMAC_k2//16 bytes
+0x069f mem_temp_block3
+0x06af mem_AES_CMAC_temp// 16 bytes
+0x06af mem_temp_block4
+0x06bf mem_AES_CMAC_M_last// 16 bytes
+0x06bf mem_module_uart_cmd
+0x06c0 mem_module_uart_opcode
+0x06c1 mem_module_uart_len
+0x06c2 mem_module_temp_nl_discard_packet
+0x06c3 mem_temp_block5
+0x06cf mem_le_mackey//16 bytes
+0x06cf mem_app_receive_temp
+0x06cf mem_key_value_temp
+0x06d1 mem_key_value
+0x06d3 mem_key_value_temp1
+0x06d4 mem_key_value_temp2
+0x06d5 mem_key_value_temp3
+0x06d6 mem_key_value_temp4
+0x06d7 mem_key_value_temp5
+0x06d8 mem_key_value_temp6
+0x06d9 mem_temp_block6
+0x06df mem_scale_ratio
+0x06e2 mem_xcnt
+0x06e5 mem_scale_ratio_temp
+0x06e7 mem_hci_opcode_ocf
+0x06e9 mem_hci_opcode_ogf
+0x06ea mem_hci_event_head_type
+0x06eb mem_hci_event_head_event_code
+0x06ec mem_hci_event_para_total_length
+0x06ed mem_hci_command_complete_num_hci_command_packet
+0x06ee mem_hci_command_complete_command_opcode
+0x06ee mem_hci_opcode
+0x06f0 mem_hci_command_complete_return_parameter
+0x06f0 mem_hci_command_complete_return_parameter_status
+0x06f1 mem_hci_command_complete_return_parameter_chip_id
+0x06e7 mem_module_le_rx_data_len
+0x06e9 mem_module_le_rx_data_address
+0x06eb mem_module_le_rx_data_handle
+0x06e7 mem_init_cnt
+0x06e9 mem_data_pre
+0x06eb mem_data_current
+0x06ed mem_data_sum
+0x06f0 mem_data_value
+0x06e7 mem_malloc_rec_start
+0x06e7 mem_rec_queue_ota_sptr
+0x06e9 mem_rec_queue_ota_eptr
+0x06eb mem_rec_queue_ota_rptr
+0x06ed mem_rec_queue_ota_wptr
+0x06ef mem_rec_queue_ota_buf//1280
+0x06ef mem_rec_voice_raw_start
+0x06ef mem_rec_voice_raw
+0x0a0e mem_rec_voice_raw_end
+0x0a0f mem_rec_voice_queue_count
+0x0a10 mem_rec_queue_buf
+0x0a24 mem_rec_adpcm
+0x0a88 mem_rec_nec_rx_start
+0x0b87 mem_rec_nec_rx_end
+0x0b88 mem_rec_nec_rx_store_start
+0x0c87 mem_rec_nec_rx_store_end
+0x0c88 mem_rec_ota_flash_buf_head
+0x0c8c mem_rec_ota_flash_buf//300
+0x0c8c mem_rec_nec_flash_write_head
+0x0c90 mem_rec_nec_rx_info
+0x0c90 mem_rec_nec_rx_len
+0x0c91 mem_rec_nec_rx_perid_freq
+0x0c93 mem_rec_nec_rx_data
+0x0d92 mem_rec_nec_rx_analysis_end
+0x0d93 mem_rec_nec_rx_count
+0x0d94 mem_rec_nec_timer
+0x0d95 mem_rec_nec_timeout
+0x0d96 mem_rec_nec_usercode
+0x0d98 mem_rec_nec_datacode
+0x0d99 mem_rec_nec_learn_key_num
+0x0d9a mem_rec_nec_learn_key_state
+0x0d9b mem_rec_nec_learn_enable_flag
+0x0d9c mem_rec_nec_learn_timeout
+0x0da0 mem_rec_nec_learn_state
+0x0da1 mem_rec_period_cal
+0x0db5 mem_rec_period_cal_ptr
+0x0db7 mem_rec_period_cal_count
+0x0db8 mem_rec_nec_period_array
+0x0dcc mem_rec_nec_store_sptr
+0x0dce mem_rec_nec_store_eptr
+0x0dd0 mem_rec_nec_store_wptr
+0x0dd2 mem_rec_nec_receive_data0
+0x0dd3 mem_rec_nec_receive_data1
+0x0dd4 mem_rec_nec_receive_data2
+0x0dd5 mem_rec_nec_receive_data
+0x0dd8 mem_rec_nec_data
+0x0dd9 mem_rec_nec_period
+0x0dda mem_rec_nec_duty
+0x0ddb mem_rec_nec_freq
+0x0ddc mem_rec_nec_carry_time
+0x0dde mem_rec_nec_learn_stime
+0x0de2 mem_rec_nec_learn_ntime
+0x0de6 mem_rec_nec_learn_outtime
+0x0dea mem_rec_nec_learn_succ
+0x0deb mem_rec_nec_learn_succ_ptr
+0x0ded mem_rec_nec_learn_send_flag
+0x0dee mem_rec_nec_led_state
+0x0def mem_rec_nec_led_blink_count
+0x0df0 mem_malloc_rec_end
+0x06e7 mem_le_test_sync
+0x06e9 mem_le_test_pcnt
+0x06eb mem_tst_pktcnt_crc
+0x06ed mem_tst_pktcnt_dmh
+0x06ef mem_tmp_buffer_head
+0x06f2 mem_tmp_buffer
+0x06e7 mem_usb_status
+0x06e9 mem_usb_fifo_empty
+0x06ea mem_usb_read_len
+0x06ec mem_usb_txbuf
+0x072d mem_usb_txbuf1
+0x0737 mem_usb_txbuf2
+0x0741 mem_usb_rxbuf
+0x0781 mem_usb_rxbuf_end
+0x0782 mem_bufptr
+0x0784 mem_remain
+0x0785 mem_hidreportdesc_kb
+0x0787 mem_hidreportdesc_m
+0x0789 mem_devicedesc
+0x079c mem_confdesc
+0x07d8 mem_string0
+0x07dd mem_string1
+0x07fb mem_string2
+0x0819 mem_string3
+0x0837 mem_cb_usb_config
+0x0839 mem_usb_tx_interval
+0x083a mem_usb_vid_pid
+0x0843 mem_usb_zero_packet
+0x0845 mem_usb_ones_packet
+0x0847 mem_usb_two_packet
+0x0849 mem_usb0_state
+0x084a mem_usb_offline_check_gpio
+0x084b mem_usb_clear_mem_start
+0x084b mem_usb_setup
+0x084b mem_usb_setup_bmRequestType
+0x084c mem_usb_setup_bRequest
+0x084d mem_usb_setup_bValue
+0x084e mem_usb_setup_bValueH
+0x084f mem_usb_setup_wIndex
+0x0851 mem_usb_setup_bLength
+0x0852 mem_usb_setup_bLengthH
+0x0853 mem_usb0_set_report_data
+0x0893 mem_usb0_get_report_data
+0x08d3 mem_usb_setup_bValue_temp
+0x08d5 mem_usb0_get_set_report
+0x08d6 mem_usb0_data_ready_report
+0x08d7 mem_usb_tx_win_enable
+0x08d8 mem_usb_tx_mac_enable
+0x08d9 mem_usb_idle_flag
+0x08da mem_usb_idle_rate
+0x08db mem_usb_get_protocol_flag
+0x08dc mem_usb_set_protocol_status
+0x08dd mem_usb_set_protocol_value
+0x08de mem_usb_state
+0x08df mem_usb_remote_wakeup
+0x08e0 mem_usb_clear_remote_wakeup
+0x08e1 mem_sdsystem_wakeup_flag
+0x08e2 mem_usb_ep0_stall_status
+0x08e3 mem_usb_ep1_stall_status
+0x08e4 mem_usb_ep2_stall_status
+0x08e5 mem_usb_ep3_stall_status
+0x08e6 mem_dsc_info_data_pointer
+0x08e8 mem_dsc_info_len
+0x08e9 mem_usb_ep1_data
+0x08ea mem_usb_ep2_data
+0x08eb mem_usb_tx_enable
+0x08ec mem_usb_device_enumeration_endflag
+0x08ed mem_usb_wakestate_onetime_flag
+0x08ee mem_usb_mac_wakeup_trig
+0x08ef mem_usb_set_high_addr_flag
+0x08f0 mem_usb_clear_halt
+0x08f1 mem_usb_mouse_data
+0x0901 mem_usb_kb_data
+0x0911 mem_usb_kb_n_key_rollvoer_data
+0x0921 mem_usb_kb_multikey
+0x0929 mem_usb_kb_system
+0x0931 mem_usb_test_cnt
+0x0933 mem_usb_test_kb
+0x093d mem_usb_clear_mem_end
+0x093d mem_usb_ccid_buf
+0x097d mem_dg_rssi_noise_buffer
+0x0a7d mem_dg_rssi_noise_dg_buffer
+0x0b7d mem_dg_rssi_noise_ms_buffer
+0x0c7d mem_dg_rssi_noise_kb_buffer
+
+0x019f mem_le_new_param
+0x019f mem_le_new_transmitwindowsize
+0x01a0 mem_le_new_transmitwindowoffset
+0x01a2 mem_le_new_conninterval
+0x01a4 mem_le_new_connslavelatency
+0x01a6 mem_le_new_connsupervisiontimeout
+0x019f mem_le_new_map
+0x019f mem_le_new_m2s_phy
+0x01a0 mem_le_new_s2m_phy
+0x004c mem_le_rxbuf_data_header
+0x004d mem_le_rxbuf_data_length
+0x004e mem_le_rxbuf_data_payload
+0x004c mem_le_rxbuf_data_ll_header
+0x004d mem_le_rxbuf_data_ll_length
+0x004e mem_le_rxbuf_data_ll_opcode
+0x004f mem_le_rxbuf_data_ll_control_data
+0x004c mem_le_rxbuf_adv_header
+0x004d mem_le_rxbuf_adv_length
+0x004e mem_le_rxbuf_adv_payload
+0x004c mem_le_rxbuf_adv_scan_req_header
+0x004d mem_le_rxbuf_adv_scan_req_length
+0x004e mem_le_rxbuf_adv_scan_req_scan_address
+0x0054 mem_le_rxbuf_adv_scan_req_adv_address
+0x004c mem_le_rxbuf_adv_connect_ind_header
+0x004d mem_le_rxbuf_adv_connect_ind_length
+0x004e mem_le_rxbuf_adv_connect_ind_init_address
+0x0054 mem_le_rxbuf_adv_connect_ind_adv_address
+0x005a mem_le_rxbuf_adv_connect_ind_access_address
+0x005e mem_le_rxbuf_adv_connect_ind_crc_init
+0x0061 mem_le_rxbuf_adv_connect_ind_win_size
+0x0062 mem_le_rxbuf_adv_connect_ind_win_offset
+0x0064 mem_le_rxbuf_adv_connect_ind_interval
+0x0066 mem_le_rxbuf_adv_connect_ind_latency
+0x0068 mem_le_rxbuf_adv_connect_ind_timeout
+0x006a mem_le_rxbuf_adv_connect_ind_channel_map
+0x006f mem_le_rxbuf_adv_connect_ind_hop_and_sca
+0x068f mem_le_search_handle_start
+0x0691 mem_le_search_handle_end
+0x0693 mem_le_att_offset
+0x0693 mem_le_search_att_type_length
+0x0694 mem_le_search_att_type
+0x06a4 mem_le_curr_att_len
+0x06a5 mem_le_cur_attlist_start_ptr
+0x06a7 mem_le_cur_handle_start
+0x06a9 mem_le_cur_handle_end
+0x06ab mem_le_cur_uuid_length
+0x06ac mem_le_cur_uuid
+0x06bc mem_le_cur_handle
+0x004c mem_le_rxbuf_data_att_header
+0x004d mem_le_rxbuf_data_att_length
+0x004e mem_le_rxbuf_data_att_l2cap_length
+0x0050 mem_le_rxbuf_data_att_cid
+0x0052 mem_le_rxbuf_data_att_opcode
+0x0053 mem_le_rxbuf_data_att_payload
+0x004c mem_le_rxbuf_data_continue_header
+0x004d mem_le_rxbuf_data_continue_length
+0x004e mem_le_rxbuf_data_continue_payload
+0x004c mem_le_rxbuf_data_att_write_header
+0x004d mem_le_rxbuf_data_att_write_length
+0x004e mem_le_rxbuf_data_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_att_write_cid
+0x0052 mem_le_rxbuf_data_att_write_opcode
+0x0053 mem_le_rxbuf_data_att_write_handle
+0x0055 mem_le_rxbuf_data_att_write_payload
+0x004c mem_le_rxbuf_data_prepare_att_write_header
+0x004d mem_le_rxbuf_data_prepare_att_write_length
+0x004e mem_le_rxbuf_data_prepare_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_prepare_att_write_cid
+0x0052 mem_le_rxbuf_data_prepare_att_write_opcode
+0x0053 mem_le_rxbuf_data_prepare_att_write_handle
+0x0055 mem_le_rxbuf_data_prepare_att_write_offset
+0x0057 mem_le_rxbuf_data_prepare_att_write_payload
+0x01db mem_otp_adc
+0x01e3 mem_otp_adc_ratio
+0x01e4 mem_otp_coordinate
+0x01eb mem_otp_core_ldo
+0x01ec mem_otp_verf_bg
+0x01ed mem_otp_charge_pump
+0x01ee mem_otp_dpll_ibais
+0x01ef mem_otp_temp1
+0x01f7 mem_otp_hv_sel
+0x01f8 mem_otp_ldo_vsel
+0x01f9 mem_otp_load_delay
+0x01fa mem_otp_load_check_sum
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4093 mem_current_amaddr
+0x4094 mem_lpm_mode
+0x4095 mem_last_clkn
+0x4099 mem_fcomp_div
+0x409a mem_rx_window_sniff
+0x409c mem_rf_init_ptr
+0x409e mem_rf_rccal
+0x409f mem_handle_num
+0x40a0 mem_chip_functions
+0x40a2 mem_lpm_wake_lock
+0x40a4 mem_lpm_interval
+0x40a6 mem_lpm_overhead
+0x40a7 mem_lpm_hibernate_switch
+0x40a8 mem_sniff_unint_lost
+0x40a9 mem_sleep_counter
+0x40ad mem_sleep_counter_all
+0x40b1 mem_sleep_clkn
+0x40b7 mem_sniff_rcv
+0x40ba mem_sniff_lost
+0x40bd mem_clks_per_lpo
+0x40c0 mem_lpm_mult
+0x40c1 mem_lpm_mult_timeout
+0x40c2 mem_lpm_mult_cnt
+0x40c3 mem_lpm_xtalcnt
+0x40c4 mem_lpm_buckcnt
+0x40c5 mem_lpm_ldocnt
+0x40c6 mem_lpm_isogate
+0x40c7 mem_lpm_isogate_stage2
+0x40c8 mem_lpm_isogate_final
+0x40c9 mem_lpm_ldo_sel
+0x40ca mem_lpm_sysctl
+0x40cb mem_lpm_hv_sel
+0x40cc mem_saved_gpio
+0x40e4 mem_saved_gsel
+0x40e7 mem_saved_mark
+0x40ef mem_saved_spidctrl
+0x40f0 mem_patch_ptr
+0x40f2 mem_patch_len
+0x40f4 mem_timers
+0x4114 mem_hci_cmd
+0x4115 mem_hci_conn_handle
+0x4116 mem_hci_plap
+0x4119 mem_hci_puap
+0x411a mem_hci_pnap
+0x411c mem_xtal_c_sel
+0x411d mem_ghpc_table
+0x4135 mem_aac_res_table
+0x4141 mem_tx_power
+0x4142 mem_modem_rssi
+0x4143 mem_gain_fix
+0x4144 mem_gain_table
+0x4147 mem_gain_second_agc_en
+0x4148 mem_system_clk
+0x4149 mem_rf_init_data
+0x415d mem_otp_charge_pump_x
+0x415e mem_otp_dpll_ibais_x
+0x415f mem_xtal_freq
+0x4160 mem_version
+0x4161 mem_company_id
+0x4163 mem_sub_version
+0x4165 mem_le_dsniff
+0x4167 mem_le_conn_interval
+0x4169 mem_le_tx_ifs_defference
+0x416a mem_le_tx2m_delay
+0x416b mem_le_txheader
+0x416c mem_le_txlen
+0x416d mem_le_txpayload
+0x426d mem_le_name_len
+0x426e mem_le_name
+0x428c mem_le_ltk
+0x429c mem_ltk_exists
+0x429d mem_le_rconfirm
+0x42ad mem_le_srand
+0x42bd mem_le_iat
+0x42be mem_le_rat
+0x42bf mem_le_preq
+0x42c0 mem_le_preq_iocap
+0x42c1 mem_le_preq_oob
+0x42c2 mem_le_preq_auth
+0x42c3 mem_le_preq_max_keysize
+0x42c4 mem_le_preq_init_key_distribution
+0x42c5 mem_le_preq_resp_key_distribution
+0x42c6 mem_le_pres
+0x42c7 mem_le_pres_iocap
+0x42c8 mem_le_pres_oob
+0x42c9 mem_le_pres_auth
+0x42ca mem_le_pres_max_keysize
+0x42cb mem_le_pres_init_key_distribution
+0x42cc mem_le_pres_resp_key_distribution
+0x42cd mem_le_conn_param
+0x42cd mem_le_conn_peer_addr_type
+0x42ce mem_le_conn_peer_addr
+0x42d4 mem_le_conn_own_addr_type
+0x42d5 mem_le_interval_min
+0x42d7 mem_le_interval_max
+0x42d9 mem_le_latency
+0x42db mem_le_timeout
+0x42dd mem_le_lap
+0x42e0 mem_le_uap
+0x42e1 mem_le_nap
+0x42e3 mem_le_local_mtu
+0x42e5 mem_le_remote_mtu
+0x42e7 mem_le_skdm
+0x42ef mem_le_skds
+0x42f7 mem_le_init_superto
+0x42f9 mem_ui_le_uuid_table
+0x42fb mem_le_secure_connect_flag
+0x42fc mem_le_secure_connect_state
+0x42fd mem_le_sc_confirm_gkey_flag
+0x42fe mem_le_pairing_state
+0x42ff mem_le_enc_state
+0x4300 mem_le_pairing_mode
+0x4301 mem_le_tk
+0x4305 mem_le_ediv
+0x4307 mem_le_rand
+0x430f mem_le_irk
+0x431f mem_le_transmit_window
+0x4323 mem_le_configuration
+0x4324 mem_le_fixed_ltk
+0x4334 mem_le_pairing_handle
+0x4336 mem_le_packet_llid
+0x4337 mem_le_l2cap_size
+0x4339 mem_le_packet_len_recved
+0x433b mem_le_payload_ptr
+0x433d mem_le_testtype
+0x433e mem_cmd_le_create_conn
+0x433f mem_le_signaling_identifier
+0x4340 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x4342 mem_le_md_count
+0x4343 mem_ble_l2cap_tx_buff0_ptr
+0x4345 mem_ble_l2cap_tx_buff_size_ptr
+0x4347 mem_le_scan_enable
+0x4348 mem_le_scan_interval
+0x434a mem_le_scan_window
+0x434c mem_le_adv_data_len
+0x434d mem_le_adv_data
+0x436c mem_le_scan_data_len
+0x436d mem_le_scan_data
+0x438c mem_le_adv_enable
+0x438d mem_le_adv_param
+0x438d mem_le_adv_interval
+0x438f mem_le_adv_type
+0x4390 mem_le_adv_own_addr_type
+0x4391 mem_le_adv_direct_addr
+0x4397 mem_le_adv_channel_map
+0x4398 mem_le_scan_params
+0x4398 mem_le_scan_type
+0x4399 mem_le_scan_own_addr_type
+0x439a mem_le_l2cap_att_states
+0x439b mem_le_att_opcode
+0x439c mem_le_att_handle
+0x439e mem_le_search_res
+0x439f mem_le_notify_handle
+0x43a1 mem_le_search_uuid_length
+0x43a2 mem_le_search_uuid
+0x43b2 mem_le_local_feature
+0x43ba mem_le_tx_phys
+0x43bb mem_le_rx_phys
+0x43bc mem_remote_rx_max_octets
+0x43be mem_remote_rx_max_time
+0x43c0 mem_remote_tx_max_octets
+0x43c2 mem_remote_tx_max_time
+0x43c4 mem_local_rx_max_octets
+0x43c6 mem_local_rx_max_time
+0x43c8 mem_local_tx_max_octets
+0x43ca mem_local_tx_max_time
+0x43cc mem_ucode_ptr
+0x43ce mem_ucode_flag
+0x43cf mem_device_option
+0x43d0 mem_peripheral_lock_flag
+0x43d1 mem_bistfix_val
+0x43d1 mem_bistfix_addr_sched
+0x43d3 mem_bistfix_addr_x
+0x43d5 mem_bistfix_addr_patch
+0x43d7 mem_bistfix_val_xram
+0x43d8 mem_bistfix_val_patchram
+0x43dc mem_cb_check_wakelock
+0x43de mem_cb_before_hibernate
+0x43e0 mem_cb_before_lpm
+0x43e2 mem_cb_le_process
+0x43e4 mem_cb_idle_process
+0x43e6 mem_cb_bb_event_process
+0x43e8 mem_cb_att_write
+0x43ea mem_cb_ble_transmit
+0x43ec mem_cb_event_timer
+0x43ee mem_cb_bt_set_mult
+0x43f0 mem_cb_spi_flash_write_complate
+0x43f2 mem_cb_before_lpm_sleep
+0x43f4 mem_eeprom_base
+0x43f6 mem_wake_up_delay_timer
+0x43f7 mem_app_connection_options
+0x43f8 mem_app_disconn_reason
+0x43fa mem_app_disconn_reason_flag
+0x43fc mem_xrecord_mode
+0x43fd mem_eeprom_block_size
+0x43fe mem_spi_init_clk
+0x43ff mem_spi_init_delay_time
+0x4400 mem_spi_ncs_gpio
+0x4401 mem_nv_data_ptr
+0x4403 mem_nv_data_number
+0x4404 mem_queue_ptr
+0x4406 mem_reference_inter1p8v_2v_adc_io_data
+0x4408 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0x440a mem_reference_inter1p8v_1v_adc_io_data
+0x440c mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0x440e mem_adc_reference3v_ft_data
+0x440e mem_adc_reference3v_gpio1v_ft_data
+0x4410 mem_adc_reference3v_gpio2v_ft_data
+0x4412 mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4414 mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4416 mem_adc_reference3v_inter1v_ft_data
+0x4418 mem_adc_reference3v_inter1v_now_data
+0x441a mem_adc_reference_mode
+0x441b mem_reference_voltage
+0x441d mem_adc_config_flag
+0x441e mem_adc_channel
+0x441f mem_adc_clkdiv
+0x4420 mem_adc_current_value
+0x4422 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4423 mem_adc_saddr_ptr
+0x4425 mem_adc_eaddr_ptr
+0x4427 mem_adc_dma_enable
+0x4428 mem_adc_cal_c0
+0x4429 mem_adc_cal_c1
+0x442a mem_adc_cal_c2
+0x442b mem_adc_cal_c3
+0x442c mem_adc_cal_c4
+0x442d mem_adc_cal_c5
+0x442e mem_adc_cal_c6
+0x442f mem_adc_cal_c7
+0x4430 mem_spi_write_addr
+0x4433 mem_spi_write_ptr
+0x4435 mem_spi_write_len
+0x4437 mem_spi_write_flash_sm
+0x4438 mem_spi_cs_gpio
+0x4439 mem_spi_si_gpio
+0x443a mem_spi_so_gpio
+0x443b mem_spi_sclk_gpio
+0x443c mem_spi_wp_gpio
+0x443d mem_spi_hold_gpio
+0x443e mem_eeprom_wp_gpio
+0x443f mem_eeprom_scl_gpio
+0x4440 mem_eeprom_sda_gpio
+0x4441 mem_kscan_ptr
+0x4443 mem_key_num_ptr
+0x4443 mem_keyscan_ptr
+0x4445 mem_key_value_retention
+0x4447 mem_power_param_ptr
+0x4449 mem_seqi
+0x444a mem_set_cdb_on
+0x444b mem_syn_cal_ctrl
+0x444c mem_nec_decode_error_value
+0x444d mem_wdt_always_work
+0x444e mem_power_ctrl_disable
+0x444f mem_ring_ibias_trim
+0x4450 mem_ring_ibias_vtune_low
+0x4452 mem_ring_ibias_vtune_high
+0x4454 mem_ring_ibias_calc_adc_gpio
+0x4455 mem_ring_ibias_calc_adc_channel
+0x4456 mem_rf_debug_rx_gpio
+0x4457 mem_rf_debug_tx_gpio
+0x4458 mem_l2cap_xmem_start
+0x4458 mem_used_map
+0x4459 mem_tx_fifo0
+0x4459 mem_tx_fifo0_map
+0x445a mem_tx_fifo0_ptr
+0x445c mem_tx_fifo1
+0x445c mem_tx_fifo1_map
+0x445d mem_tx_fifo1_ptr
+0x445f mem_tx_fifo2
+0x445f mem_tx_fifo2_map
+0x4460 mem_tx_fifo2_ptr
+0x4462 mem_tx_fifo3
+0x4462 mem_tx_fifo3_map
+0x4463 mem_tx_fifo3_ptr
+0x4465 mem_tx_fifo_end
+0x4465 mem_l2cap_lpm_txbuf_ptr
+0x4467 mem_l2cap_xmem_end
+0x4467 mem_ccm_pcnt_tx
+0x446c mem_ccm_pcnt_rx
+0x4471 mem_ccm_last_mic
+0x4475 mem_ccm_iv
+0x4475 mem_ccm_ivm
+0x4479 mem_ccm_ivs
+0x447d mem_ccm_len
+0x447f mem_ccm_rx_ptr
+0x4481 mem_sc_only_mode
+0x4482 mem_sp_debug_mode
+0x4483 mem_secure_connections_enable
+0x4484 mem_sc_calc
+0x4485 mem_sc_local_key_invalid
+0x4486 mem_sc_private_key_256
+0x44a6 mem_sc_pubkey_local_x_256
+0x44c6 mem_sc_pubkey_local_y_256
+0x44e6 mem_sp_state_xmem
+0x44e6 mem_authentication_passkey_times
+0x44e7 mem_passkey_1bit
+0x44e8 mem_sp_state_xmem_end
+0x44e8 mem_ipc_lock_bt
+0x44e9 mem_ipc_lock_c51
+0x44ea mem_ipc_fifo_bt2c51
+0x44f2 mem_ipc_fifo_c512bt
+0x44fa mem_ui_button_timer
+0x44fb mem_ui_button_last_state
+0x44fc mem_ui_timer_last_btclk
+0x4500 mem_ui_state_map
+0x4502 mem_ui_button_timeout
+0x4503 mem_ui_button_gpio
+0x4504 mem_ui_led_init_state_set
+0x4505 mem_ui_led_struct_num
+0x4506 mem_ui_led_struct_ptr
+0x4508 mem_24g_lap
+0x450e mem_24g_rxbuf
+0x4530 mem_24g_txbuf
+0x4550 mem_24g_txpayload
+0x4574 mem_24g_rxpayload
+0x4594 mem_24g_rxdata_length
+0x4595 mem_24g_pid
+0x4596 mem_24g_no_ack
+0x4597 mem_24g_sta_crc
+0x459a mem_24g_last_crc
+0x459d mem_24g_sta_pid
+0x459e mem_24g_last_pid
+0x459f mem_24g_datalen
+0x45a0 mem_24g_data_type
+0x45a1 mem_24g_txlen
+0x45a2 mem_24g_rx_window
+0x45a4 mem_24g_ch
+0x45a5 mem_24g_current_ch_number
+0x45a6 mem_24g_addr
+0x45aa mem_24g_ch_map1
+0x45ae mem_24g_ch_map2
+0x45b2 mem_24g_ch_map3
+0x45b6 mem_24g_ch_map4
+0x45ba mem_24g_tx_btclk
+0x45be mem_24g_interval
+0x45bf mem_24g_interval_min
+0x45c0 mem_24g_interval_max
+0x45c1 mem_24g_syncword
+0x45c3 mem_24g_syncword_crc8
+0x45c4 mem_24g_get_syncword_crc8
+0x45c5 mem_24g_pair_switch
+0x45c6 mem_24g_enter_hibernate
+0x45ce mem_24g_rx_phy
+0x45cf mem_24g_tx_phy
+0x45d0 mem_24g_ch_map_update
+0x45d1 mem_24g_ch_update_map1
+0x45d5 mem_24g_ch_update_map2
+0x45d9 mem_24g_ch_update_map3
+0x45dd mem_24g_ch_update_map4
+0x45e1 mem_24g_disable_fec1
+0x45e2 mem_24g_off_type
+0x45e3 mem_24g_pair_addr
+0x45e7 mem_24g_pair_ch
+0x45e8 mem_24g_pair_tx_power
+0x45e9 mem_rssi_buff_index
+0x45ea mem_24g_device1_bind_step
+0x45eb mem_24g_device2_bind_step
+0x45ec mem_24g_bind_device_status
+0x45ed mem_24g_bind_payload
+0x45f5 mem_24g_device1_bind_disable
+0x45f6 mem_24g_device2_bind_disable
+0x45f7 mem_cb_24g_receive_process
+0x45f9 mem_cb_24g_ackpayload
+0x45fb mem_cb_24g_data_device1
+0x45fd mem_cb_24g_data_device2
+0x45ff mem_24g_rxdata_temp
+0x4621 mem_24g_abort_packet
+0x4622 mem_24g_hop_btclk
+0x4626 mem_24g_hop_interval
+0x4627 mem_24g_pair_mode
+0x4628 mem_24g_ackpayload_enable
+0x4629 mem_24g_hop_packet
+0x462a mem_24g_mode_switch
+0x462b mem_24g_nodata_timer_enable
+0x462c mem_24g_mode_init
+0x462d mem_24g_work_mode
+0x462e mem_24g_time_slice
+0x462f mem_24g_self_last_ch
+0x4630 mem_24g_self_ch_number
+0x4631 mem_24g_self_config_ch_once
+0x4632 mem_24g_device1_last_ch
+0x4633 mem_24g_device1_ch_number
+0x4634 mem_24g_device1_config_ch_once
+0x4635 mem_24g_device2_last_ch
+0x4636 mem_24g_device2_ch_number
+0x4637 mem_24g_device2_config_ch_once
+0x4638 mem_24g_led_status
+0x4639 mem_24g_bind_mode_continue
+0x463a mem_tx_power_temp
+0x463b mem_24g_mode_B_S_switch
+0x463c mem_24g_mode_B_S_switch_init
+0x463d mem_24g_mode_B_S_switch_cnt
+0x463f mem_24g_mode_B_S_switch_exit
+0x4640 mem_24g_B_S_time_slice
+0x4641 mem_24g_B_S_mode_switch_disable
+0x4642 mem_24g_bind_device_living
+0x4643 mem_24g_transmitter_addr
+0x4647 mem_24g_device1_addr
+0x464b mem_24g_device2_addr
+0x464f mem_rssi_noise_avg
+0x4650 mem_rssi_noise_index
+0x4651 mem_rssi_noise_self_avg
+0x4652 mem_rssi_noise_device1_avg
+0x4653 mem_rssi_noise_device2_avg
+0x4654 mem_rssi_noise_self_index
+0x4655 mem_rssi_noise_device1_index
+0x4656 mem_rssi_noise_device2_index
+0x4657 mem_rssi_noise_buffer_ptr
+0x4659 mem_rssi_noise_self_buffer_ptr
+0x465b mem_rssi_noise_device1_buffer_ptr
+0x465d mem_rssi_noise_device2_buffer_ptr
+0x465f mem_car_le_24g_tx_pair_mode
+0x4660 mem_car_le_24g_ch_count
+0x4662 mem_car_24g_addr_other
+0x4666 mem_car_24g_tx_payload_temp
+0x4672 mem_car_24g_rx_payload_temp
+0x467e mem_car_24g_loselink_count
+0x467f mem_car_ble_connted_flag
+0x4680 mem_car_full_control_remote_lap
+0x4684 mem_100ms_adv_control_timer
+0x4686 mem_100ms_factory_test_control_timer
+0x4688 mem_pwm_flag
+0x4689 mem_period_count
+0x468a mem_timer_count
+0x468b mem_car_motor_gpio_num
+0x468c mem_car_motor_gpio_map
+0x468c mem_car_motor_left_gpio
+0x468d mem_car_motor_right_gpio
+0x468e mem_car_motor_front_gpio
+0x468f mem_car_motor_back_gpio
+0x4690 mem_car_pwm_gpio
+0x4691 mem_otp_lot_xy_temp
+0x4697 mem_f_flag
+0x4698 mem_b_flag
+0x4699 mem_adv_control_start_flag
+0x469a mem_stop_4w1_flag
+0x469b mem_factory_control_flag
+0x469c mem_car_gpio_control_mode
+0x469d mem_car_le_queue_each_size
+0x469e mem_car_le_queue_length
+0x469f mem_car_le_queue_current_num
+0x46a0 mem_car_le_queue_read_ptr
+0x46a1 mem_car_le_queue_write_ptr
+0x46a2 mem_car_le_queue_ele
+0x46f2 mem_car_ble_write_data
+0x46fd mem_car_ble_att_list
+0x488d mem_otp_sys_cfg_temp
+0x48c9 mem_ad_indexTable
+0x48d9 mem_ad_stepsizeTable
+0x4a3d mem_ad_state_valpred
+0x4a41 mem_ad_state_index
+0x4a45 mem_ad_in_numSamples
+0x4a46 mem_ad_in_ptr
+0x4a48 mem_ad_out_ptr
+0x4a4a mem_ad_sign
+0x4a4b mem_ad_delta
+0x4a4c mem_ad_step
+0x4a50 mem_ad_valpred
+0x4a54 mem_ad_index
+0x4a58 mem_ad_vpdiff
+0x4a5c mem_ad_inputbuffer
+0x4a60 mem_ad_bufferstep
+0x465f mem_dg_kb_bind_flag
+0x4660 mem_dg_kb_data_sta_data
+0x4668 mem_dg_kb_data_last_data
+0x4670 mem_dg_kb_multikey_sta_data
+0x4673 mem_dg_kb_multikey_last_data
+0x4676 mem_dg_kb_system_sta_data
+0x4679 mem_dg_kb_system_last_data
+0x467c mem_dg_kb_blank_data_enable
+0x467d mem_dg_kb_mul_blank_data_enable
+0x467e mem_dg_kb_system_crtl_blank_data_enable
+0x467f mem_dg_ms_blank_data_enable
+0x4680 mem_dg_sys_config
+0x4681 mem_dg_usb_vid_pid
+0x468a mem_dg_usb_tx_interval
+0x468b mem_dg_usb_device_name
+0x46ab mem_dg_kb_bind_success
+0x46ac mem_dg_pc_sleep_flag
+0x46ad mem_dg_24g_tx_power_default
+0x46ae mem_dg_kb_bit_consumer_blank_data_enable
+0x46af mem_dg_kb_bit_consumer_sta_data
+0x46b3 mem_dg_kb_bit_consumer_last_data
+0x46b7 mem_dg_device_version
+0x45ea mem_rssi_hex_received
+0x45eb mem_24g_pair_sm
+0x45ec mem_24g_pair_no_ack
+0x45ed mem_24g_pair_timeout_init
+0x45ef mem_24g_pair_timeout
+0x45f1 mem_24g_pair_count
+0x45f3 mem_24g_reconn_timeout_init
+0x45f5 mem_24g_reconn_timeout
+0x45f7 mem_24g_reconn_count
+0x45f9 mem_24g_reconn_type
+0x45fa mem_24g_fast_conn_enable
+0x45fb mem_24g_fast_conn_addr
+0x45ff mem_24g_receiver_addr
+0x4603 mem_24g_fast_conn_temp_ch
+0x4604 mem_24g_receiver_temp_ch
+0x4605 mem_24g_device_temp_ch
+0x4606 mem_rssi_signal_index
+0x4607 mem_rssi_signal_buf_ptr
+0x4609 mem_cb_24g_transmit_data
+0x460b mem_cb_24g_search_receiver
+0x460d mem_cb_24g_lpm_before
+0x460f mem_cb_24g_transmit_short_sleep
+0x4611 mem_cb_24g_transmit_long_sleep
+0x4613 mem_24g_conn_sm
+0x4614 mem_24g_ensure
+0x4615 mem_24g_txfail_cnt
+0x4617 mem_24g_attempt_fail_flag
+0x4618 mem_24g_retry
+0x4619 mem_24g_abort_pac
+0x461a mem_24g_max_retry
+0x461b mem_24g_device_addr
+0x461f mem_24g_short_sleep_set
+0x4622 mem_24g_long_sleep_set
+0x462a mem_24g_long_sleep_set1
+0x462e mem_24g_pac_index
+0x462f mem_24g_transmit_by_interrupt
+0x4630 mem_24g_transmit_by_interrupt_exit_count
+0x4632 mem_24g_transmit_by_interrupt_exit_count_init
+0x4634 mem_24g_long_sleep_param_update_timer_init
+0x4636 mem_24g_long_sleep_param_update_timer
+0x4638 mem_24g_fast_hop_count
+0x4639 mem_24g_retransmit
+0x463b mem_rssi_avg_received
+0x463c mem_power_ctrl_level
+0x463d mem_power_ctrl_pac_succ_cnt
+0x463e mem_power_ctrl_pac_succ_cnt_init
+0x463f mem_rssi_dis_min_24g
+0x4640 mem_rssi_dis_max_24g
+0x4641 mem_rssi_hex_received_max_value
+0x4642 mem_rssi_dis_min_ble
+0x4643 mem_rssi_dis_max_ble
+0x4644 mem_device_vdd_calculate_set
+0x4644 mem_device_vdd_full_vol
+0x4646 mem_device_vdd_empty_vol
+0x4648 mem_device_vdd_low_vol
+0x464a mem_device_vdd_now_vol
+0x464c mem_adc_channel_gpio
+0x464d mem_adc_low_volatage_led_timer_count
+0x464e mem_device_adc_last_low_voltage_flag
+0x464f mem_device_discovery_timeout
+0x4651 mem_device_24g_pair_timeout_init
+0x4653 mem_device_direct_timeout
+0x4654 mem_device_24g_reconn_timeout_init
+0x4655 mem_device_24g_pair_tx_power
+0x4656 mem_device_normal_tx_power
+0x4657 mem_rssi_dis_min_24g_init
+0x4658 mem_rssi_dis_max_24g_init
+0x4659 mem_rssi_hex_received_max_value_init
+0x465a mem_rssi_dis_min_ble_init
+0x465b mem_rssi_dis_max_ble_init
+0x465c mem_mouse_key
+0x465d mem_mouse_x
+0x465f mem_mouse_y
+0x4661 mem_mouse_z
+0x4662 mem_mouse_tz
+0x4663 mem_mouse_xy_h
+0x4664 mem_mouse_key_last
+0x4665 mem_device_switch_gpio
+0x4666 mem_device_reuse_2ice_gpio
+0x4667 mem_sensor_motion_gpio
+0x4668 mem_whee_a_data_gpio
+0x4669 mem_whee_b_data_gpio
+0x466a mem_wheel_tb_old_pinlevel
+0x466b mem_wheel_tb_new_pinlevel
+0x466c mem_wheel_tog
+0x466d mem_mouse_tz_data
+0x466e mem_mwheel_b_old_pinlevel
+0x466f mem_mwheel_b_new_pinlevel
+0x4670 mem_mwheel_tog
+0x4671 mem_mouse_z_data
+0x4672 mem_mouse_wheel_trigger
+0x4673 mem_mouse_wheel_trigger_timer
+0x4674 mem_wire_usb_interval
+0x4675 mem_usb_addr
+0x4676 mem_usb_vdd_status
+0x4677 mem_usb_keyboard_flag
+0x4678 mem_device_information_start
+0x4678 mem_device_flag
+0x4679 mem_device1_type
+0x467a mem_device1_addr
+0x4680 mem_device1_locall_addr
+0x4686 mem_device2_type
+0x4687 mem_device2_addr
+0x468d mem_device2_locall_addr
+0x4693 mem_device3_type
+0x4694 mem_device3_addr
+0x469a mem_device3_locall_addr
+0x46a0 mem_store_flag
+0x46a2 mem_mouse_dpi
+0x46a3 mem_device_24g_addr
+0x46a7 mem_random_addr_increase_count
+0x46a9 mem_keyboard_24g_fn_lock
+0x46aa mem_keyboard_bt1_fn_lock
+0x46ab mem_keyboard_bt2_fn_lock
+0x46ac mem_keyboard_bt3_fn_lock
+0x46ad mem_keyboard_usb_fn_lock
+0x46ae mem_keyboard_bt1_computer_system
+0x46af mem_keyboard_bt2_computer_system
+0x46b0 mem_keyboard_bt3_computer_system
+0x46b1 mem_backlight_on_flag
+0x46b2 mem_backlight_on_type
+0x46b3 mem_backlight_on_level
+0x46b4 mem_backlight_breath_speed
+0x46b5 mem_mouse_retention
+0x46f8 mem_device_information_end
+0x46f8 mem_device_compare_addr
+0x46fe mem_flash_base
+0x4701 mem_write_flash_head_temp
+0x4705 mem_store_information_delay_timer
+0x4706 mem_store_information_delay_timer_init
+0x4707 mem_device_search_dongle_interval
+0x4708 mem_device_search_dongle_ch
+0x4709 mem_device_search_dongle_count
+0x470a mem_device_search_dongle_action
+0x470b mem_24g_enter_lpm_timer
+0x470c mem_mouse_24g_enter_lpm_enable
+0x470d mem_keyboard_led_status
+0x470e mem_mouse_flag
+0x4716 mem_device_number
+0x4717 mem_device_flag_temp
+0x4718 mem_device_otp_flag_temp
+0x4719 mem_device_fast_direct_timeout
+0x471a mem_device_24g_power_on_fast_conn_timer
+0x471c mem_device_24g_search_dongle_time_init
+0x471e mem_device_no_data_timeout
+0x4720 mem_device_direct_timer
+0x4721 mem_customer_key_press
+0x472b mem_customer_key
+0x472c mem_customer_data_trigger
+0x472d mem_customer_data_trigger_last
+0x472e mem_device_set_analog_bit_set
+0x4731 mem_bt_discovery_count
+0x4732 mem_select_device_count
+0x4733 mem_mouse_commbination_key
+0x4734 mem_select_device_button_statue
+0x4735 mem_commbination_key_statue
+0x4736 mem_combination_ui_button_count
+0x4737 mem_24g_shutdown_flag
+0x4738 mem_24g_long_sleep_set_level
+0x4739 mem_tx_power_factory_param
+0x473b mem_mouse_24g_long_sleep_flag
+0x473c mem_mouse_long_mult_count
+0x473d mem_mouse_long_mult_flag
+0x473e mem_mouse_current_mult_timer
+0x473f mem_reconn_times
+0x4740 mem_reconn_times_init
+0x4741 mem_device_no_data_timer
+0x4743 mem_mouse_rssi_signal_buf
+0x474b mem_btclk_sensor
+0x474f mem_device_fast_conn_flag
+0x4750 mem_device_discovery_timer
+0x4752 mem_device_need_soft_reset
+0x4753 mem_device_le_bb_connected_flag
+0x4754 mem_device_le_reconnect_flag
+0x4755 mem_device_send_secutiry_request_timer
+0x4756 mem_device_le_lap_temp
+0x4759 mem_le_adv_ind
+0x475c mem_le_adv_direct_ind
+0x475f mem_le_adv_swift_pair
+0x4773 mem_le_data_len
+0x4774 mem_le_keyboard_handle
+0x4776 mem_le_multimedia_handle
+0x4778 mem_le_systemctrl_handle
+0x477a mem_le_battery_level_handle
+0x477c mem_le_battery_level_percentage
+0x477d mem_le_battery_level_updata_timer_init
+0x477f mem_le_battery_level_updata_timer
+0x4781 mem_le_conn_param_reject
+0x4782 mem_le_tx_buffer0_omemalloc
+0x47c2 mem_le_tx_buffer1_omemalloc
+0x4802 mem_le_tx_buffer2_omemalloc
+0x4842 mem_le_tx_buffer3_omemalloc
+0x4882 mem_le_connect_status_flag
+0x4883 mem_le_start_encrypt_timer
+0x4884 mem_device_addr_temp
+0x488b mem_lpm_mult_init
+0x488c mem_qdec_set_flag
+0x488d mem_power_on_flag
+0x488e mem_keyboard_flag
+0x4896 mem_keyboard_switch_count_temp
+0x4897 mem_keyboard_switch_device_to_g24
+0x489a mem_keyboard_switch_device_to_bt1
+0x489d mem_keyboard_switch_device_to_bt2
+0x48a0 mem_keyboard_switch_device_to_bt3
+0x48a3 mem_keyboard_switch_device_to_usb
+0x48a6 mem_keyboard_switch_device_flag
+0x48a7 mem_keyboard_switch_g24_enable
+0x48a8 mem_keyboard_switch_bt_enable
+0x48a9 mem_keyboard_switch_g24_press_timer
+0x48aa mem_keyboard_switch_bt_press_timer
+0x48ab mem_keyboard_vdd_full_vol
+0x48ad mem_keyboard_vdd_empty_vol
+0x48af mem_keyboard_vdd_low_vol
+0x48b1 mem_keyboard_power_type
+0x48b2 mem_rgb_pwm_conf
+0x48b8 mem_rgb_pwm_breathe_flag
+0x48b9 mem_rgb_on_color_temp
+0x48ba mem_rgb_on_color
+0x48c1 mem_pwm_lpm_mode_flag
+0x48c2 mem_keyboard_rgb_on_timer
+0x48c4 mem_ui_check_timer_setup
+0x48c8 mem_customize_timer_setup
+0x48ca mem_backlight_breathe_type
+0x48cb mem_keyboard_le_lap_temp
+0x48ce mem_keyboard_le_change_vid_pid_flag
+0x48cf mem_keybaord_le_pnp_vid_source
+0x48d0 mem_keyboard_le_vid
+0x48d2 mem_keyboard_le_pid
+0x48d4 mem_keyboard_le_product_version
+0x48d6 mem_keyboard_le_hid_map
+0x48d8 mem_keyboard_blob_response_consumer_customize
+0x48ee mem_le_search_service_uuid
+0x48fe mem_le_connect_ios_mac_flag
+0x48ff mem_le_search_mac_uuid
+0x4901 mem_le_search_mac_manu_name
+0x490a mem_keybord_appearance
+0x490c mem_keyboard_le_send_conn_param_update
+0x490d mem_keyboard_le_send_conn_param_update_timer
+0x490e mem_le_start_auto_reco_timer
+0x490f mem_keyboard_pb_button_gpio
+0x4910 mem_mcu_stb_gpio
+0x4911 mem_mcu_clk_gpio
+0x4912 mem_mcu_rstb_gpio
+0x4913 mem_keyboard_num_led_gpio
+0x4914 mem_keyboard_caps_led_gpio
+0x4915 mem_keyboard_scroll_led_gpio
+0x4916 mem_keyboard_power_led_gpio
+0x4917 mem_keyboard_low_voltage_alarm_gpio
+0x4918 mem_keyboard_24g_led_gpio
+0x4919 mem_keyboard_bt1_led_gpio
+0x491a mem_keyboard_bt2_led_gpio
+0x491b mem_keyboard_bt3_led_gpio
+0x491c mem_keyboard_led_r_gpio
+0x491d mem_keyboard_led_g_gpio
+0x491e mem_keyboard_led_b_gpio
+0x491f mem_key_row_gpio
+0x4927 mem_key_col_gpio
+0x493c mem_key_excol_gpio
+0x4948 mem_kb_row_ptr
+0x494a mem_kb_col_ptr
+0x494c mem_kb_excol_ptr
+0x494e mem_keyscan_value_current
+0x4963 mem_keyscan_value_check
+0x4978 mem_keyscan_value_old
+0x498d mem_keyscan_exmcu_value
+0x4998 mem_keyscan_value_ptr
+0x499a mem_keyscan_exmcu_value_ptr
+0x499c mem_keyscan_value_temp
+0x499d mem_keyscan_col_loop_count
+0x499e mem_keyscan_exmcu_wait_wake_count
+0x49a0 mem_same_keyvalue_timerout_flag
+0x49a1 mem_same_keyvalue_timer_init
+0x49a3 mem_same_keyvalue_timer
+0x49a5 mem_keyboard_current_col_press_key_count
+0x49a6 mem_keyboard_all_press_key_count
+0x49a7 mem_keyboard_same_row_press_key_count
+0x49a8 mem_keyboard_ghost_flag
+0x49a9 mem_keyboard_data_change_flag
+0x49aa mem_keyboard_keyvalue_temp
+0x49ab mem_keyboard_press_flag_temp
+0x49ac mem_keyboard_keyvalue_bit_loop_count
+0x49ad mem_keyboard_keyvalue_buffer
+0x49b7 mem_keboard_n_key_rollover_send_flag
+0x49b8 mem_keyboard_n_key_rollover_data
+0x49c7 mem_keyboard_keyvalue_map
+0x4a6f mem_keyboard_tx_data
+0x4a79 mem_keyboard_data_send_flag
+0x4a7a mem_keyboard_fn_flag
+0x4a7b mem_keyboard_control_key_flag
+0x4a7c mem_keyboard_alt_flag
+0x4a7d mem_keyboard_shift_flag
+0x4a7e mem_keyboard_bt_button_flag
+0x4a7f mem_keyboard_pairing_type
+0x4a80 mem_24g_repeat_send_flag
+0x4a81 mem_keyboard_led_status_get
+0x4a82 mem_keyboard_led_status_get_timer
+0x4a83 mem_keyboard_led_status_get_timer_last
+0x4a84 mem_keyboard_fn_esc_f1_f12
+0x4a84 mem_keyboard_fn_first
+0x4a85 mem_keyboard_fn_esc
+0x4a86 mem_keyboard_fn_f1
+0x4a87 mem_keyboard_fn_f2
+0x4a88 mem_keyboard_fn_f3
+0x4a89 mem_keyboard_fn_f4
+0x4a8a mem_keyboard_fn_f5
+0x4a8b mem_keyboard_fn_f6
+0x4a8c mem_keyboard_fn_f7
+0x4a8d mem_keyboard_fn_f8
+0x4a8e mem_keyboard_fn_f9
+0x4a8f mem_keyboard_fn_f10
+0x4a90 mem_keyboard_fn_f11
+0x4a91 mem_keyboard_fn_f12
+0x4a92 mem_keyboard_fn_del
+0x4a93 mem_keyboard_fn_lock_flag
+0x4a94 mem_keyboard_fn_lock_keyvalue
+0x4a95 mem_keyboard_commbination_key_bt
+0x4a97 mem_keyboard_commbination_key_24g
+0x4a99 mem_keyboard_commbination_fast_conn_bt
+0x4a9b mem_keyboard_commbination_press_type
+0x4a9c mem_keyboard_commbination_key_step
+0x4a9d mem_keyboard_commbination_control_key_value
+0x4a9e mem_keyboard_commbination_standard_key_value
+0x4a9f mem_keyboard_commbination_control_key_delay_release_timer
+0x4aa0 mem_keyboard_consumer_key_status
+0x4aa1 mem_kb_computer_system
+0x4aa2 mem_keyboard_device_info_store_flag
+0x4aa3 mem_otp_store_device_info_flag
+0x4aa4 mem_otp_store_system_flag
+0x4aa5 mem_otp_read_retention_memory
+0x4abd mem_otp_read_retention_offset
+0x4abf mem_otp_read_retention_max_size
+0x4ac1 mem_keyboard_device_poweron_timer_init
+0x4ac2 mem_keyboard_device_poweron_timer
+0x4ac3 mem_keyboard_num_caps_scoll_led_on_timer
+0x4ac5 mem_keyboard_mode_led_on_timer
+0x4ac6 mem_keyboard_adc_low_volatage_led_timer_count
+0x4ac7 mem_adc_low_volatage_led_blink_timer
+0x4ac9 mem_keyboard_low_volatage_led_flag
+0x4aca mem_keyboard_low_volatage_led_blink_count
+0x4acb mem_keyboard_low_volatage_led_blink_new_data_enable
+0x4acc mem_keyboard_pair_led_flag
+0x4acd mem_keyboard_pair_led_blink_count
+0x4ace mem_usb_vdd_status_current
+0x4acf mem_usb_vdd_status_last
+0x4ad0 mem_usb_wait_updata_timer
+0x4ad1 mem_keyboard_usb_vid_pid
+0x4ada mem_keyscan_exmcu_value_new
+0x4ae6 mem_keyboard_hid_fix_handle
+0x4ae8 mem_keyboard_le_table
+0x4b99 mem_keyboard_delay_lpm_flag
+0x4b9a mem_keyboard_evt_btclk
+0x4b9e mem_keyboard_evt_timer_count
+0x4b9f mem_keyboard_scan_enter_lpm
+0x4ba0 mem_keyboard_end
+0x488d mem_mouse_param_config
+0x488d mem_lbutton_gpio
+0x488e mem_mbutton_gpio
+0x488f mem_rbutton_gpio
+0x4890 mem_bk_button_gpio
+0x4891 mem_fw_button_gpio
+0x4892 mem_dpi_button_gpio
+0x4893 mem_mouse_sensor_sclk_gpio
+0x4894 mem_mouse_sensor_sdio_gpio
+0x4895 mem_select_sensor_angle_gpio
+0x4896 mem_sensor_angle_default
+0x4897 mem_sensor_angle_gnd
+0x4898 mem_sensor_angle_vin
+0x4899 mem_config_sensor_dpi
+0x489a mem_whee_ta_data_gpio
+0x489b mem_whee_tb_data_gpio
+0x489c mem_matrix_public_gpio
+0x489d mem_config_select_device_button_gpio
+0x489e mem_customer_key_gpio
+0x489f mem_firebutton_gpio
+0x48a0 mem_dpi_another_button_gpio
+0x48a1 mem_mouse_logo_led_gpio
+0x48a2 mem_mouse_1io2led_multi_24gled
+0x48a3 mem_mouse_1io2led_multi_bt1led
+0x48a4 mem_mouse_1io2led_multi_bt2led
+0x48a5 mem_mouse_low_voltage_alarm_gpio
+0x48a6 mem_mouse_dpi_gpio
+0x48a7 mem_mouse_param_config_end
+0x48a7 mem_device_temp_gpio
+0x48a8 mem_mouse_multi_led_blink_enable
+0x48a9 mem_mouse_multi_led_type
+0x48aa mem_mouse_multi_led_state
+0x48ab mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x48ac mem_mouse_le_reconn_blink_limit
+0x48ad mem_mouse_multi_led_powon_timer_init//power on time
+0x48ae mem_mouse_multi_led_powon_timer
+0x48af mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x48b0 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x48b1 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x48b2 mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x48b3 mem_mouse_multi_led_blink_timer
+0x48b4 mem_mouse_low_led_blink_timer//low blink time
+0x48b5 mem_mouse_low_led_blink_half_timer
+0x48b6 mem_mouse_multi_24gled_blink_count_init//24g count
+0x48b7 mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x48b8 mem_mouse_multi_led_blink_count
+0x48b9 mem_mouse_multi_lowled_blink_count_init//low count
+0x48ba mem_mouse_multi_low_led_blink_count
+0x48bb mem_mouse_logo_led_on_time_init
+0x48bd mem_mouse_dpi_led_delay_count
+0x48be mem_mouse_dpi_led_delay_count_init
+0x48bf mem_mouse_24g_fast_hop_count_2ms
+0x48c0 mem_mouse_24g_short_sleep_set_4ms
+0x48c3 mem_mouse_24g_long_sleep_set_4ms
+0x48c6 mem_mouse_24g_short_sleep_set_8ms
+0x48c9 mem_mouse_24g_long_sleep_set_8ms
+0x48cc mem_mouse_24g_tsniff
+0x48d0 mem_mouse_24g_tsniff_2ms
+0x48d4 mem_mouse_24g_tsniff_4ms
+0x48d8 mem_mouse_24g_tsniff_8ms
+0x48dc mem_mouse_24g_short_sleep_set_init
+0x48df mem_mouse_24g_tx_count
+0x48e0 mem_mouse_24g_tx_time_last
+0x48e6 mem_mouse_24g_tx_time_last_delt
+0x48ea mem_mouse_24g_tx_time_sum
+0x48ef mem_mouse_24g_tx_time_sum_count
+0x48f0 mem_mouse_24g_tx_time_offset
+0x48f1 mem_mouse_24g_sleep_miss
+0x48f2 mem_mouse_24g_sleep_time_temp
+0x48f6 mem_mouse_24g_sleep_miss_temp
+0x48fa mem_mouse_sleep_deal_type
+0x48fb mem_sensor_id1
+0x48fc mem_sensor_id2
+0x48fd mem_mouse_move_flag
+0x48fe mem_mouse_asm_flag
+0x48ff mem_mouse_x_pre
+0x4901 mem_mouse_y_pre
+0x4903 mem_mouse_data_xtemp
+0x4904 mem_mouse_data_ytemp
+0x4905 mem_mouse_dpi_seting
+0x4905 mem_320x_dpi_0
+0x4906 mem_320x_dpi_1
+0x4907 mem_320x_dpi_2
+0x4908 mem_320x_dpi_3
+0x4909 mem_3212_dpi_0
+0x490a mem_3212_dpi_1
+0x490b mem_3212_dpi_2
+0x490c mem_3212_dpi_3
+0x490d mem_ka8g2_dpi_0
+0x490e mem_ka8g2_dpi_1
+0x490f mem_ka8g2_dpi_2
+0x4910 mem_ka8g2_dpi_3
+0x4911 mem_sensor_s201_dpi
+0x4911 mem_sensor_s201_dpi_0
+0x4912 mem_sensor_s201_dpi_1
+0x4913 mem_sensor_s201_dpi_2
+0x4914 mem_sensor_s201_dpi_3
+0x4915 mem_sensor_s201_dpi_4
+0x4916 mem_mouse_cpi_count
+0x4917 mem_mouse_dpi_button_state
+0x4918 mem_mouse_dpi_long_press_flag
+0x4919 mem_sensor_3212_init
+0x4923 mem_sensor_3204_init
+0x492d mem_sensor_3205_init
+0x4937 mem_sensor_32xx_init
+0x4951 mem_sensor_32xx_init_1
+0x4973 mem_sensor_8650_init
+0x4991 mem_sensor_ka8ul_init
+0x49af mem_sensor_8009_init
+0x49bf mem_sensor_ka8g2_init
+0x49d1 mem_sensor_p6520_init
+0x49dd mem_sensor_ka5857_init
+0x49e9 mem_sensor_poweron_init
+0x49f1 mem_sensor_ka8g2_poweron_init
+0x49f9 mem_mouse_clear_sensor_data_flag
+0x49fa mem_config_sensor_type
+0x49fb mem_config_sensor_angle
+0x49fc mem_bluetooth_125hz_cnt
+0x49fd mem_customer_key_press_init
+0x4a07 mem_mouse_lkey_press_status
+0x4a08 mem_mouse_rkey_press_status
+0x4a09 mem_mouse_mkey_press_status
+0x4a0a mem_mouse_bkkey_press_status
+0x4a0b mem_mouse_fwkey_press_status
+0x4a0c mem_mouse_dpikey_press_status
+0x4a0d mem_mouse_pbkey_press_status
+0x4a0e mem_mouse_customerkey_press_status
+0x4a0f mem_mouse_key_temp
+0x4a10 mem_mouse_key_status
+0x4a11 mem_mouse_matrix_key_cow_count
+0x4a12 mem_mouse_matrix_key_row_count
+0x4a13 mem_mouse_ghost_flag
+0x4a14 mem_fire_key_status
+0x4a15 mem_fire_key_delay
+0x4a19 mem_fire_key_flag
+0x4a1a mem_dpi_another_press_status
+0x4a1b mem_dpi_another_button_state
+0x4a1c mem_dpi_another_button_down_enable
+0x4a1d mem_mouse_key_temp_patch
+0x4a1e mem_le_name_patch_len
+0x4a1f mem_le_name_patch
+0x4a32 mem_device_flag_last
+0x4a33 mem_device_flag_value
+0x4a34 mem_mouse_le_addr1_last
+0x4a3a mem_mouse_le_addr1_temp
+0x4a40 mem_mouse_le_locall_addr1_last
+0x4a46 mem_mouse_le_locall_addr1_temp
+0x4a4c mem_mouse_le_addr2_last
+0x4a52 mem_mouse_le_addr2_temp
+0x4a58 mem_mouse_le_locall_addr2_last
+0x4a5e mem_mouse_le_locall_addr2_temp
+0x4a64 mem_mouse_dpi_last
+0x4a65 mem_mouse_dpi_temp
+0x4a66 mem_mouse_otp_dpi_value
+0x4a67 mem_mouse_24g_addr_last
+0x4a6b mem_mouse_24g_addr_temp
+0x4a6f mem_random_addr_increase_count_last
+0x4a71 mem_random_addr_increase_count_temp
+0x4a73 mem_otp_offset_le_addr2
+0x4a75 mem_otp_offset_le_addr2_end
+0x4a77 mem_otp_offset_le_locall_addr2
+0x4a79 mem_otp_offset_le_locall_addr2_end
+0x4a7b mem_otp_offset_dpi
+0x4a7d mem_otp_offset_dpi_end
+0x4a7f mem_otp_offset_device_flag
+0x4a81 mem_otp_offset_device_flag_end
+0x4a83 mem_otp_offset_24g_addr
+0x4a85 mem_otp_offset_24g_addr_end
+0x4a87 mem_otp_offset_le_addr1
+0x4a89 mem_otp_offset_le_addr1_end
+0x4a8b mem_otp_offset_le_locall_addr1
+0x4a8d mem_otp_offset_le_locall_addr1_end
+0x4a8f mem_otp_offset_le_addr_increase_count
+0x4a91 mem_otp_offset_le_addr_increase_count_end
+0x4a93 mem_otp_offset_app_initflag
+0x4a95 mem_usb_tx_interval_retention
+0x4a96 mem_usb_vid_pid_retention
+0x4a9f mem_usb_device_name_retention
+0x4abd mem_mouse_commbination_key_bt
+0x4abe mem_mouse_commbination_key_24g
+0x4abf mem_mouse_commbination_key_dpi
+0x4ac0 mem_mouse_commbination_key_select_device
+0x4ac1 mem_mouse_commbination_dpi_timer
+0x4ac2 mem_mouse_commbination_select_device_timer
+0x4ac3 mem_mouse_commbination_key_count
+0x4ac4 mem_mouse_pair_flag
+0x4644 mem_remote_lpm_gpio_config_flag
+0x4648 mem_remote_lpm_gpio_config_io_temp
+0x4649 mem_24g_tx_led_map
+0x464a mem_24g_led_count
+0x464b mem_24g_lpm_timer_count
+0x464d mem_24g_lpm_enter_count
+0x464f mem_remote_otp_lot_xy_temp
+0x4655 mem_remote_full_control_remote_lap
+0x4659 mem_remote_car_key_conf0
+0x4659 mem_remote_car_key_conf0_pin
+0x465a mem_remote_car_key_conf1
+0x465a mem_remote_car_key_conf1_pin
+0x465b mem_remote_car_key_conf2
+0x465b mem_remote_car_key_conf2_pin
+0x465c mem_remote_car_key_conf3
+0x465c mem_remote_car_key_conf3_pin
+0x465d mem_remote_car_key_conf4
+0x465d mem_remote_car_key_conf4_pin
+0x465e mem_remote_car_key_conf5
+0x465e mem_remote_car_key_conf5_pin
+0x465f mem_remote_car_key_conf6
+0x465f mem_remote_car_key_conf6_pin
+0x4660 mem_remote_le_24g_recv_ack_flag
+0x4661 mem_key_public_gpio
+0x4662 mem_remote_mult_key
+0x4663 mem_remote_le_24g_ch_count
+0x4665 mem_le_24g_tx_send_flag
+0x4666 mem_remote_le_24g_tx_pair_mode
+0x4667 mem_remote_24g_addr_other
+0x466b mem_remote_24g_tx_payload_temp
+0x4677 mem_remote_24g_rx_payload_temp
+0x4508 mem_hci_uart_tx_gpio
+0x4509 mem_hci_uart_rx_gpio
+0x450a mem_hci_uart_rts_gpio
+0x450b mem_hci_uart_cts_gpio
+0x450c mem_hci_pwm_12mhz_gpio
+0x4508 mem_soft_version_num
+0x450a mem_module_wake_up_gpio
+0x450b mem_module_state_gpio
+0x450c mem_module_connect_state_gpio
+0x450d mem_current_packet_length
+0x450f mem_module_state
+0x4510 mem_module_mcu_wake_pin
+0x4511 mem_module_mcu_wake_delay_us
+0x4515 mem_module_le_lpm_mult
+0x4516 mem_module_bluetooth_stauts_by_command
+0x4517 mem_module_uart_rx_buffer
+0x4519 mem_module_uart_rx_buffer_end
+0x451b mem_module_uart_tx_buffer
+0x451d mem_module_uart_tx_buffer_end
+0x451f mem_module_uarta_baud_rate
+0x4521 mem_module_read_vdd_flag
+0x4522 mem_module_read_vdd_count
+0x4523 mem_module_vdd_quotient
+0x4524 mem_module_vdd_remainder
+0x4525 mem_module_ble_data_uart_max_length
+0x4526 mem_module_flag
+0x4528 mem_module_hci_notify_len
+0x4529 mem_module_hci_notify_handle
+0x452b mem_module_hci_nofiy_addr
+0x452d mem_module_hci_notify_type
+0x452e mem_le_conn_flag
+0x452f mem_module_le_att_list
+0x4787 mem_module_le_att_list_end
+0x4787 mem_module_nv_data
+0x4787 mem_module_nv_data0
+0x47a9 mem_module_nv_data1
+0x47cb mem_module_nv_data2
+0x47ed mem_module_nv_data3
+0x480f mem_module_nv_data4
+0x4831 mem_module_nv_data_end
+0x4508 mem_xmalloc_rec_start
+0x4508 mem_rec_le_att_list
+0x49c7 mem_rec_led_style
+0x49c7 mem_rec_led_style_type
+0x49c8 mem_rec_led_style_blink_count
+0x49c9 mem_rec_led_style_gpio
+0x49ca mem_rec_led_style_on_time
+0x49cc mem_rec_led_style_off_time
+0x49ce mem_rec_led_style_on_callback
+0x49d0 mem_rec_led_style_off_callback
+0x49d2 mem_rec_led2_style
+0x49d2 mem_rec_led2_style_type
+0x49d3 mem_rec_led2_style_blink_count
+0x49d4 mem_rec_led2_style_gpio
+0x49d5 mem_rec_led2_style_on_time
+0x49d7 mem_rec_led2_style_off_time
+0x49d9 mem_rec_led2_style_on_callback
+0x49db mem_rec_led2_style_off_callback
+0x49dd mem_rec_le_pair_led_style
+0x49dd mem_rec_le_pair_led_style_type
+0x49de mem_rec_le_pair_led_style_blink_count
+0x49df mem_rec_le_pair_led_style_gpio
+0x49e0 mem_rec_le_pair_led_style_on_time
+0x49e2 mem_rec_le_pair_led_style_off_time
+0x49e4 mem_rec_le_reconn_led_style
+0x49e4 mem_rec_le_reconn_led_style_type
+0x49e5 mem_rec_le_reconn_led_style_blink_count
+0x49e6 mem_rec_le_reconn_led_style_gpio
+0x49e7 mem_rec_le_reconn_led_style_on_time
+0x49e9 mem_rec_le_reconn_led_style_off_time
+0x49eb mem_rec_adc_low_led_style
+0x49eb mem_rec_adc_low_led_style_type
+0x49ec mem_rec_adc_low_led_style_blink_count
+0x49ed mem_rec_adc_low_led_style_gpio
+0x49ee mem_rec_adc_low_led_style_on_time
+0x49f0 mem_rec_adc_low_led_style_off_time
+0x49f2 mem_rec_ui_timer_btclk
+0x49f6 mem_rec_ui_timer_count
+0x49f7 mem_rec_cb_timer
+0x49f9 mem_rec_tscan_timer
+0x49fa mem_rec_tscan_timeout
+0x49fb mem_rec_tscan_row_nums
+0x49fc mem_rec_tscan_col_nums
+0x49fd mem_rec_tscan_col_gpio_ptr
+0x49ff mem_rec_tscan_row_scanned
+0x4a00 mem_rec_tscan_col_scanned
+0x4a01 mem_rec_tscan_record_row
+0x4a02 mem_rec_tscan_record_col
+0x4a03 mem_rec_tscan_row_gpio
+0x4a0d mem_rec_tscan_col_gpio
+0x4a17 mem_rec_tscan_sequence
+0x4a18 mem_rec_tscan_gpio_nums
+0x4a19 mem_rec_tscan_row_scan_loop_count
+0x4a1a mem_rec_key_state
+0x4a1a mem_rec_tscan_gndkey_state
+0x4a1b mem_rec_tscan_key_state
+0x4a1c mem_rec_tscan_record_temp
+0x4a1e mem_rec_tscan_key_need_send_flag
+0x4a1f mem_rec_tscan_current_key_num
+0x4a20 mem_rec_gpio_wakeup_source
+0x4a21 mem_rec_tscan_gndkey_record_temp
+0x4a22 mem_rec_tscan_gndkey_need_send_flag
+0x4a23 mem_rec_tscan_key_nums_list
+0x4a4b mem_rec_tscan_gndkey_nums_list
+0x4a55 mem_rec_tscan_key_num_bit
+0x4a5d mem_rec_tscan_combin_key_num_bit
+0x4a65 mem_rec_tscan_current_gpio_ptr
+0x4a67 mem_rec_tscan_record_now
+0x4a69 mem_rec_combin_key_timeout
+0x4a6a mem_rec_combin_key_timer
+0x4a6b mem_rec_gpio_bit_first
+0x4a6c mem_rec_gpio_bit_second
+0x4a6d mem_rec_gpio_bit_check
+0x4a6e mem_rec_gpio_for_wake_pullup
+0x4a6f mem_rec_keypad_type
+0x4a70 mem_rec_key_keyboard_value_list
+0x4b10 mem_rec_key_consumer_value_list
+0x4b40 mem_rec_key_mouse_value_list
+0x4b80 mem_rec_key_nec_value_list
+0x4bb0 mem_rec_key_press_le
+0x4bb0 mem_rec_key1_press_le
+0x4bb3 mem_rec_key2_press_le
+0x4bb6 mem_rec_key3_press_le
+0x4bb9 mem_rec_key4_press_le
+0x4bbc mem_rec_key5_press_le
+0x4bbf mem_rec_key6_press_le
+0x4bc2 mem_rec_key7_press_le
+0x4bc5 mem_rec_key8_press_le
+0x4bc8 mem_rec_key9_press_le
+0x4bcb mem_rec_key10_press_le
+0x4bce mem_rec_key11_press_le
+0x4bd1 mem_rec_key12_press_le
+0x4bd4 mem_rec_key13_press_le
+0x4bd7 mem_rec_key14_press_le
+0x4bda mem_rec_key15_press_le
+0x4bdd mem_rec_key16_press_le
+0x4be0 mem_rec_key17_press_le
+0x4be3 mem_rec_key18_press_le
+0x4be6 mem_rec_key19_press_le
+0x4be9 mem_rec_key20_press_le
+0x4bec mem_rec_key21_press_le
+0x4bef mem_rec_key_release_le
+0x4bf2 mem_rec_key_map
+0x4c07 mem_rec_gnd_key_offset
+0x4c08 mem_rec_keypad_fun
+0x4c09 mem_rec_le_enable_notify
+0x4c0a mem_rec_le_data_len
+0x4c0b mem_rec_le_connect_state
+0x4c0c mem_rec_report_id1_handle
+0x4c0e mem_rec_report_id2_handle
+0x4c10 mem_rec_report_id3_handle
+0x4c12 mem_rec_report_id4_handle
+0x4c14 mem_rec_queue_each_size
+0x4c15 mem_rec_queue_length
+0x4c16 mem_rec_queue_curr_num
+0x4c17 mem_rec_queue_read_ptr
+0x4c18 mem_rec_queue_write_ptr
+0x4c19 mem_rec_queue_ele
+0x4c39 mem_rec_ad_indexTable1
+0x4c49 mem_rec_ad_stepsizeTable1
+0x4dad mem_rec_ad_state_valpred1
+0x4db1 mem_rec_ad_state_index1
+0x4db5 mem_rec_ad_in_numSamples1
+0x4db6 mem_rec_ad_in_ptr1
+0x4db8 mem_rec_ad_out_ptr1
+0x4dba mem_rec_ad_sign1
+0x4dbb mem_rec_ad_delta1
+0x4dbc mem_rec_ad_step1
+0x4dc0 mem_rec_ad_valpred1
+0x4dc4 mem_rec_ad_index1
+0x4dc8 mem_rec_ad_vpdiff1
+0x4dcc mem_rec_ad_inputbuffer1
+0x4dd0 mem_rec_ad_bufferstep1
+0x4dd1 mem_rec_ad_val1
+0x4dd5 mem_rec_ad_outputbuffer1
+0x4dd9 mem_rec_ad_diff1
+0x4ddd mem_rec_voice_enable
+0x4dde mem_rec_voice_notify
+0x4df2 mem_rec_adc_dma_rptr
+0x4df4 mem_rec_voice_notify_apk_handle
+0x4df6 mem_rec_voice_notify_box_handle
+0x4df8 mem_rec_control_notify_apk_handle
+0x4dfa mem_rec_control_notify_box_handle
+0x4dfc mem_rec_white_list_num
+0x4dfd mem_rec_le_scan_filter_policy
+0x4dfe mem_rec_white_list_flash_write_head
+0x4e02 mem_rec_white_list
+0x4e32 mem_rec_le_req_type
+0x4e33 mem_rec_nec_send_gpio
+0x4e34 mem_rec_nec_receive_gpio
+0x4e35 mem_rec_ota_write_index
+0x4e37 mem_rec_ota_write_length
+0x4e3b mem_rec_ota_write_data_addr
+0x4e3d mem_rec_ota_write_flash_addr
+0x4e40 mem_rec_ota_write_flash_addr_start
+0x4e43 mem_rec_ota_total_sum
+0x4e47 mem_rec_ota_update_flash_mode
+0x4e48 mem_rec_ota_version
+0x4e4a mem_rec_ota_buck_size
+0x4e4c mem_rec_ota_packet_max_len
+0x4e4e mem_rec_ota_work_mode
+0x4e4f mem_rec_ota_notify_handle
+0x4e51 mem_rec_ota_notify_opcode
+0x4e52 mem_rec_ota_notify_result
+0x4e53 mem_rec_ota_notify_data
+0x4e5c mem_rec_ota_le_conn_update_param
+0x4e5c mem_rec_ota_le_interval_min
+0x4e5e mem_rec_ota_le_interval_max
+0x4e60 mem_rec_ota_le_latency
+0x4e62 mem_rec_ota_le_timeout
+0x4e64 mem_rec_ota_reset_timeout
+0x4e65 mem_rec_ota_le_conn_param_update
+0x4e66 mem_rec_ota_enable
+0x4e67 mem_rec_le_packet_size
+0x4e68 mem_rec_ota_flash_base_addr
+0x4e6b mem_rec_ota_flash_offset_addr
+0x4e6e mem_rec_queue_ota_count
+0x4e70 mem_rec_ota_queue_size
+0x4e72 mem_rec_code_a_flash_addr
+0x4e75 mem_rec_code_b_flash_addr
+0x4e78 mem_xmalloc_rec_end
+0x4508 mem_ble_shutter_enable_notify
+0x4509 mem_ble_shutter_reconn_adv_interval
+0x450b mem_ble_shutter_discovery_adv_interval
+0x450d mem_ble_shutter_reconn_timeout
+0x450f mem_ble_shutter_reconn_timer
+0x4511 mem_ble_shutter_reconn_blink_on_time
+0x4513 mem_ble_shutter_reconn_blink_off_time
+0x4515 mem_ble_shutter_discovery_blink_on_time
+0x4517 mem_ble_shutter_discovery_blink_off_time
+0x4519 mem_ble_shutter_interval_min
+0x451b mem_ble_shutter_interval_max
+0x451d mem_ble_shutter_latency
+0x451f mem_ble_shutter_timeout
+0x4521 mem_ble_shutter_interval_min_new
+0x4523 mem_ble_shutter_interval_max_new
+0x4525 mem_ble_shutter_latency_new
+0x4527 mem_ble_shutter_timeout_new
+0x4529 mem_ble_shutter_discovery_timeout
+0x452b mem_ble_shutter_connect_timeout
+0x452d mem_shutter_sleep_timeout
+0x452f mem_shutter_sleep_timer
+0x4531 mem_shutter_hard_soft_switch_case
+0x4532 mem_shutter_soft_switch_button_gpio
+0x4533 mem_shutter_soft_switch_power_state
+0x4534 mem_shutter_soft_switch_poweron_time
+0x4535 mem_shutter_soft_switch_poweroff_time
+0x4536 mem_shutter_soft_switch_poweron_callback_function
+0x4538 mem_shutter_soft_switch_poweroff_callback_function
+0x453a mem_shutter_keyscan
+0x453a mem_shutter_key_num
+0x453b mem_cb_shutter_keycan
+0x453d mem_shutter_key_conf0
+0x453e mem_shutter_key_conf1
+0x453f mem_key0_press
+0x4544 mem_key1_press
+0x4549 mem_key2_press
+0x454e mem_key0_release
+0x4553 mem_key1_release
+0x4558 mem_key2_release
+0x455d mem_ble_data_buffer1
+0x4562 mem_ble_data_buffer2
+0x4567 mem_ble_data_buffer3
+0x456c mem_ble_data_buffer4
+0x4571 mem_ble_data_buffer5
+0x4576 mem_ble_data_buffer6
+0x457b mem_ble_data_buffer7
+0x4580 mem_ble_data_buffer8
+0x4585 mem_ble_data_buffer9_58
+0x45b7 mem_queue_each_size
+0x45b8 mem_queue_length
+0x45b9 mem_queue_curr_num
+0x45ba mem_queue_read_ptr
+0x45bb mem_queue_write_ptr
+0x45bc mem_queue_ele
+0x45dc mem_shutter_nv_data
+0x4686 mem_shutter_led_struct_app_led
+0x4686 mem_shutter_led_struct_app_led_type
+0x4687 mem_shutter_led_struct_app_led_blink_count
+0x4688 mem_shutter_led_struct_app_led_gpio
+0x4689 mem_shutter_led_struct_app_led_on_time
+0x468b mem_shutter_led_struct_app_led_off_time
+0x468d mem_shutter_led_struct_app_led_on_callback
+0x468f mem_shutter_led_struct_app_led_off_callback
+0x4691 mem_shutter_power_off_led_style
+0x4691 mem_shutter_power_off_led_style_type
+0x4692 mem_shutter_power_off_led_style_blink_count
+0x4693 mem_shutter_power_off_led_style_gpio
+0x4694 mem_shutter_power_off_led_style_on_time
+0x4696 mem_shutter_power_off_led_style_off_time
+0x4698 mem_shutter_power_off_led_style_on_callback
+0x469a mem_shutter_power_off_led_style_off_callback
+0x469c mem_shutter_soft_swtich_botton_down
+0x469d mem_shutter_soft_swtich_led_struct_temp
+0x46a8 mem_shutter_power_off_timeout
+0x46a9 mem_shutter_power_off_timer
+0x46aa mem_shutter_key_conf0_temp
+0x46ac mem_shutter_led_struct_app_led_gpio_temp
+0x46ad mem_shutter_hard_soft_switch_case_temp
+0x46ae mem_shutter_soft_switch_button_gpio_temp
+0x46af mem_shutter_soft_switch_first_power_on
+0x46b0 mem_shutter_dy_conf
+0x46b1 mem_shutter_1s_timer
+0x46b2 mem_shutter_timer_625us
+0x46b4 mem_rf_init_data_new
+0x46bf mem_key_value_xmem
+0x46c1 mem_shutter_le_hid_map
+0x47a7 mem_shutter_le_uuid_sup
+0x4943 mem_shutter_le_map_len_android
+0x4945 mem_shutter_le_map_len_ios
+0x4947 mem_dy_le_search_service_uuid
+0x4957 mem_iphone_flag
+0x4958 mem_send_data_delay
+0x4959 mem_key_send_clk
+0x495d mem_shutter_key_state0
+0x4967 mem_shutter_key_state1
+0x4971 mem_shutter_key_state2
+0x497b mem_shutter_key_state3
+0x4985 mem_shutter_key_state4
+0x498f mem_shutter_key_state5
+0x4999 mem_shutter_key_state6
+0x49a3 mem_shutter_key_state7
+0x49ad mem_shutter_key_state8
+0x49b7 mem_dy_key0_press
+0x49c1 mem_dy_key1_press
+0x49cb mem_dy_key2_press
+0x49d5 mem_dy_key3_press
+0x49df mem_dy_key4_press
+0x49e9 mem_dy_key5_press
+0x49f3 mem_dy_key6_press
+0x49fd mem_dy_key7_press
+0x4a07 mem_dy_key8_press
+0x4a11 mem_key0_release_new
+0x4a20 mem_key1_release_new
+0x4a2f mem_key2_release_new
+0x4a3e mem_key3_release_new
+0x4a4d mem_key4_release_new
+0x4a5c mem_key5_release_new
+0x4a6b mem_key6_release_new
+0x4a7a mem_key7_release_new
+0x4a89 mem_key8_release_new
+0x4a98 mem_key0_long_press
+0x4a9b mem_key1_long_press
+0x4a9e mem_key2_long_press
+0x4aa1 mem_key3_long_press
+0x4aa4 mem_key4_long_press
+0x4aa7 mem_key5_long_press
+0x4aaa mem_key6_long_press
+0x4aad mem_key7_long_press
+0x4ab0 mem_key8_long_press
+0x4ab3 mem_key0_long_release
+0x4ab6 mem_key1_long_release
+0x4ab9 mem_key2_long_release
+0x4abc mem_key3_long_release
+0x4abf mem_key4_long_release
+0x4ac2 mem_key5_long_release
+0x4ac5 mem_key6_long_release
+0x4ac8 mem_key7_long_release
+0x4acb mem_key8_long_release
+0x4ace mem_combine_key0
+0x4ad0 mem_combine_key1
+0x4ad2 mem_combine_key2
+0x4ad4 mem_combine_key3
+0x4ad6 mem_combine_key4
+0x4ad8 mem_combine_key5
+0x4ada mem_combine_key_state0
+0x4adc mem_combine_key0_press
+0x4ae6 mem_combine_key1_press
+0x4af0 mem_combine_key2_press
+0x4afa mem_combine_key3_press
+0x4b04 mem_combine_key4_press
+0x4b0e mem_combine_key5_press
+0x4b18 mem_combine_key_release
+0x4b22 mem_shutter_move_data
+0x4b26 mem_key0_press_i
+0x4b30 mem_key1_press_i
+0x4b3a mem_key2_press_i
+0x4b44 mem_key3_press_i
+0x4b4e mem_key4_press_i
+0x4b58 mem_key5_press_i
+0x4b62 mem_key6_press_i
+0x4b6c mem_key7_press_i
+0x4b76 mem_key0_release_new_i
+0x4b85 mem_key1_release_new_i
+0x4b94 mem_key2_release_new_i
+0x4ba3 mem_key3_release_new_i
+0x4bb2 mem_key4_release_new_i
+0x4bc1 mem_key5_release_new_i
+0x4bd0 mem_key6_release_new_i
+0x4bdf mem_key7_release_new_i
+0x4bee mem_key8_release_new_i
+0x4bfd mem_key0_long_press_i
+0x4c00 mem_key1_long_press_i
+0x4c03 mem_key2_long_press_i
+0x4c06 mem_key3_long_press_i
+0x4c09 mem_key4_long_press_i
+0x4c0c mem_key5_long_press_i
+0x4c0f mem_key6_long_press_i
+0x4c12 mem_key7_long_press_i
+0x4c15 mem_key8_long_press_i
+0x4c18 mem_key0_long_release_i
+0x4c1b mem_key1_long_release_i
+0x4c1e mem_key2_long_release_i
+0x4c21 mem_key3_long_release_i
+0x4c24 mem_key4_long_release_i
+0x4c27 mem_key5_long_release_i
+0x4c2a mem_key6_long_release_i
+0x4c2d mem_key7_long_release_i
+0x4c30 mem_key8_long_release_i
+0x4c33 mem_key3_release_new_t
+0x4c3d mem_key3_release_new_i_t
+0x4c47 mem_key3_press_count
+0x4c48 mem_shutter_like_timeout
+0x4c49 mem_shutter_key_pressed
+0x4c4a mem_shutter_combine_key_release
+0x4c4b mem_shutter_mousekey_value_list
+0x4e71 mem_shutter_back_count
+0x4e72 mem_shutter_le_conned
+0x4e73 mem_move_config
+0x4e73 mem_shutter_iphone_beyond_x_count
+0x4e74 mem_shutter_iphone_beyond_y_count
+0x4e75 mem_shutter_move_data_x
+0x4e77 mem_shutter_move_data_y
+0x4e79 mem_last_shutter_le_iphone_flag
+0x4e7a mem_move_config_end
+0x4e7a mem_shutter_back_count_cache
+0x4e7b mem_shutter_iphone_beyond_x_cache
+0x4e7c mem_shutter_iphone_beyond_y_cache
+0x4e7d mem_shutter_iphone_move_mid
+0x4e87 mem_shutter_long_key_released_flag
+0x4e88 mem_shutter_move_mid_timer
+0x4e89 mem_shutter_pairing_success
+0x4e8a mem_combine_key_release_value
+0x4e8c mem_last_press_key_value
+0x4e8d mem_shutter_first_move
+0x4e8e mem_move_mode_set
+0x4e8f mem_move_mode_key_index
+0x4e90 mem_move_mode_trigger_enable
+0x4e91 mem_shutter_android_move_mid
+0x4e96 mem_shutter_iphone_up_mid
+0x4ea0 mem_shutter_iphone_like_mid
+0x4eaa mem_shutter_key_num_conf
+0x4eab mem_shutter_dy_key_conf
+0x4eb4 mem_le_dy_adv_data
+0x4ebf mem_le_dy_scan_data
+0x4ecb mem_ble_shutter_dy_interval_min_android
+0x4ed3 mem_ble_shutter_dy_interval_min_ios
+0x4edb mem_shutter_ble_discovery_time_conf
+0x4ee3 mem_queue_dy_each_size
+0x4ee5 mem_shutter_led_on_light_dark_led_conf
+0x4eec mem_shutter_led_off_light_dark_led_conf
+0x4ef3 mem_shutter_reconn_blink_on_time_conf
+0x4ef7 mem_shutter_discovery_blink_on_time_conf
+0x4efb mem_shutter_efuse_start_offset
+0x4efd mem_shutter_efuse_end_offset
+0x4eff mem_initial_move_conf
+0x4eff mem_android_initial_move_x
+0x4f01 mem_android_initial_move_y
+0x4f03 mem_iphone_initial_move_x
+0x4f05 mem_iphone_initial_move_y
+0x4f07 mem_otp_move_config
+0x4f07 mem_otp_shutter_move_data_x
+0x4f09 mem_otp_shutter_move_data_y
+0x4f0b mem_otp_last_shutter_le_iphone_flag
+0x4f0c mem_otp_move_config_end
+0x4f0c mem_otp_write_offset_addr
+0x4f0e mem_otp_read_offset_addr
+0x4f10 mem_otp_read_ios_android_addr
+0x4f12 mem_shutter_le_pairing_handle
+0x4f14 mem_shutter_temp_count
+0x4f16 mem_shutter_first_read_flag
+0x4f17 mem_shutter_valid_data_flag
+0x4f18 mem_shutter_volume_timer
+0x4f19 mem_shutter_link_timer
+0x4f1a mem_shutter_link_data
+0x4f22 mem_shutter_link_data_i
+0x4f2a mem_shutter_link_loop_flag
+0x4f2b mem_shutter_dy_le_enc_timer
+0x4f2c mem_shutter_end
+
+(//mem_system_clk
+12 SYSTEM_CLK_12M
+24 SYSTEM_CLK_24M
+)
+(//bluetooth tx power
+0x00 TX_POWER_0DB
+0x03 TX_POWER_3DB
+0x05 TX_POWER_5DB
+0x06 TX_POWER_6DB
+0x07 TX_POWER_7DB
+0x0a TX_POWER_10DB
+
+0x83 TX_POWER_F3DB
+0x85 TX_POWER_F5DB
+0x8a TX_POWER_F10DB
+0x94 TX_POWER_F20DB
+0x9e TX_POWER_F30DB
+0xaa TX_POWER_FACTORY
+)
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	
+	
+	
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+0x1c coffset_le_supervision_timer
+0x20 coffset_le_instant
+0x22 coffset_le_channels
+0x23 coffset_le_op
+0x24 coffset_le_access
+0x28 coffset_le_crcinit
+0x2b coffset_le_window_size
+0x2c coffset_le_slave_latency
+0x2e coffset_le_slave_superto
+0x30 coffset_le_channel_map
+0x35 coffset_le_rx_phy
+0x36 coffset_le_tx_phy
+0x37 coffset_le_new_map
+0x37 coffset_le_new_m2s_phy
+0x38 coffset_le_new_s2m_phy
+0x37 coffest_le_new_transmitwindowsize
+0x38 coffest_le_new_transmitwindowoffset
+0x3a coffest_le_new_conninterval
+0x3c coffest_le_new_connslavelatency
+0x3e coffest_le_new_connsupervisiontimeout
+0x40 coffset_le_sk
+0x50 coffset_le_peer_sca
+0x53 coffset_le_transmit_window
+	
+83 context_size
+1 context_num
+)
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+(
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+
+
+
+0x0e43 param_tx_setup
+0x0600 param_rf_setup
+0x0600 param_conn_access 
+0x03bb param_clke_cal
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+3750 param_rt_rthalfslot
+
+480 param_clke_cal_le_1m	//preamble(1B) & access address(4B) time (1+4)*8*1 * 12
+288 	param_clke_cal_le_2m	//preamble(2B) & access address(4B) time (1+4)*8*1 * 12
+282 param_clke_cal_le_coded	//preamble(80us) & access address(256us)-312.5us(0.5slot)
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+
+1000 param_chgpump_delay_100us
+6000 param_chgpump_delay_500us
+12000 param_chgpump_delay_1ms
+
+
+0x000a04 param_lmp_version
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+39 param_fcomp_div
+2 param_fcomp_mul
+
+)
+(
+0        always        
+1        true          
+2        positive      
+3        timeout       
+4        init_adpcm
+5        zero          
+6        crc_failed    
+7        enable_white  
+8        enable_parity 
+9        enable_crc    
+10       enable_hec    
+11       decode_fec1   
+12       decode_fec2   
+13       decode_fec0   
+14       encrypt       
+15       crc16       
+16       swfine	
+20       rqst_freq    
+21       recalc        
+22       init_encrypt  
+23       mhalfbnd    
+24       sync          
+25       user10    
+26       kc_p_activate  
+27       encode_fec1   
+28       encode_fec2   
+29       encode_fec0   
+30       packet_end    
+32       is_tx         
+33       is_rx         
+34       halfslot     
+35       oneslot      
+36       mslotbnd     
+37       expire       
+38       meet         
+39       tx_clear     
+40       user         
+41       master        
+42       rxon         
+43       wake           
+44       user2        
+45       match         
+46       attempt        
+47       user3          
+48       clknt         
+49	   user7 	
+50       synchronize   
+51       lpo_edge  
+52       blank         
+53       modone          
+55       aes_ready	
+56       encode_fec3   
+57       dewhiten_code_calc   
+58       lr_s2en       
+60	   ble_coded_info	//1:s2 0:s8
+63       never         
+)
+default flag = always
+(
+0        mark   
+1        type   
+2        temp   
+3        contu  
+3	 contru	
+3	 contwu	
+4        am_addr      
+5        contw        
+6        contr        
+7        queue    
+8        debug    
+9        access   
+10       contus   
+11       timeup        
+12       pwindow       
+13       fhs_parity    
+14       white_init    
+15       crc24_init        
+16       contue    
+17       rega          
+18       regb          
+19       regc          
+20       regab         
+21       radio_ctrl   
+
+23       freq_index   
+24       regd    
+25       clkn              
+26       clke              
+27       stop_watch		
+28       fhs_misc   
+29       fhs_class  
+30       fhs0   
+31       fhs1   
+32       bt_adr 
+33       bt_clk 
+34       clkn_bt  
+35       clkn_rt  
+36       freq_mode
+37       xin   
+38       N_tx_slot 
+39 	   auxcnt
+40       clke_bt  
+41       clke_rt  
+42       branch_addr	
+43       rege         
+44       lap
+45       uap
+46       nap         
+47       regext		
+48       alarm             
+49       lpo_time          
+50       kc_ls             
+51       kc_ms             
+52       g1l               
+53		mask3ff		
+54       aes_ctrl		
+55       regf			
+56       regext_index   
+57	     loopcnt
+58      stack			
+59       stack_ptr		
+61         pc 
+62       null              
+63       pdata 
+)
+default reg = pdata
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+(
+1 txf
+3 demod
+)
+default source = 0
+(
+5  mark_loopback
+9  mark_context
+13 mark_lpm_mult_enable
+14 mark_usb_first_resp
+15 mark_old_packet
+16 mark_adv
+34 mark_otp_write
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_rxmode
+40 mark_eeprom_size
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_temp
+45 mark_ble_2M
+46 mark_ble_lr_s8
+47 mark_ble_lr
+48 mark_ble_crc_fail
+50 mark_ble_encryption
+51 mark_first_packet
+)
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+(
+0 le_adv_interval_timer
+2 le_scan_interval_timer
+9 key_scan_timer
+7 smp_pairing_timer
+11  ui_led_blink  
+
+8 G24_TIMER_NODATA
+6 G24_TIMER_KB_BIT_CONSUMER_BLANK
+13 G24_TIMER_MS_BLANK
+12 G24_TIMER_KB_MUL_BLANK
+10 G24_TIMER_KB_SYS_CRTL_BLANK
+14 G24_TIMER_KB_BLANK
+
+1 USB_TIMER_NAK
+15 USB_TIMER_WAKEUP
+)
+(
+
+27 hci_cmd_le_create_conn
+29 hci_cmd_le_disconn
+30 hci_cmd_le_att_req
+)
+(
+0 mode_le
+1 mode_master
+)
+(
+0 state_inconn
+1 state_insniff
+)
+(
+3 op_disconn
+)
+(
+0 wake_lock_ble_rx
+1 wake_lock_ble_tx
+
+3 wake_lock_key_press
+4 wake_lock_ble_tx_patch
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+(//mem_fcomp_div
+0x18 XTAL_24M
+0x10 XTAL_16M
+)
+( //verion
+6 BLUETOOTH_CORE_SPECIFICATION_4_0
+7 BLUETOOTH_CORE_SPECIFICATION_4_1
+8 BLUETOOTH_CORE_SPECIFICATION_4_2
+9 BLUETOOTH_CORE_SPECIFICATION_5_0
+10 BLUETOOTH_CORE_SPECIFICATION_5_1
+)
+(
+0x050e COMPANY_ID_YICHIP
+)
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+)
+(//mem_le_T_IFS
+150 PARAM_T_IFS_150US
+20000 PARAM_20MS_INIT
+-11 PARAM_SYNC_TIME_DIFFERENCE
+40 PARAM_CODED_C1_TERM1_TIME_40US
+1666 PARAM_WINDOWN_SIZE
+//T_IFS = 150-modem(CRC time)
+15000 param_sifs
+)
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+	(    
+	0x01 ERROR_UNKNOWN_HCI_COMMAND
+	0x02 ERROR_NO_CONNECTION
+	0x03 ERROR_HARDWARE_FAILURE
+	0x04 ERROR_PAGE_TIMEOUT
+	0x05 ERROR_AUTHENTICATION_FAILURE
+	0x06 ERROR_KEY_MISSING
+	0x07 ERROR_MEMORY_FULL
+	0x08 ERROR_CONNECTION_TIMEOUT
+	0x09 ERROR_MAX_CONNECTIONS
+	0x0A ERROR_MAX_SCO_CONNECTIONS
+	0x0B ERROR_MAX_ACL_CONNECTIONS
+	0x0C ERROR_COMMAND_DISALLOWED
+	0x0D ERROR_HOST_REJECT_LIMITED_RESOURCES
+	0x0E ERROR_HOST_REJECT_SECURITY_REASONS
+	0x0F ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+	0x10 ERROR_HOST_TIMEOUT
+	0x11 ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+	0x12 ERROR_INVALID_HCI_COMMAND_PARAMETERS
+	0x13 ERROR_REMOTE_USER_TERMINATED_CONNECTION
+	0x14 ERROR_REMOTE_LOW_RESOURCES
+	0x15 ERROR_REMOTE_POWERING_OFF
+	0x16 ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+	0x17 ERROR_REPEATED_ATTEMPTS
+	0x18 ERROR_PAIRING_NOT_ALLOWED
+	0x19 ERROR_UNKNOWN_LMP_PDU
+	0x1A ERROR_UNSUPPORTED_REMOTE_FEATURE
+	0x1B ERROR_SCO_OFFSET_REJECTED
+	0x1C ERROR_SCO_INTERVAL_REJECTED
+	0x1D ERROR_SCO_AIR_MODE_REJECTED
+	0x1E ERROR_INVALID_LMP_PARAMETER
+	0x1F ERROR_UNSPECIFIED_ERROR
+	0x20 ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+	0x21 ERROR_ROLE_CHANGE_NOT_ALLOWD
+	0x22 ERROR_LMP_RESPONSE_TIMEOUT
+	0x23 ERROR_ERROR_TRANSACTION_COLLISION
+	0x24 ERROR_LMP_PDU_NOT_ALLOWED
+	0x25 ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x26 ERROR_UNIT_KEY_USED
+	0x27 ERROR_QOS_NOT_SUPPORTED
+	0x28 ERROR_INSTANT_PASSED
+	0x29 ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+	0x2a ERROR_DIFFERENT_TRANSACTION_COLLISION
+	0x2c ERROR_QOS_UNACCEPTABLE_PARAMETER
+	0x2d ERROR_QOS_REJECTED
+	0x2e ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+	0x2f ERROR_INSUFFICIENT_SECURITY
+	0x30 ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+	0x32 ERROR_ROLE_SWITCH_PENDING
+	0x34 ERROR_RESERVED_SLOT_VIOLATION
+	0x35 ERROR_ROLE_SWITCH_FAILED
+	0x36 ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+	0x37 ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+	0x38 ERROR_HOST_BUSY_PAIRING
+	0x3d ERROR_MIC_FAILURE
+	)
+	(
+	0X20 SPACE	
+	)
+	(
+	0x0004 LE_L2CAP_CID_ATT
+	0x0005 LE_L2CAP_CID_SIGNAL
+	0x0006 LE_L2CAP_CID_SMP
+	)
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+7 lestate_update_phy
+)
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+5 lemode_2m
+6 lemode_lr
+7 lemode_lr_s8
+
+0x20 mode_2m
+0x40 mode_lr_s2
+0xc0 mode_lr_s8
+
+)
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+6 txdat
+)
+(
+0x00 LLID_RESERVED
+0x01 LLID_CONTINUE
+0x02 LLID_START
+0x03 LLID_LE_LL
+0x01 LLID_EMPTY
+)
+(
+4 LE_TX_BUFF_COUNT
+3 LE_TX_BUFF_UPDATE_LOOPCNT //LE_TX_BUFF_COUNT-1
+
+12 LE_MD_MAX_COUNT
+)
+(
+0 LE_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_BIT
+)
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+(
+39 LE_CCM_DIRECTIONBIT
+)
+(
+36 BR_CCM_0_LENGTH_CONTINUATION
+37 BR_CCM_DIRECTIONBIT
+)
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_RCV_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_RCV_START_ENC_RSP
+4 FLAG_LE_SEND_START_ENC_RSP
+5 FLAG_LE_SEND_START_ENC_REQ
+0xff FLAG_LE_ENC_END
+)
+(//mem_le_configuration
+//bit0:use fixed key , ble passkey pairing
+0 BIT_BLE_PASSKEY_FIXED_KEY
+//bit1:ble pairing use fixed long term key
+1 BIT_BLE_PAIRING_FIXED_LTK
+//bit2:ble transmit packet will set more data flag
+2 BIT_BLE_TRANSMIT_PACKET_BY_MD
+//bit3:master read handle, with requires an authenticated link
+3 BIT_BLE_READ_AUTH
+//bit4:master write handle, with requires an authenticated link
+4 BIT_BLE_WRITE_AUTH
+//bit5:cannot enter long sleep
+5 BIT_BLE_SHORT_MULT
+//bit6:DEAL baseband packet
+6 BIT_BLE_DEAL_BB_PACKET
+)
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0x16	GAP_ADTYPE_SERVICE_DATA
+0x2a	GAP_ADTYPE_MESH_MESSAGE
+0x2b 	GAP_ADTYPE_MESH_BEACON
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+3 AUX_SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+5 AUX_CONNECT_REQ
+6 ADV_SCAN_IND
+)
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+(
+0xa0 param_le_sca
+)
+(//bit of mem_le_l2cap_att_states
+0 BLE_L2CAP_SEND_INDICATION_PACKET
+0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+)
+(//bit map of att handle
+14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
+15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
+)
+(
+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
+)
+(
+0x01 ATTOP_ERROR_RESPONSE
+0x02 ATTOP_EXCHANGE_MTU_REQUEST
+0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+0x04 ATTOP_FIND_INFORMATION_REQUEST
+0x05 ATTOP_FIND_INFORMATION_RESPONSE
+0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+0x08 ATTOP_READ_BY_TYPE_REQUEST
+0x09 ATTOP_READ_BY_TYPE_RESPONSE
+0x0A ATTOP_READ_REQUEST
+0x0B ATTOP_READ_RESPONSE
+0x0C ATTOP_READ_BLOB_REQUEST
+0x0D ATTOP_READ_BLOB_RESPONSE
+0x0E ATTOP_READ_MULTIPLE_REQUEST
+0x0F ATTOP_READ_MULTIPLE_RESPONSE
+0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+0x12 ATTOP_WRITE_REQUEST
+0x13 ATTOP_WRITE_RESPONSE
+0x16 ATTOP_PREPARE_WRITE_REQUEST
+0x17 ATTOP_PREPARE_WRITE_RESPONSE
+0x18 ATTOP_EXECUTE_WRITE_REQUEST
+0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+0x1D ATTOP_HANDLE_VALUE_INDICATION
+0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+0x52 ATTOP_WRITE_COMMAND
+0xD2 ATTOP_SIGNED_WRITE_COMMAND
+0x1f ATTOP_CONTINUE
+0x9e EMPTY_LE_DATA_PRE
+0x9f EMPTY_LE_DATA
+)
+(
+0x01 ATT_ERR_INVALID_HANDLE
+0x02 ATT_ERR_READ_NOT_PERMITTED
+0x03 ATT_ERR_WRITE_NOT_PERMITTED
+0x04 ATT_ERR_INVALID_PDU
+0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+0x07 ATT_ERR_INVALID_OFFSET
+0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+0x09 ATT_ERR_PREPARE_QUEUE_FULL
+0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+0x0E ATT_ERR_UNLIKELY_ERROR
+0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+)
+(
+0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+0X2901 CHARACTERTIC_USER_DESCRIPTION
+0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+0X2905 CHARACTERTIC_AGGREGATE
+0X2906 VALID_RANGE
+0X2907 EXTERNAL_REPORT_REFERENCE
+0X2908 REPORT_REFERENCE
+0X290B ENVIR_SENSING_CONFIGURATION
+0X290C ENVIR_SENSING_MEASUREMENT
+0X290D ENVIR_SENSING_TRIGGER_SETTING
+)
+(
+0x1800 UUID_SERVICE_GENERIC_ACC
+0x1801 UUID_SERVICE_GENERIC_ATT
+0x180a UUID_SERVICE_DEVICE_INFO
+0x180f UUID_SERVICE_BATTERY
+0x1812 UUID_SERVICE_HIDS
+0x2800 UUID_GATT_PRIMARY_SERVICE
+0x2801 UUID_GATT_SECONDARY_SERVICE
+0X2802 UUID_GATT_INCLUDE
+0X2803 UUID_GATT_CHARACTERISTIC
+0X2A00 UUID_CHRCTR_DEVICE_NAME
+0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+0X2A23 UUID_CHRCTR_SYSTEM_ID 
+0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+0X2A26 UUID_CHRCTR_FIRMWARE
+0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+0X2A33 UUID_CHRCTR_MOUSE_INPUT
+0X2A4A UUID_CHRCTR_HID_INFO
+0X2A4B UUID_CHRCTR_REPORT_MAP
+0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+0X2A4D UUID_CHRCTR_REPORT
+0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+0X2A50 UUID_CHRCTR_PNP_ID
+)
+
+(
+23 ATT_DEFAULT_MTU 
+)
+(
+0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
+0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
+)
+(
+0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+)
+(
+0x00 LE_PAIRING_MODE_NONE
+0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
+0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
+0x04 LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT
+0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+0x84 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+(
+0x00 FLAG_LE_NO_BONDING_NO_MITM
+0x01 FLAG_LE_BONDING_NO_MITM
+0x04 FLAG_LE_NO_BONDING_MITM
+0x05 FLAG_LE_BONDING_MITM
+0x09 FLAG_LE_BONDING_NO_MITM_SECURE
+0x0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_SEND_RECURITY_REQ
+3 FLAG_LE_PAIRING_RCV_PAIRING_REQ
+4 FLAG_LE_PAIRING_WAIT_STK_GENERATION
+5 FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM
+6 FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM
+7 FLAG_LE_PAIRING_RECEIVE_PAIRING_RANDOM
+8 FLAG_LE_PAIRING_SEND_PAIRING_RANDOM
+9 FLAG_LE_PAIRING_AFTER_AUTH
+10 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+11 FLAG_LE_PARING_SEND_ENC_INFORMATION
+12 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+13 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+(
+0x01 SMP_PAIRING_REQUEST
+0x02 SMP_PAIRING_RESPONSE
+0x03 SMP_PAIRING_CONFIRM
+0x04 SMP_PAIRING_RANDOM
+0x05 SMP_PAIRING_FAILED
+0x06 SMP_ENCRYPTION_INFORMATION
+0x07 SMP_MASTER_IDENTIFICATION
+0x08 SMP_IDENTITY_INFORMATION
+0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+0x0A SMP_SIGNING_INFORMATION
+0x0B SMP_SECURITY_REQUEST
+0x0c SMP_PAIRING_PUBLIC_KEY
+0x0d SMP_PAIRING_DHKEY_CHECK
+)
+(// pairing failed reason
+0x00 PAIRING_FAILED_RESERVED
+0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+0X0A PAIRING_FAILED_INVALID_PARAMETERS
+0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+)
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+(
+0x00 LL_CONNECTION_UPDATE_IND
+0x01 LL_CHANNEL_MAP_IND
+0x02 LL_TERMINATE_IND
+0x03 LL_ENC_REQ
+0x04 LL_ENC_RSP
+0x05 LL_START_ENC_REQ
+0x06 LL_START_ENC_RSP
+0x07 LL_UNKNOWN_RSP
+0x08 LL_FEATURE_REQ
+0x09 LL_FEATURE_RSP
+0x0A LL_PAUSE_ENC_REQ
+0x0B LL_PAUSE_ENC_RSP
+0x0C LL_VERSION_IND
+0x0D LL_REJECT_IND
+0x0E LL_SLAVE_FEATURE_REQ
+0x0F LL_CONNECTION_PARAM_REQ
+0x10 LL_CONNECTION_PARAM_RSP
+0x11 LL_REJECT_IND_EXT
+0x12 LL_PING_REQ
+0x13 LL_PING_RSP
+0x14 LL_LENGTH_REQ
+0x15 LL_LENGTH_RSP
+0x16 LL_PHY_REQ
+0x17 LL_PHY_RSP
+0x18 LL_PHY_UPDATE_IND
+0x19 LL_MIN_USED_CHANNELS_IND
+0x1A LL_CTE_REQ
+0x1B LL_CTE_RSP
+0x1C LL_PERIODIC_SYNC_IND
+0x1D LL_CLOCK_ACCURACY_REQ
+0x1E LL_CLOCK_ACCURACY_RSP
+0x1F LL_CIS_REQ
+0x20 LL_CIS_RSP
+0x21 LL_CIS_IND
+0x22 LL_CIS_TERMINATE_IND
+0x23 LL_POWER_CONTROL_REQ
+0x24 LL_POWER_CONTROL_RSP
+0x25 LL_POWER_CHANGE_IND
+)
+(//bit map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0 BIT_LL_FEATURE_LE_ENCRYPTION
+1 BIT_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+2 BIT_LL_FEATURE_EXTENDED_REJECT_INDICATION
+3 BIT_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+4 BIT_LL_FEATURE_LE_PING
+5 BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+6 BIT_LL_FEATURE_LL_PRIVACY
+7 BIT_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+8 BIT_LL_FEATURE_LE_2M_PHY
+9 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+10 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+11 BIT_LL_FEATURE_LE_CODED_PHY
+12 BIT_LL_FEATURE_LE_EXTENDED_ADVERTISING
+13 BIT_LL_FEATURE_LE_PERIODIC_ADVERTISING
+14 BIT_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+15 BIT_LL_FEATURE_LE_POWER_CLASS_1
+16 BIT_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//function map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0x1 FUN_LL_FEATURE_LE_ENCRYPTION
+0x2 FUN_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+0x4 FUN_LL_FEATURE_EXTENDED_REJECT_INDICATION
+0x8 FUN_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+0x10 FUN_LL_FEATURE_LE_PING
+0x20 FUN_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+0x40 FUN_LL_FEATURE_LL_PRIVACY
+0x80 FUN_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+0x100 FUN_LL_FEATURE_LE_2M_PHY
+0x200 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+0x400 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+0x800 FUN_LL_FEATURE_LE_CODED_PHY
+0x1000 FUN_LL_FEATURE_LE_EXTENDED_ADVERTISING
+0x2000 FUN_LL_FEATURE_LE_PERIODIC_ADVERTISING
+0x4000 FUN_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+0x8000 FUN_LL_FEATURE_LE_POWER_CLASS_1
+0x10000 FUN_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//bit of mem_le_tx_phys and mem_le_rx_phys
+0x00 BIT_LE_1M_PHY
+0x01 BIT_LE_2M_PHY
+0x02 BIT_LE_CODED_PHY
+
+0x02 BIT_LE_CODED_PHY_S2
+0x07 BIT_LE_CODED_PHY_S8
+)
+(//map of mem_le_tx_phys and mem_le_rx_phys
+0x01 FUN_TX_LL_1M_PHY
+0x02 FUN_TX_LL_2M_PHY
+0x04 FUN_TX_LL_CODED_PHY
+
+0x01 FUN_RX_LL_1M_PHY
+0x02 FUN_RX_LL_2M_PHY
+0x04 FUN_RX_LL_CODED_PHY
+)
+(//mem_24g_data_type
+1 TYPE_MS
+2 TYPE_KB
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+(
+0 ERR_NULL
+1 ERR_SYNC_TO
+2 ERR_HEC
+3 ERR_LR_LEN
+4 ERR_TYPE
+5 ERR_LEN_OVER
+6 ERR_CRC
+)
+(//mem_24g_pair_sm
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+4 STATE_24G_PAIRING_4
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0X14 STATE_24G_PAIRING_4_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+(
+0x01 DATATYPE_DEVICE1	//mouse
+0x02 DATATYPE_DEVICE2	//keyboard
+0xaa DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK		//bind step 3
+0xff DATATYPE_ATTEMP	//reconn
+)
+(
+5 BIND_MODE_CONTINUE
+)
+(
+0 bit_ack_24g
+)
+(//mem_24g_reconn_type
+0 DEFAULT_24G_DEVICE
+1 FAST_CONN_AND_RECEIVER
+2 FAST_CONN_AND_3_0_ADDR
+3 RECEIVER_AND_3_0_ADDR
+4 PAIR_AND_3_0_ADDR
+)
+(
+0x50 RSSI_THRESH_NOISE
+)
+(
+1 NO_ACK_24G
+0 WITH_ACK_24G
+)
+(//mem_24g_conn_sm
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+(//mem_24g_transmit_by_interrupt
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+(
+1 OFFSET_DATA_TYPE
+2 OFFSET_LR_DATA_TYPE
+)
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
+0x124f80 G24_LONG_SLEEP_STEP3	//100ms
+63500 G24_8MS_INTERVAL_PARAM		//8ms
+12210 G24_4MS_INTERVAL_PARAM
+)
+(
+50 POWER_CTRL_DECRS_THRESHOLD
+)
+(
+0 QUEUE_OFFSET_EACH_SIZE
+1 QUEUE_OFFSET_LENGTH
+2 QUEUE_OFFSET_CURR_NUM
+3 QUEUE_OFFSET_READ_PTR
+4 QUEUE_OFFSET_WRITE_PTR
+5 QUEUE_OFFSET_ELE_INIT_ADDR
+)
+(
+//Flash Register
+0x05 FLASH_READ_SATUS
+
+// Flash Status Register
+0x00 FLASH_STATUS_WIP
+0X01 FLASH_STATUS_WEL
+0X02 FLASH_STATUS_BP0
+0X03 FLASH_STATUS_BP1
+
+//Flash Write Sm
+0X00 FLASH_SM_NO_BUYS
+0X01 FLASH_SM_START
+0X02 FLASH_SM_ERASE_SECTOR
+0X03 FLASH_SM_WAIT_ERASE_SECTOR
+0X04 FLASH_SM_WRITE_DATA
+0X05 FLASH_SM_WAIT_WRITE_DATA
+
+
+//Flash Command
+0x02 FLASH_COMMAND_WRITE_DATA
+0x03 FLASH_COMMAND_READ_DATA
+0x06 FLASH_COMMAND_WRITE_ENABLE
+0x20 FLASH_COMMAND_SECTOR_ERASE
+0x81 FLASH_COMMAND_PAGE_ERASE
+0xAB FLASH_COMMAND_RELEASE_FROM_POWERDOWN
+0xB9 FLASH_COMMAND_POWERDOWN
+
+)
+(
+7 OTP_UFLAG_MEMFIX2
+6 OTP_UFLAG_MEMFIX1
+5 OTP_UFLAG_MEMFIX0
+4 OTP_UFLAG_BIST
+3 OTP_UFLAG_AES
+2 OTP_UFLAG_SKIP_EEP
+1 OTP_UFLAG_SKIP_FLASH
+0 OTP_UFLAG_HCI
+)
+(
+0 OTP_OFFSET_PATCH_PTR //2 byte
+2 OTP_OFFSET_UCODE_FLAG
+3 OTP_OFFSET_DEVICE_OPTION
+4 OTP_OFFSET_PERIPHERALS_LOCK
+5 OTP_OFFSET_SCHED_BISTFIX 	//2 byte
+7 OTP_OFFSET_XRAM_BISTFIX	//2 byte
+9 OTP_OFFSET_PATCH_BISTFIX	//2 byte
+
+0xfc0 OTP_OFFSET_ADC_PARAM_L_C0
+
+0xfd0 OTP_OFFSET_ADC_PARAM_L
+0xff0 OTP_OFFSET_UCODE_KEY_L
+0x1000 OTP_OFFSET_H
+
+//0x1fd0 OTP_OFFSET_ADC_PARAM
+//0x1fec OTP_OFFSET_HV_SEL
+//0x1fed OTP_OFFSET_LDO_VSEL
+//0x1fee OTP_OFFSET_LOADCODE_DELAY
+//0x1fef OTP_OFFSET_LOADCODE_CHECKSUM
+0x1ff0 OTP_OFFSET_UCODE_KEY
+)
+(
+1 DVC_OP_2G4
+2 DVC_OP_BLE
+
+4 DVC_OP_DONGLE
+5 DVC_OP_TEST
+6 DVC_OP_SHUTTER_DY   
+7 DVC_OP_MOUSE_2G4
+8 DVC_OP_MOUSE
+9 DVC_OP_SHUTTER
+0X0A DVC_OP_MODULE
+0X0b DVC_OP_REMOTE_CONTROL
+0X0C DVC_OP_HCI_BOOT
+0X0D DVC_OP_REMOTE_CAR
+0X0E DVC_OP_CAR
+0X0F DVC_OP_KEYBOARD   
+)
+(
+7 GPIO_ACTIVE_BIT
+)
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+(
+2 APP_DISC_RSN_SIZE
+)
+(
+0 APP_DISC_BY_BUTTON
+7 APP_DISC_BLE
+)
+(
+0xaa55 EEPROM_INIT_FLAG
+)
+(
+1 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+)
+(
+12000000 PWM_12MHZ
+24000000 PWM_24MHZ
+33000 PWM_33KHZ
+)
+(
+0 POWER_OFF
+1 POWER_STARTING
+2 POWER_STANDBY
+)
+(
+0 power_state_offset
+1 power_timer_offset
+2 power_off_timeout_offset
+3 power_starting_timeout_offset
+4 power_off_cb_offset
+6 power_starting_cb_offset
+8 power_standby_cb_offset
+10 ui_butten_up_cb_offset
+)
+(
+0x9000 MOUSE_BLE_ATT_LIST_ADDR
+0x92aa USB_KBDATA_VENDOR_DEFINE_ADDR
+0x92c5 USB_KBDATA_ADDR
+0x9307 USB_MSDATA_ADDR
+0x93fb USB_DEVICEDATA_ADDR
+0x940e USB_CONFDATA_ADDR
+0x944a KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+0x94fc KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+0x95b8 KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+0x9684 BLE_SHUTTER_GATT_LIST_ADDR
+0x97bd BLE_SHUTTER_KEY_VALUE_LIST_ADDR
+0x97e5 BLE_CAR_ATT_LIST_ADDR
+0x97fc mem_sim_slave
+)
+(//NEC 61212
+9000 NEC61212_BOOT_CODE_START_TIME
+4500 NEC61212_BOOT_CODE_END_TIME
+
+9000 NEC61212_REPEAT_START_TIME
+2250 NEC61212_REPEAT_END_TIME
+
+560 NEC61212_DATA_BIT_1_START_TIME
+1690 NEC61212_DATA_BIT_1_END_TIME
+
+560 NEC61212_DATA_BIT_0_START_TIME
+560 NEC61212_DATA_BIT_0_END_TIME
+
+560 NEC61212_STOP_TIME
+
+42580 NEC61212_DATA2REPEAT_TIME
+98190 NEC61212_REPEAT2REPEAT_TIME
+
+0xffff NEC61212_TIMEOUT_TIME
+)
+(
+1 CLK_CALIBRATION_DONE
+2 RC_CLK_CALIBRATION_DONE
+3 AES_DEC_KEY_INIT_DONE
+4 MEASURE_ADC_SUM_DONE
+5 SARADC_DONE
+)
+(
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+(
+1 SADC_REFERENCE_INTER3V
+2 SADC_REFERENCE_INTER1P8V_DIV2
+)
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+(
+1 CAR_CMD_BATTERY
+2 CAR_CMD_OLD_CAR_CONTROL
+3 CAR_CMD_OLD_SPEED_CONTROL
+4 CAR_CMD_L_R_MOTOR_CONTROL
+5 CAR_CMD_F_B_MOTOR_CONTROL
+6 CAR_CMD_IR_CONTROL
+7 CAR_CMD_LED_CONTROL
+8 CAR_CMD_DEVICE_INFO
+)
+(
+0x0e HANDLE_OF_NOTIFY
+0x11 HANDLE_OF_WRITE
+)
+(
+0 G24_UNCONNECT
+1 G24_CONNECTED
+)
+(
+12 LEN_OF_24G_PAYLOAD
+11 LEN_OF_ACK_PAYLOAD
+)
+(
+0XAA G24_TX_PAIR_REQUEST
+0XBB G24_RX_PAIR_RESPONES
+0XCC G24_TX_REMOTE_CONTROL
+0XDD G24_RX_CONTROL_ACK
+0XEE G24_ERROR
+0xFF INVALID_PIN_NUM
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+(
+0x1f00 OTP_SYS_PARAM_CFG
+0x1fda OTP_MAC_ADDR
+0X1fdb OTP_MAC_ADDR_PIECENUM
+)
+(
+0x5A DONGLE_KB_BIND_SUCCESS
+0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
+0x1fc0 DONGLE_KB_BIND_OTP_OFFECT
+)
+(
+5 WORK_MODE_DELAY
+7 BIND_MODE_DELAY
+)
+(
+0 DONGLE_WORK	   		//connect mode normal
+1 DONGLE_BIND			//code pair mode
+2 DONGLE_TEST			//test mode
+3 DONGLE_CODE			//PC_application
+4 DONGLE_PCBA			//PCBA_TEST
+5 DONGLE_DEBUG
+6 DONGLE_MODE_MAX
+7 DONGLE_SEARCH
+0 CLEAR_INIT
+)
+(
+0xa0 COMMAND_MODE     //BYTE 0
+0x81 COM_MODE_BIND	//BYTE 1
+0x82 COM_MODE_TEST	//BYTE 1
+)
+(
+0xa1 COMMAND_BIND		//BYTE 0
+0x01 COM_BIND_GET		//1
+0x84 COM_BIND_EXIT		//1
+0xa7 COM_READ_MODE		//1
+)
+(
+0xa2 COMMAND_TEST	//BYTE 0
+0x81 COM_TEST_SC		//	���뵥�ز�
+0x82 COM_TEST_CD		// fcc����
+0x83 COM_TEST_DAT		// ���ݲ���
+0x84 COM_TEST_LOW_CH  //��Ƶ��
+0x85 COM_TEST_MID_CH	//��Ƶ��
+0x86 COM_TEST_HIG_CH	//��Ƶ��
+0x87 COM_TEST_SW_HIG	//�Զ��л�Ƶ��Ϊ�� 1mhz
+0x88 COIM_TEST_SW_LOW	//�Զ��л�Ƶ��Ϊ�� 1mhz
+0x89 COM_TEST_SW_STOP	//ֹͣ�Զ��л�Ƶ��
+0x8a COM_TEST_POW_5		//�����������5dbm
+0x8b COM_TEST_POW_0		//0dbm
+0x8c COM_TEST_POW_N5		//-5dbm
+0x8d COM_TEST_POW_N10		//-10dbm
+0x8e COM_TEST_EXIT			//�˳�����ģʽ
+)
+(
+0xa6 COMMAND_CURRENT_PROJECT
+0xa7 COMMAND_CURRENT_MODE
+0xa9 COMMAND_CURRENT_FW_VERSION
+0xb0 COMMAND_USER_DEFINED		//user defined cmd
+)
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+(
+640 TIMER_NODATA_DELAY	//200ms
+
+384 TIMER_MS_BLANK_DELAY
+
+384 TIMER_KB_MUL_BLANK_DELAY
+
+384 TIMER_KB_SYS_CRTL_BLANK_DELAY
+
+384 TIMER_KB_BLANK_DELAY
+)
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+2 KB_SYSTEM_CONCTRL_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+5 KB_BIT_CONSUMER_REPORT_ID
+8 KB_N_KEY_ROLLOVER_REPORT_ID
+)
+(
+0x01 BIND_ACKPAYLOAD
+0x03 KB_LED_ACKPAYLOAD
+)
+(
+7 DG_ENABLE_XTAL_24M
+6 DG_ENABLE_NEW_CHMAP
+5 DG_ENABLE_EEPROM
+4 DG_ENABLE_KB_ICON
+3 DG_ENABLE_24G_2M
+)
+(
+0x01 DEVICE_DATA_TPYE_MOUSE
+0x00 DEVICE_DATA_TPYE_KEYBOARD
+)
+(
+0x00 HID_REPORTID_KEY_STANDARD
+0x01 HID_REPORTID_MOUSE
+0x02 HID_REPORTID_SYSTEM_CTRL
+0x03 HID_REPORTID_CONSUMER_KEY
+0x05 HID_REPORTID_BIT_CONSUMER_KEY
+0x08 HID_REPORTID_N_KEY_ROLLOVER
+)
+(
+0x04	 HID_KEY_A
+0x05        HID_KEY_B
+0x06        HID_KEY_C
+0x07        HID_KEY_D
+0x08        HID_KEY_E
+0x09        HID_KEY_F
+0x0a        HID_KEY_G
+0x0b        HID_KEY_H
+0x0c        HID_KEY_I
+0x0d        HID_KEY_J
+0x0e        HID_KEY_K
+0x0f        HID_KEY_L
+0x10        HID_KEY_M
+0x11        HID_KEY_N
+0x12        HID_KEY_O
+0x13        HID_KEY_P
+0x14        HID_KEY_Q
+0x15        HID_KEY_R
+0x16        HID_KEY_S
+0x17        HID_KEY_T
+0x18        HID_KEY_U
+0x19        HID_KEY_V
+0x1a        HID_KEY_W
+0x1b        HID_KEY_X
+0x1c        HID_KEY_Y
+0x1d        HID_KEY_Z
+
+0x1e        HID_KEY_1
+0x1f        HID_KEY_2
+0x20        HID_KEY_3
+0x21        HID_KEY_4
+0x22        HID_KEY_5
+0x23        HID_KEY_6
+0x24        HID_KEY_7
+0x25        HID_KEY_8
+0x26        HID_KEY_9
+0x27        HID_KEY_0
+
+0x28        HID_KEY_ENTER
+0x29        HID_KEY_ESC
+0x2a        HID_KEY_BACKSPACE
+0x2b        HID_KEY_TAB
+0x2c        HID_KEY_SPACE
+0x2d        HID_KEY_MINUS				 		// -_
+0x2e        HID_KEY_EQUAL				 		// =+
+0x2f        HID_KEY_LEFT_BRACKET 		 	// [{
+0x30        HID_KEY_RIGHT_BRACKET 	 		// ]}
+0x31        HID_KEY_BACK_SLASH 		 		// \|
+
+0x32        HID_KEY_K42
+0x33        HID_KEY_SEMICOLON			 	// ;:
+0x34        HID_KEY_QUOTE				 		// ' "
+0x35        HID_KEY_TILDE				 		// `~
+0x36        HID_KEY_LESS_THAN			 		// ,<
+0x37        HID_KEY_GREAT_THAN		 		// .>
+0x38        HID_KEY_SLASH				 		// /?
+0x39        HID_KEY_CAPS_LOCK
+
+0x3a        HID_KEY_F1
+0x3b        HID_KEY_F2
+0x3c        HID_KEY_F3
+0x3d        HID_KEY_F4
+0x3e        HID_KEY_F5
+0x3f        HID_KEY_F6
+0x40        HID_KEY_F7
+0x41        HID_KEY_F8
+0x42        HID_KEY_F9
+0x43        HID_KEY_F10
+0x44        HID_KEY_F11
+0x45        HID_KEY_F12
+
+0x46        HID_KEY_PRINT_SCREEN
+0x47        HID_KEY_SCROLL_LOCK
+0x48        HID_KEY_PAUSE
+0x49        HID_KEY_INSERT
+0x4a        HID_KEY_HOME
+0x4b        HID_KEY_PAGE_UP
+0x4c        HID_KEY_DELETE
+0x4d        HID_KEY_END
+0x4e        HID_KEY_PAGE_DOWN
+
+0x4f        HID_KEY_RIGHT_ARROW
+0x50        HID_KEY_LEFT_ARROW
+0x51        HID_KEY_DOWN_ARROW
+0x52        HID_KEY_UP_ARROW
+
+0x53        HID_KEY_NUM_LOCK
+0x54        HID_KEY_KP_SLASH
+0x55        HID_KEY_KP_ASTERISK
+0x56        HID_KEY_KP_MINUS
+0x57        HID_KEY_KP_PLUS
+0x58        HID_KEY_KP_ENTER
+0x59        HID_KEY_KP_1
+0x5a        HID_KEY_KP_2
+0x5b        HID_KEY_KP_3
+0x5c        HID_KEY_KP_4
+0x5d        HID_KEY_KP_5
+0x5e        HID_KEY_KP_6
+0x5f        HID_KEY_KP_7
+0x60        HID_KEY_KP_8
+0x61        HID_KEY_KP_9
+0x62        HID_KEY_KP_0
+0x63        HID_KEY_KP_DEL
+
+0x64        HID_KEY_K45
+0x65        HID_KEY_APP
+0x66        HID_KEY_POWER
+0x67        HID_KEY_KP_EQUAL
+
+
+0x87        HID_KEY_K56
+0x88        HID_KEY_K133
+0x89        HID_KEY_K14
+0x8a        HID_KEY_K132
+0x8b        HID_KEY_K131
+
+0x90        HID_KEY_KR_R
+0x91        HID_KEY_KR_L
+
+0xe0        HID_KEY_LEFT_CTRL
+0xe1        HID_KEY_LEFT_SHIFT
+0xe2        HID_KEY_LEFT_ALT
+0xe3        HID_KEY_LEFT_GUI
+0xe4        HID_KEY_RIGHT_CTRL
+0xe5        HID_KEY_RIGHT_SHIFT
+0xe6        HID_KEY_RIGHT_ALT
+0xe7        HID_KEY_RIGHT_GUI
+
+0xe8 	HID_KEY_MULTIKEY_MEDIA
+0xe9 	HID_KEY_MULTIKEY_VOL_DOWN
+0xea 	HID_KEY_MULTIKEY_VOL_UP
+0xeb 	HID_KEY_MULTIKEY_MUTE
+0xec 	HID_KEY_MULTIKEY_PRE_TRACK
+0xed 	HID_KEY_MULTIKEY_NEXT_TRACK
+0xee 	HID_KEY_MULTIKEY_PALY
+0xef 	HID_KEY_MULTIKEY_STOP
+0xf0 	HID_KEY_AC_HOME
+0xf1 	HID_KEY_MAIL
+0xf2 	HID_KEY_MY_COMPUTER
+0xf3 	HID_KEY_AC_FAVORITES
+0xf4 	HID_KEY_CALCULATOR
+0xf5 	HID_KEY_AC_SEARCH
+0xf6 	HID_KEY_AC_BACK
+0xf7 	HID_KEY_OS_SOFT_KB
+0xf8 	HID_KEY_LIGHT_DOWN
+0xf9 	HID_KEY_LIGHT_UP
+0xfa 	HID_KEY_IOS_ANDROID_OS_LOCK
+0xfb	HID_KEY_MAC_EJECT
+0xfc	HID_KEY_AC_FORWARD
+0xfd	HID_KEY_AC_STOP
+0xfe	HID_KEY_android_set
+0xff 	HID_KEY_SYSTEM_SLEEP
+        // 0xe8~0xff reserved
+0xa5	HID_KEY_SELECT_ALL
+0xa6 	HID_KEY_COPY
+0xa7	HID_KEY_PASTE
+0xa8	HID_KEY_CUT
+0xa9	HID_KEY_ALL_OS_LOCK
+0xaa	HID_KEY_OSK
+0xab	HID_KEY_LANGUAGE
+0xac 	HID_KEY_APP_TILING
+0xad	HID_KEY_SEARCH
+0xae     	HID_KEY_PB
+0xaf	HID_KEY_ALL_OS_HOME
+	 // 0xa5~0xaf reserved
+0x7f     	HID_KEY_FN
+0x00     	HID_KEY_NULL
+)
+(
+0x01 LEFT_CONTROL
+0x02 LEFT_SHIFT
+0x04 LEFT_ALT
+0x08 LEFT_GUI
+0x10 RIGHT_CONTROL
+0x20 RIGHT_SHIFT
+0x40 RIGHT_ALT
+0x80 RIGHT_GUI
+0x09 LEFT_GUI_CONTROL
+0x0a LEFT_SHIFT_GUI
+)
+(
+0x00 KB_PC_KEYSEL_NUMLOCK
+0x01 KB_PC_KEYSEL_CAPSLOCK
+0x02 KB_PC_KEYSEL_SCROLLLOCK
+)
+(
+8 KEYSCAN_COL_NUM
+20 KEYSCAN_ROW_NUM
+)
+(
+0 CAMMBINATION_KEY_FREE
+1 CAMMBINATION_KEY_PRESS
+2 CAMMBINATION_KEY_HOLD
+3 CAMMBINATION_KEY_COMPLETE
+4 CAMMBINATION_KEY_WAIT_RELEASE
+5 CAMMBINATION_KEY_RELEASE
+6 CAMMBINATION_KEY_NULL
+)
+(
+
+0x600 PNP_MICROSOFT
+0x4c00 PNP_IOS
+0x1208 PNP_MAC
+
+
+0 SYSTEM_OS_WINDOWS
+1 SYSTEM_OS_ANDROID
+2 SYSTEM_OS_IOS
+3 SYSTEM_OS_MAC
+
+)
+(
+0 KEYBOARD_CONSUMER_KEY_STANDBY
+1 KEYBOARD_CONSUMER_KEY_PRESS
+2 KEYBOARD_CONSUMER_KEY_RELEASE
+)
+(
+//keyboard_function_flag
+0x08 KEYBOARD_FLAG_LEN
+//byte 0
+0x00 KEYBOARD_24G_PAIRING_FLAG
+0x01 KEYBOARD_STORE_MEMORY_FLAG
+0x02 KEYBOARD_LOW_VOLTAGE_FLAG
+0x03 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x04 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+//byte 1
+0x08 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+0x09 KEYBOARD_ENABLE_16M
+0x0a KEYBOARD_DISABLE_ICE
+0x0b KEYBOARD_ENABLE_ADC
+0x0c KEYBOARD_ENABLE_FLASH
+0x0d KEYBOARD_ENABLE_2K_EEPROM
+0x0e KEYBOARD_ENABLE_EEPROM
+0x0f KEYBOARD_ENABLE_OTP
+
+//byte 2
+0x10 KEYBOARD_ENABLE_24G
+0x11 KEYBOARD_ENABLE_AUTO_24G_PARING
+0x12 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x13 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x14 KEYBOARD_ENABLE_24G_2M_PHY
+0x15 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+
+//byte 3
+0x18 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+0x19 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x1a KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x1b KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+
+//byte 4
+0x20 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+0x21 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+0x22 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+0x23 KEYBOARD_ENABLE_MOUSE
+0x24 KEYBOARD_ENABLE_USB
+
+//byte 5
+0x28 KEYBOARD_ENABLE_030_POWER_LED
+0x29 KEYBOARD_ENABLE_LOW_LED
+0x2a KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+0x2b KEYBOARD_ENABLE_BACKLIGHT
+
+//byte 6
+0x30 KEYBOARD_ENABLE_FN_ARROW
+0x31 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+0x32 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+0x33 KEYBOARD_ENABLE_FN_OS_SWITCH
+0x34 KEYBOARD_ENABLE_FN_LOCK
+
+//byte 7
+0x38 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x39 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+0x3a KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+0x3b KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+0x3c KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+0x3d KEYBOARD_ENABLE_SDA_MULTI_R_LINE
+0x3e KEYBOARD_ENABLE_SDA_MULTI_ICE_LINE
+
+)
+(
+//eeprom address offect
+0x00 KEYBOARD_INFO_EEPROM_OFFECT
+0x00 KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT
+0x01 KEYBOARD_BLE_ADDR_EEPROM_OFFECT
+0x28 KEYBOARD_STORE_FLAG
+0x2b KEYBOARD_G24_ADDR_EEPROM_OFFECT	//4bytes
+0x2f KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET
+0x31 KEYBOARD_FN_FLAG_EEPROM_OFFSET
+0x36 KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET
+0x39 KEYBOARD_RGB_TPYE_OFFSET
+
+0x00 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO
+0x01 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR
+0x02 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR
+0x03 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK
+0x04 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM
+0x05 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE
+)
+(
+0 KEYBOARD_RGB_BLUE_STATUS
+1 KEYBOARD_RGB_GREEN_STATUS
+2 KEYBOARD_RGB_RED_STATUS
+
+0 RGB_BACKLIGHT_STATUS_OFF
+1 RGB_BACKLIGHT_STATUS_ON
+2 RGB_BACKLIGHT_STATUS_BREATHE
+
+0 RGB_BACKLIGHT_ON_TPYE_RED
+1 RGB_BACKLIGHT_ON_TPYE_ORANGE
+2 RGB_BACKLIGHT_ON_TPYE_PURPLE
+3 RGB_BACKLIGHT_ON_TPYE_GREEN
+4 RGB_BACKLIGHT_ON_TPYE_CYAN
+5 RGB_BACKLIGHT_ON_TPYE_BLUE
+6 RGB_BACKLIGHT_ON_TPYE_WHITE
+
+0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
+1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
+2 RGB_BACKLIGHT_BREATHE_TPYE_RED
+3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
+4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
+5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
+6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
+)
+(
+0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
+1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
+)
+(
+0x01 KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR
+0x02 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR
+0x03 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN
+)
+(
+0x20 KEYBOARD_BLE_L2CAP_TXBUFF_SIZE
+)
+(
+0 KEYBOARD_BATTARY_1V5
+1 KEYBOARD_BATTARY_3V0
+2 KEYBOARD_BATTARY_4V2
+)
+(//mem_module_flag
+//bit0~bit7 config module function
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_SEND_MTU23
+2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+//bit8~bit15 module states change
+8 MODULE_FLAG_BLE_DATA_FINISH
+
+)
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+(
+	5 FLAG_MODULE_READ_VDD_COUNT
+)
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+)
+(//Command
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x12 HCI_CMD_BLE_DISCONNECT
+0x13 HCI_CMD_DELETE_DEVICE
+0x14 HCI_CMD_CREATE_CONNECT
+0x26 HCI_CMD_SET_NVRAM_REQ
+0x27 HCI_CMD_SLEEP
+0x28 HCI_CMD_CONFIRM_GKEY
+0x2a HCI_CMD_AUTO_ADV_SCAN
+0x2b HCI_CMD_POWER_REQ
+0x2c HCI_CMD_POWER_SET
+0x30 HCI_CMD_PASSKEY_ENTRY
+0x31 HCI_CMD_SET_GPIO
+0x32 HCI_CMD_READ_GPIO
+0x33 HCI_CMD_LE_SET_PAIRING
+0x34 HCI_CMD_LE_SET_ADV_DATA
+0x35 HCI_CMD_LE_SET_SCAN_DATA
+0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
+0x37 HCI_CMD_LE_SET_ADV_PARM
+0x38 HCI_CMD_LE_START_PAIRING
+0x40 HCI_CMD_SET_WAKE_GPIO
+0x42 HCI_CMD_SET_TX_POWER
+0x43 HCI_CMD_BOOT_VERSION_REQ
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+0x49 HCI_CMD_REJECT_JUSTWORK
+0x51 HCI_CMD_RESET_CHIP_REQ
+
+0x61 HCI_CMD_LE_SET_FIXED_PASSKEY
+
+0x76 HCI_CMD_DELETE_CUSTOMIZE_SERVICE
+0x77 HCI_CMD_ADD_SERVICE_UUID
+0x78 HCI_CMD_ADD_CHARACTERISTIC_UUID
+0x7a HCI_CMD_PASSKEY_ENTRY_INPUT
+0x7b HCI_CMD_LE_CREAT_CONN
+
+0x90 HCI_CMD_BLE_SET_PHY
+0x91 HCI_CMD_BLE_READ_CURRENT_PHY
+0x92 HCI_CMD_BLE_SET_DLE
+0x93 HCI_CMD_READ_CHIP_DATA
+0x94 HCI_CMD_WRITE_CHIP_DATA
+0xff HCI_CMD_CLOSE_LPM
+)
+(//event
+0x00 HCI_EVENT_SPP_CONN_REP
+0x01 HCI_EVENT_HID_CONN_REP
+0x02 HCI_EVENT_LE_CONN_REP
+0x03 HCI_EVENT_SPP_DIS_REP
+0x04 HCI_EVENT_HID_DIS_REP
+0x05 HCI_EVENT_LE_DIS_REP
+0x06 HCI_EVENT_CMD_RES
+0x07 HCI_EVENT_SPP_DATA_REP
+0x08 HCI_EVENT_LE_DATA_REP
+0x09 HCI_EVENT_STANDBY_REP
+
+0x0a HCI_EVENT_STATUS_RES
+
+0x0D HCI_EVENT_NVRAM_REP
+0x0e HCI_EVENT_GKEY
+0x0F HCI_EVENT_INVALID_PACKET
+0x10 HCI_EVENT_GET_PASSKEY
+0x11 HCI_EVENT_LE_TK
+0x12 HCI_EVENT_REMOTE_MTU
+0x14 HCI_EVENT_LE_PAIRING_STATE
+0X15 HCI_EVENT_LE_ENCRYPTION_STATE
+0x17 HCI_EVENT_LE_CONNECTION_UPDATE
+0x1d HCI_EVENT_LE_GKEY
+0x29 HCI_EVENT_UUID_HANDLE
+0x2b HCI_EVENT_LE_INPUT_GKEY
+
+0x40 HCI_BLE_UPDATE_PHY_EVENT
+)
+(//command HCI_CMD_SET_GPIO
+//byte 0
+0x00 HCI_CMD_CONFIG_GPIO_INPUT
+0x01 HCI_CMD_CONFIG_GPIO_OUTPUT
+//byte 1 input state
+0x00 GPIO_INPUT_PULLUP
+0x01 GPIO_INPUT_PULLDOWN
+0x02 GPIO_INPUT_HIGH_IMPEDANCE
+)
+(
+0x0080	FLAG_BLE_PAIRING_SUCCESS
+0x0180	FLAG_BLE_PAIRING_FAIL
+)
+(
+1	FLAG_EVENT_START_ENC
+0	FLAG_EVENT_PAUSE_ENC
+)
+(
+0 MOUDLE_STATE_BT_BIT
+1 MOUDLE_STATE_BLE_BIT
+)
+(
+5 BIT_OF_NOTIFY_AUTHENTICATED
+6 BIT_OF_READ_AUTHENTICATED
+7 BIT_OF_WRITE_AUTHENTICATED
+)
+(
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0x03 MOUSE_LR_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
+0x12 MOUSE_R_FW_BUTTON
+0x12 MOUSE_M_BK_BUTTON
+0x14 MOUSE_M_FW_BUTTON
+0X18 MOUSE_BK_FW_BUTTON
+//mouse default gpio
+0x1B MOUSE_DEFAULT_XA_GPIO
+0x1C MOUSE_DEFAULT_XB_GPIO
+
+//ui led blink
+0X00C8  LED_RECONNECT_BLINK //200
+0X0190  LED_DPI_BLINK //400
+0X03E8  LED_DPI_BLINK_FIXED    //1000
+0X03E8  LED_DISCOVERY_BLINK    //1000
+0XFF    LED_LONG_BLINK
+0x05	LED_SENSOR_BLINK_CNT
+//mode device number
+0x00 MODE_24G_DEVICE
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x04 MODE_USB_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0x08 MOUSE_FLAG_LEN
+//byte 1
+0x00 MOUSE_SELECT_DEVICE_FLAG
+0x01 MOUSE_24G_PAIRING_FLAG
+0x02 MOUSE_STORE_EEPROM_FLAG
+0x03 MOUSE_BT_CANNEL_RECONN_FLAG
+0x04 MOUSE_LOW_VOLTAGE_FLAG
+0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+0x07 MOUSE_ENABLE_SPI2
+
+//byte 2
+0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0x09 MOUSE_ENABLE_2K_EEPROM
+0x0a MOUSE_ENABLE_WAKEUP_FROM_POWER
+0x0b MOUSE_ENABLE_16M
+0x0c MOUSE_ENABLE_USB
+0x0d MOUSE_ENABLE_24G_SEARCH_DONGLE
+0x0e MOUSE_ENABLE_LOAD_AND_STORE_DPI
+0x0f MOUSE_ENABLE_24G
+
+//byte 3
+0x10 MOUSE_ENABLE_FLASH
+0x11 MOUSE_ENABLE_EEPROM
+0x12 MOUSE_ENABLE_OTP
+0x13 MOUSE_ENABLE_ADC
+0x14 MOUSE_ENABLE_KEYBOARD
+0x15 MOUSE_ENABLE_DOUBLE_DPI_KEY
+0x16 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+
+//byte 4
+0x18 MOUSE_ENABLE_24G_250Hz
+0x19 MOUSE_ENABLE_24G_500Hz
+0x1a MOUSE_ENABLE_24G_1000
+0x1b MOUSE_ENABLE_BT_125Hz
+0x1c MOUSE_ENABLE_DPI_LEVEL_4
+0x1d MOUSE_ENABLE_USB_250
+0x1e MOUSE_ENABLE_USB_500
+0x1f MOUSE_ENABLE_USB_1000
+
+//byte 5
+0x20 MOUSE_ENABLE_1IO2LED
+0x21 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+0x22 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+0x23 MOUSE_ENABLE_LOW_LED
+0x24 MOUSE_ENABLE_LOW_FOR_LED
+0x25 MOUSE_ENABLE_DPI_FOR_LED
+
+//byte 6
+0x28 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+0x29 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+0x2a MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x2b MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+0x2c MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+0x2d MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+0x2e MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+0x2f MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN
+
+//byte 7 
+0x30 MOUSE_ENABLE_AUTO_24G_PARING
+0x31 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+0x32 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x33 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x34 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+0x35 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+0x36 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+0x37 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+
+//byte 8
+0x38 MOUSE_ENABLE_SMOOTHER
+0x39 MOUSE_ENABLE_XY_OFFSET
+0x3a MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x3b MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x3c MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+0x3d MOUSE_ENABLE_24G_2M_PHY
+0x3e MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+//mouse dpi level
+0x00 MOUSE_DPI_LEVEL1
+0x01 MOUSE_DPI_LEVEL2
+0x02 MOUSE_DPI_LEVEL3
+0x03 MOUSE_DPI_LEVEL4
+
+
+//mouse sensor angle
+0x00 MOUSE_6CLK_ANGLE
+0X01 MOUSE_9CLK_ANGLE
+0X02 MOUSE_12CLK_ANGLE
+0X03 MOUSE_3CLK_ANGLE
+
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_UP
+0x01 DPI_BUTTON_STATE_DOWN
+
+
+//PB button state 
+0x00 PB_BUTTON_STATE_UP
+0x01 PB_BUTTON_STATE_DOWN
+
+//Commbination_key state 
+0x00 COMMBINATION_KEY_STATE_UP
+0x01 COMMBINATION_KEY_STATE_DOWN
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0x58 MOUSE_STORE_FLAG
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_EEPROM_MODULE_INIT_FLAG
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0x00 P3065_ID2
+0x5a P_MX8650
+0xD8 P8009_ID2
+0x50 P6520A_ID2
+0x57 KA5857_ID2
+0x58 PKA8G2_ID1
+0x59 PKA8G2_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 P3204
+0X03 P3212
+0X04 P3065_XY
+0x05 MX8650
+0x06 P8009
+0x07 P6520
+0X08 KA8
+0X09 KA8_UL
+0X0a KA8_HD
+0X0b KA8G2
+0X0c S201X
+0X0d KA5857
+
+
+//SENSOR REG
+0x00 PAN_REG_PID_L
+0x01 PAN_REG_PID_H
+0x02 PAN_REG_MOTION_STAUS
+0x03 PAN_REG_DELTA_X
+0x04 PAN_REG_DELTA_Y
+0x05 PAN_REG_OPRATION_MODE
+0x06 PAN_REG_CONFIG
+0x07 PAN_REG_IMAGE_QUALITY
+0x08 PAN_REG_OPRATION_STATE
+0x09 PAN_REG_WRITE_PROTECT
+0x0A PAN_REG_SLEEP_1
+0x0B PAN_REG_ENTER_TIME
+0x0C PAN_REG_SLEEP_2
+0x0D PAN_REG_IMAGE_THRESHOLD
+0x0E PAN_REG_IMAGE_RECGNITION
+
+
+0x06 MOUSE_DPI_ADDRESS
+0x05 MOUSE_P3610_DPI_ADDRESS
+0x0D MOUSE_P3212_DPI_XADDRESS
+0x0E MOUSE_P3212_DPI_YADDRESS
+
+)
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+(
+2 BIT_POWER_ON
+)
+(
+0x00 MOUSE_L_KEY
+0x01 MOUSE_R_KEY
+0x02 MOUSE_M_KEY
+0x03 MOUSE_BK_KEY
+0x04 MOUSE_FW_KEY
+0x05 MOUSE_DPI_KEY
+0x06 MOUSE_PB_KEY
+0x07 MOUSE_CUSTOMER_KEY
+0x00 MOUSE_DPI_ANOTHER_KEY
+)
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+(
+1 KEY_DOWN 
+0 KEY_UP 
+)
+(
+0x00 KEYPAD_TYPE_CONSUMER
+0x01 KEYPAD_TYPE_MOUSE
+0x02 KEYPAD_TYPE_KEYPAD
+0x03 KEYPAD_TYPE_NEC
+)
+(
+0x03 MAX_QUEUE_UNIT
+)
+(
+0x100 NEC_STORE_BUF_SIZE
+0x3fff NEC_LEAR_HEAD
+)
+(
+0 INDEX_0
+1 INDEX_1
+2 INDEX_2
+3 INDEX_3
+4 INDEX_4
+5 INDEX_5
+6 INDEX_6
+7 INDEX_7
+8 INDEX_8
+9 INDEX_9
+10 INDEX_10
+11 INDEX_11
+12 INDEX_12
+13 INDEX_13
+14 INDEX_14
+15 INDEX_15
+16 INDEX_16
+17 INDEX_17
+18 INDEX_18
+19 INDEX_19
+20 INDEX_20
+)
+(
+0x00 NONE_FILTER
+0x01 WHITE_LIST_SCAN_FILTER
+0x02 WHITE_LIST_CONNECT_FILTER
+0x03 WHITE_LIST_CONN_SCAN_FILTER
+)
+(
+0xAB OTA_EVENT
+0xBA OTA_COMMAND
+)
+(
+0x10 OTA_PORTOCOL_VERSION_REQUEST
+0x11 OTA_BUCK_SIZE_REQUEST
+0x12 OTA_WORK_MODE_REQUEST
+0x13 OTA_SWITCH_WORK_MODE_REQUEST
+0x14 OTA_FLASH_CHECKSUM_REQUEST
+0x15 OTA_START_REQUEST
+0x16 OTA_DATA_WRITE_CMD
+0x17 OTA_DATA_WRITE_REQUEST
+0x18 OTA_END_REQUEST
+)
+(
+0x00 OTA_UPDATE_FLASH_NORMAL
+)
+(
+0x00 OTA_RESULT_SUCCESS
+0x01 OTA_RESULT_WORKMODE_NOT_SUPPORT
+0x02 OTA_RESULT_WORKMODE_ERROR
+0x03 OTA_RESULT_FLASHMODE_NOT_SUPPORT
+0x04 OTA_RESULT_INDEX_ERROR
+0x05 OTA_RESULT_LENGTH_ERROR
+0x06 OTA_RESULT_BUCK_SIZE_ERROR
+0x07 OTA_RESULT_WRITE_FLASH_ERROR
+0xFF OTA_RESULT_ERROR
+)
+(
+0x01 OTA_LE_CONN_PARAM_UPDATE_ENABLE
+0x00 OTA_LE_CONN_PARAM_UPDATE_DISABLE
+)
+(
+0 BLE_SHUTTER
+1 CLASSIC_SHUTTER
+)
+(
+0x0000 NVRAM_EEPROM_OFFSET
+)
+(
+0x1b3a SHUTTER_EEPROM_CONFIG_CRC
+)
+(
+5 MAX_QUEUE_NUM
+5 SHUTTER_BLE_DATA_BUFFER
+5 SHUTTER_CLASSIC_DATA_BUFFER
+)
+(
+0x13	GATT_CONSUMER_NOTIFY_HANDLE
+0x14	GATT_CONSUMER_WRITE_HANDLE
+0x17	GATT_KEYBOARD_NOTIFY_HANDLE
+0x18	GATT_KEYBOARD_WRITE_HANDLE
+)
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE
+//100ms
+0x00a0	SLOW_ADV_INTERVAL_VALUE
+)
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+(//Data Rom Buffer Addr
+313		BLE_GATT_LIST_SIZE
+487		BT_SDP_LIST_SIZE
+40		BLE_KEY_VALUE_LIST_SIZE
+40		BT_KEY_VALUE_LIST_SIZE
+)
+(//soft switch power state
+0		SS_STATE_POWER_UP
+1		SS_STATE_POWER_ON
+2		SS_STATE_POWER_OFF
+)
+(
+0		SS_POWER_STATE_OFFSET
+1		SS_POWER_ON_TIME
+2		SS_POWER_OFF_TIME
+3		SS_POWER_ON_CB
+5		SS_POWER_OFF_CB
+
+)
+(
+
+0x4FFE SIM_IIC_SCL_GPIO_NUM
+0x4FFF SIM_IIC_SDA_GPIO_NUM
+
+)
+(
+0 SHUTTER_TYPE
+1 SHUTTER_DY_TYPE
+)
+(
+10 MAX_QUEUE_NUM_COMBINEKEY
+15 MAX_QUEUE_NUM_RELEASE
+3 MAX_QUEUE_NUM_LONG
+3 MAX_QUEUE_NUM_LONG_RELEASE
+10 MAX_QUEUE_NEW_PRESS
+
+10 EVERY_PAYLOAD_LEN
+)
+(
+0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
+)
+(//Data Rom Buffer Addr
+640		BT_DY_KEY_VALUE_LIST_SIZE
+)
+(
+0x05   SHUTTER_PARA_TOTAL_NUM
+//0x7b0  SHUTTER_EFUSE_START_OFFECT	//起始地址
+//0x680  SHUTTER_EFUSE_END_OFFECT	       //结束地址
+)
+(
+//uart config
+115200 UART_BAUD
+)
+(
+10 SHUTTER_KEY_CONF_SATE_BYTES
+0 KEY_STATE_PRESS_CLK_OFFSET
+4 KEY_STATE_PRESS_COUNT_OFFSET
+5 KEY_STATE_RELEASE_CLK_OFFSET
+9 KEY_STATE_LONGPRESS_OFFSET
+4 KEY_STATE_PRESS_CLK_LENGTH
+1 KEY_STATE_PRESS_COUNT_LENGTH
+4 KEY_STATE_RELEASE_CLK_LENGTH
+1 KEY_STATE_LONGPRESS_LENGTH
+)
+(
+0  SHUTTER_RIGHT_KEY_NUM
+1  SHUTTER_LIKE_KEY_NUM
+2  SHUTTER_DOWN_KEY_NUM
+3  SHUTTER_PHOTO_KEY_NUM
+4  SHUTTER_UP_KEY_NUM
+5  SHUTTER_LEFT_KEY_NUM
+6  SHUTTER_MOVE_KEY_NUM
+7  SHUTTER_FUN_KEY_NUM
+)
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X55 ANDROID_EVERY_MOVE_SIZE
+0x07 IPHONE_EVERY_MOVE_SIZE
+0xfff IPHONE_ONCE_MAX_MOVE_VALUE
+)
+(
+0x00 MOVE_COMBINE_KEY
+0x01 MOVE_SINGLE_KEY
+)
+(
+//6key or 7key conf
+6 SHUTTER_SIX_KEY
+7 SHUTTER_SEVEN_KEY
+8 SHUTTER_EIGHT_KEY
+)
+(
+0x07 HCI_UART_TX_GPIO_NUM
+0x06 HCI_UART_RX_GPIO_NUM
+0x09 HCI_UART_RTS_GPIO_NUM
+0x0a HCI_UART_CTS_GPIO_NUM
+0x0c HCI_PMW_12MHZ_GPIO_NUM
+)
+(
+0x00 COMMAND_SUCCEEDED
+0x01 COMMAND_UNKNOWN
+0x0c COMMAND_DISALLOWED
+)
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+)
+(
+0x00 BT_ACL_START_NO_FLUSH
+0x01 BT_ACL_CONT
+0x02 BT_ACL_START
+)
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_CONTROLLER_AND_BASEBAND
+0x04 HCI_OGF_INFOMATIONAL_PARAM
+0x05 HCI_OGF_STATUS_PARAM
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LE_CONTROLLER
+0x3f HCI_OGF_VENDOR_SPECIFIC_DEBUG
+)
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+
+0X12 HCI_VENDOR_CMD_PATCH_SEC_INIT
+0X13 HCI_VENDOR_CMD_PATCH_SEC
+0x14 HCI_VENDOR_CMD_SET_FLOW_CONTROL
+)
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+8 G24_CH_NUMBER
+16 G24_CH_POLL_COUNT
+
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE
+
+0x5a USB_INTERFACE_INSERT
+0xa5 USB_INTERFACE_REMOVE
+
+
+10 LE_LPM_DISABLE_TO
+1 LE_LPM_DISABLE
+0 LE_LPM_ENABLE
+
+12 LE_INTERVAL_15MS
+9 LE_INTERVAL_11_25MS//11.25ms
+7 LE_INTERVAL_8_75MS//8.75ms
+6 LE_INTERVAL_7_5MS//7.5ms
+12 CLASSIC_INTERVAL_7_5MS
+14 CLASSIC_INTERVAL_8_75MS
+18 CLASSIC_INTERVAL_11_25MS
+
+)(
+256 l2cap_lpm_txbuf_len
+)
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0xf00 mem_dcoc_buf
+0xff0 mem_dcoc_buf_end
+)
+(
+0xf00 mem_le_l2cap_buf		//0x100
+)
+(
+0xd00 mem_ble_tx_buff0
+0x60 mem_ble_l2cap_tx_buff_size
+)
+(
+0xc00 mem_h5rx_buf//0x400
+0xeff mem_h5rx_buf_end
+0xf00 mem_h5tx_buf
+0xfff mem_h5tx_buf_end
+)
+(
+0x4c00 mem_savelist
+)
+(
+	  0 patch00_0
+	  1 patch00_1
+	  2 patch00_2
+	  3 patch00_3
+	  4 patch00_4
+	  5 patch00_5
+	  6 patch00_6
+	  7 patch00_7
+	  8 patch01_0
+	  9 patch01_1
+	 10 patch01_2
+	 11 patch01_3
+	 12 patch01_4
+	 13 patch01_5
+	 14 patch01_6
+	 15 patch01_7
+	 16 patch02_0
+	 17 patch02_1
+	 18 patch02_2
+	 19 patch02_3
+	 20 patch02_4
+	 21 patch02_5
+	 22 patch02_6
+	 23 patch02_7
+	 24 patch03_0
+	 25 patch03_1
+	 26 patch03_2
+	 27 patch03_3
+	 28 patch03_4
+	 29 patch03_5
+	 30 patch03_6
+	 31 patch03_7
+	 32 patch04_0
+	 33 patch04_1
+	 34 patch04_2
+	 35 patch04_3
+	 36 patch04_4
+	 37 patch04_5
+	 38 patch04_6
+	 39 patch04_7
+	 40 patch05_0
+	 41 patch05_1
+	 42 patch05_2
+	 43 patch05_3
+	 44 patch05_4
+	 45 patch05_5
+	 46 patch05_6
+	 47 patch05_7
+	 48 patch06_0
+	 49 patch06_1
+	 50 patch06_2
+	 51 patch06_3
+	 52 patch06_4
+	 53 patch06_5
+	 54 patch06_6
+	 55 patch06_7
+	 56 patch07_0
+	 57 patch07_1
+	 58 patch07_2
+	 59 patch07_3
+	 60 patch07_4
+	 61 patch07_5
+	 62 patch07_6
+	 63 patch07_7
+	 64 patch08_0
+	 65 patch08_1
+	 66 patch08_2
+	 67 patch08_3
+	 68 patch08_4
+	 69 patch08_5
+	 70 patch08_6
+	 71 patch08_7
+	 72 patch09_0
+	 73 patch09_1
+	 74 patch09_2
+	 75 patch09_3
+	 76 patch09_4
+	 77 patch09_5
+	 78 patch09_6
+	 79 patch09_7
+	 80 patch0a_0
+	 81 patch0a_1
+	 82 patch0a_2
+	 83 patch0a_3
+	 84 patch0a_4
+	 85 patch0a_5
+	 86 patch0a_6
+	 87 patch0a_7
+	 88 patch0b_0
+	 89 patch0b_1
+	 90 patch0b_2
+	 91 patch0b_3
+	 92 patch0b_4
+	 93 patch0b_5
+	 94 patch0b_6
+	 95 patch0b_7
+	 96 patch0c_0
+	 97 patch0c_1
+	 98 patch0c_2
+	 99 patch0c_3
+	100 patch0c_4
+	101 patch0c_5
+	102 patch0c_6
+	103 patch0c_7
+	104 patch0d_0
+	105 patch0d_1
+	106 patch0d_2
+	107 patch0d_3
+	108 patch0d_4
+	109 patch0d_5
+	110 patch0d_6
+	111 patch0d_7
+	112 patch0e_0
+	113 patch0e_1
+	114 patch0e_2
+	115 patch0e_3
+	116 patch0e_4
+	117 patch0e_5
+	118 patch0e_6
+	119 patch0e_7
+	120 patch0f_0
+	121 patch0f_1
+	122 patch0f_2
+	123 patch0f_3
+	124 patch0f_4
+	125 patch0f_5
+	126 patch0f_6
+	127 patch0f_7
+	128 patch10_0
+	129 patch10_1
+	130 patch10_2
+	131 patch10_3
+	132 patch10_4
+	133 patch10_5
+	134 patch10_6
+	135 patch10_7
+	136 patch11_0
+	137 patch11_1
+	138 patch11_2
+	139 patch11_3
+	140 patch11_4
+	141 patch11_5
+	142 patch11_6
+	143 patch11_7
+	144 patch12_0
+	145 patch12_1
+	146 patch12_2
+	147 patch12_3
+	148 patch12_4
+	149 patch12_5
+	150 patch12_6
+	151 patch12_7
+	152 patch13_0
+	153 patch13_1
+	154 patch13_2
+	155 patch13_3
+	156 patch13_4
+	157 patch13_5
+	158 patch13_6
+	159 patch13_7
+	160 patch14_0
+	161 patch14_1
+	162 patch14_2
+	163 patch14_3
+	164 patch14_4
+	165 patch14_5
+	166 patch14_6
+	167 patch14_7
+	168 patch15_0
+	169 patch15_1
+	170 patch15_2
+	171 patch15_3
+	172 patch15_4
+	173 patch15_5
+	174 patch15_6
+	175 patch15_7
+	176 patch16_0
+	177 patch16_1
+	178 patch16_2
+	179 patch16_3
+	180 patch16_4
+	181 patch16_5
+	182 patch16_6
+	183 patch16_7
+	184 patch17_0
+	185 patch17_1
+	186 patch17_2
+	187 patch17_3
+	188 patch17_4
+	189 patch17_5
+	190 patch17_6
+	191 patch17_7
+	192 patch18_0
+	193 patch18_1
+	194 patch18_2
+	195 patch18_3
+	196 patch18_4
+	197 patch18_5
+	198 patch18_6
+	199 patch18_7
+	200 patch19_0
+	201 patch19_1
+	202 patch19_2
+	203 patch19_3
+	204 patch19_4
+	205 patch19_5
+	206 patch19_6
+	207 patch19_7
+	208 patch1a_0
+	209 patch1a_1
+	210 patch1a_2
+	211 patch1a_3
+	212 patch1a_4
+	213 patch1a_5
+	214 patch1a_6
+	215 patch1a_7
+	216 patch1b_0
+	217 patch1b_1
+	218 patch1b_2
+	219 patch1b_3
+	220 patch1b_4
+	221 patch1b_5
+	222 patch1b_6
+	223 patch1b_7
+	224 patch1c_0
+	225 patch1c_1
+	226 patch1c_2
+	227 patch1c_3
+	228 patch1c_4
+	229 patch1c_5
+	230 patch1c_6
+	231 patch1c_7
+	232 patch1d_0
+	233 patch1d_1
+	234 patch1d_2
+	235 patch1d_3
+	236 patch1d_4
+	237 patch1d_5
+	238 patch1d_6
+	239 patch1d_7
+	240 patch1e_0
+	241 patch1e_1
+	242 patch1e_2
+	243 patch1e_3
+	244 patch1e_4
+	245 patch1e_5
+	246 patch1e_6
+	247 patch1e_7
+	248 patch1f_0
+	249 patch1f_1
+	250 patch1f_2
+	251 patch1f_3
+	252 patch1f_4
+	253 patch1f_5
+	254 patch1f_6
+	255 patch1f_7
+	  0 patch20_0
+	  1 patch20_1
+	  2 patch20_2
+	  3 patch20_3
+	  4 patch20_4
+	  5 patch20_5
+	  6 patch20_6
+	  7 patch20_7
+	  8 patch21_0
+	  9 patch21_1
+	 10 patch21_2
+	 11 patch21_3
+	 12 patch21_4
+	 13 patch21_5
+	 14 patch21_6
+	 15 patch21_7
+	 16 patch22_0
+	 17 patch22_1
+	 18 patch22_2
+	 19 patch22_3
+	 20 patch22_4
+	 21 patch22_5
+	 22 patch22_6
+	 23 patch22_7
+	 24 patch23_0
+	 25 patch23_1
+	 26 patch23_2
+	 27 patch23_3
+	 28 patch23_4
+	 29 patch23_5
+	 30 patch23_6
+	 31 patch23_7
+	 32 patch24_0
+	 33 patch24_1
+	 34 patch24_2
+	 35 patch24_3
+	 36 patch24_4
+	 37 patch24_5
+	 38 patch24_6
+	 39 patch24_7
+	 40 patch25_0
+	 41 patch25_1
+	 42 patch25_2
+	 43 patch25_3
+	 44 patch25_4
+	 45 patch25_5
+	 46 patch25_6
+	 47 patch25_7
+	 48 patch26_0
+	 49 patch26_1
+	 50 patch26_2
+	 51 patch26_3
+	 52 patch26_4
+	 53 patch26_5
+	 54 patch26_6
+	 55 patch26_7
+	 56 patch27_0
+	 57 patch27_1
+	 58 patch27_2
+	 59 patch27_3
+	 60 patch27_4
+	 61 patch27_5
+	 62 patch27_6
+	 63 patch27_7
+	 64 patch28_0
+	 65 patch28_1
+	 66 patch28_2
+	 67 patch28_3
+	 68 patch28_4
+	 69 patch28_5
+	 70 patch28_6
+	 71 patch28_7
+	 72 patch29_0
+	 73 patch29_1
+	 74 patch29_2
+	 75 patch29_3
+	 76 patch29_4
+	 77 patch29_5
+	 78 patch29_6
+	 79 patch29_7
+	 80 patch2a_0
+	 81 patch2a_1
+	 82 patch2a_2
+	 83 patch2a_3
+	 84 patch2a_4
+	 85 patch2a_5
+	 86 patch2a_6
+	 87 patch2a_7
+	 88 patch2b_0
+	 89 patch2b_1
+	 90 patch2b_2
+	 91 patch2b_3
+	 92 patch2b_4
+	 93 patch2b_5
+	 94 patch2b_6
+	 95 patch2b_7
+	 96 patch2c_0
+	 97 patch2c_1
+	 98 patch2c_2
+	 99 patch2c_3
+	100 patch2c_4
+	101 patch2c_5
+	102 patch2c_6
+	103 patch2c_7
+	104 patch2d_0
+	105 patch2d_1
+	106 patch2d_2
+	107 patch2d_3
+	108 patch2d_4
+	109 patch2d_5
+	110 patch2d_6
+	111 patch2d_7
+	112 patch2e_0
+	113 patch2e_1
+	114 patch2e_2
+	115 patch2e_3
+	116 patch2e_4
+	117 patch2e_5
+	118 patch2e_6
+	119 patch2e_7
+	120 patch2f_0
+	121 patch2f_1
+	122 patch2f_2
+	123 patch2f_3
+	124 patch2f_4
+	125 patch2f_5
+	126 patch2f_6
+	127 patch2f_7
+	128 patch30_0
+	129 patch30_1
+	130 patch30_2
+	131 patch30_3
+	132 patch30_4
+	133 patch30_5
+	134 patch30_6
+	135 patch30_7
+	136 patch31_0
+	137 patch31_1
+	138 patch31_2
+	139 patch31_3
+	140 patch31_4
+	141 patch31_5
+	142 patch31_6
+	143 patch31_7
+	144 patch32_0
+	145 patch32_1
+	146 patch32_2
+	147 patch32_3
+	148 patch32_4
+	149 patch32_5
+	150 patch32_6
+	151 patch32_7
+	152 patch33_0
+	153 patch33_1
+	154 patch33_2
+	155 patch33_3
+	156 patch33_4
+	157 patch33_5
+	158 patch33_6
+	159 patch33_7
+	160 patch34_0
+	161 patch34_1
+	162 patch34_2
+	163 patch34_3
+	164 patch34_4
+	165 patch34_5
+	166 patch34_6
+	167 patch34_7
+	168 patch35_0
+	169 patch35_1
+	170 patch35_2
+	171 patch35_3
+	172 patch35_4
+	173 patch35_5
+	174 patch35_6
+	175 patch35_7
+	176 patch36_0
+	177 patch36_1
+	178 patch36_2
+	179 patch36_3
+	180 patch36_4
+	181 patch36_5
+	182 patch36_6
+	183 patch36_7
+	184 patch37_0
+	185 patch37_1
+	186 patch37_2
+	187 patch37_3
+	188 patch37_4
+	189 patch37_5
+	190 patch37_6
+	191 patch37_7
+	192 patch38_0
+	193 patch38_1
+	194 patch38_2
+	195 patch38_3
+	196 patch38_4
+	197 patch38_5
+	198 patch38_6
+	199 patch38_7
+	200 patch39_0
+	201 patch39_1
+	202 patch39_2
+	203 patch39_3
+	204 patch39_4
+	205 patch39_5
+	206 patch39_6
+	207 patch39_7
+	208 patch3a_0
+	209 patch3a_1
+	210 patch3a_2
+	211 patch3a_3
+	212 patch3a_4
+	213 patch3a_5
+	214 patch3a_6
+	215 patch3a_7
+	216 patch3b_0
+	217 patch3b_1
+	218 patch3b_2
+	219 patch3b_3
+	220 patch3b_4
+	221 patch3b_5
+	222 patch3b_6
+	223 patch3b_7
+	224 patch3c_0
+	225 patch3c_1
+	226 patch3c_2
+	227 patch3c_3
+	228 patch3c_4
+	229 patch3c_5
+	230 patch3c_6
+	231 patch3c_7
+	232 patch3d_0
+	233 patch3d_1
+	234 patch3d_2
+	235 patch3d_3
+	236 patch3d_4
+	237 patch3d_5
+	238 patch3d_6
+	239 patch3d_7
+	240 patch3e_0
+	241 patch3e_1
+	242 patch3e_2
+	243 patch3e_3
+	244 patch3e_4
+	245 patch3e_5
+	246 patch3e_6
+	247 patch3e_7
+	248 patch3f_0
+	249 patch3f_1
+	250 patch3f_2
+	251 patch3f_3
+	252 patch3f_4
+	253 patch3f_5
+	254 patch3f_6
+	255 patch3f_7
+
+)
+(
+	0x8000 core_chipid
+	0x8001 core_revid
+	0x8003 core_kick
+	0x8004 core_write_wdt
+	0x8005 core_lpm_wr
+	0x8006 core_misc_ctrl
+	0x8007 core_otp_rdata
+	0x8007 core_efuse_rdata
+	0x800a core_ccm_ctrl
+	0x800b core_write_wdt2
+	0x8010 core_reset
+	0x8011 core_encrypt
+	0x8012 core_lpm_wr2
+	0x8020 core_set_bistfix
+	0x8022 core_ucode_hi
+	0x8023 core_ucode_ctrl
+	0x8024 core_ucode_low
+	0x8025 core_ucode_data
+
+	0x8040 core_halfslot
+	0x8042 core_clksel
+	0x8043 core_uart_clksel
+	0x8043 core_config
+	0x8044 core_otp_addr
+	0x8046 core_otp_din
+	0x8046 core_otp_ctrl2
+	0x8047 core_otp_ctrl
+	0x8047 core_otp_pab
+	0x8048 core_xtal_stable_time
+	0x8049 core_gpio_ds
+	0x804c core_lpm_reg
+	0x8050 core_clkoff
+	0x8052 core_uart_baud
+	0x8054 core_uart_rsaddr
+	0x8056 core_uart_readdr
+	0x8058 core_uart_rrptr
+	0x805a core_uart_tsaddr
+	0x805c core_uart_teaddr
+	0x805e core_uart_twptr
+	0x8060 core_uart_ctrl
+	0x8061 core_nec_ctrl
+	0x8062 core_nec_start_addr
+	0x8064 core_nec_end_addr
+	0x8066 core_nec_rptr
+	0x8068 core_ccm_input_playload_addr
+	0x806a core_ccm_output_playload_addr
+	0x806c core_ccm_aad0
+	0x806d core_ccm_aad1
+	0x806e core_ccm_aad2
+	0x806f  core_bist_ctrl
+	0x8070 core_gpio_conf
+	0x8080 core_spid_ctrl
+	0x8081 core_spid_delay
+	0x8082 core_spid_txlen
+	0x8084 core_spid_txaddr
+	0x8086 core_spid_rxaddr
+	0x8088 core_spid_rxlen
+	0x808a core_iicd_ctrl
+	0x808b core_iicd_scl_low
+	0x808c core_iicd_scl_high
+	0x808d core_iicd_start_setup
+	0x808e core_iicd_start_hold
+	0x808f core_iicd_stop_setup
+	0x8090 core_iicd_data_setup
+	0x8091 core_iicd_data_hold
+	0x8092 core_iicd_txlen
+	0x8094 core_iicd_txaddr
+	0x8096 core_iicd_rxaddr
+	0x8098 core_iicd_rxlen
+	0x809a core_pwm_en
+	0x809b core_pwm_init
+	0x809c core_pwm_pcnt0
+	0x809e core_pwm_ncnt0
+	0x80a0 core_pwm_pcnt1
+	0x80a2 core_pwm_ncnt1
+	0x80a4 core_pwm_pcnt2
+	0x80a6 core_pwm_ncnt2
+	0x80a8 core_pwm_pcnt3
+	0x80aa core_pwm_ncnt3
+	0x80ac core_pwm_pcnt4
+	0x80ae core_pwm_ncnt4
+	0x80b0 core_pwm_pcnt5
+	0x80b2 core_pwm_ncnt5
+	0x80b4 core_pwm_pcnt6
+	0x80b6 core_pwm_ncnt6
+	0x80b8 core_pwm_pcnt7
+	0x80ba core_pwm_ncnt7
+	0x80bc core_pwm_sync
+	0x80bd core_pwm_timermode
+	0x80be core_pwm_autoload
+	0x80bf core_sum_ctrl
+	0x80c0 core_ccm_inptr
+	0x80c2 core_dac_ctrl	
+	0x80c3 core_dac_vol
+	0x80c4 core_dac_saddr
+	0x80c6 core_dac_len
+	0x80c8 core_dac_coef
+	0x80cb core_ccnt_bit
+	0x80cc core_sadc_ctrl
+	0x80cd core_sadc_clkdiv
+	0x80ce core_sadc_saddr
+	0x80d0 core_sadc_eaddr
+	0x80d2 core_keybuf_saddr
+	0x80d4 core_gpio_conf_hi
+
+	0x8100 core_clkn
+	0x8108 core_misc_status
+	0x8109 core_qdec_cntx
+	0x810a core_watchdog_cnt
+	0x810b core_uart_status
+	0x810c core_uart_rbaud
+	0x810e core_uart_txitems
+	0x8110 core_uart_trptr
+	0x8112 core_uart_rxitems
+	0x8114 core_uart_rdptr
+	0x8116 core_uart_rwptr
+	0x8118 core_debug_baud
+	0x811a core_ccm_outptr
+	0x811c core_gpio_in
+	0x811d core_gpio_in1
+	0x811e core_adc_sum
+	0x8120 core_nec_wptr
+	0x8122 core_current_otp_addr
+	0x8124 core_spid_remain
+	0x8126 core_iicd_remain
+	0x8128 core_dma_status
+	0x8129 core_perf_status
+	0x812a core_adc_in
+	0x812c core_nec_rxitem
+	0x812e core_otpd_remain
+	0x8130 core_lpm_ctrl
+	0x8132 core_lpm_isogate
+	0x8133 core_lpm_ldosel
+	0x8134 core_io_vsel
+	0x8135 core_io_doze_en
+	0x813a core_xtal_cap
+	0x813d core_xtal_ib
+	0x813e core_lpm_xtalcnt
+	0x813f core_lpm_buckcnt
+	0x8140 core_lpm_ldocnt
+	0x8141 core_puwakeup
+	0x8142 core_lpm_sysctl
+	0x8143 core_ucode_flag
+	0x8144 core_peripheral_lock
+	0x8145 core_mpu_s0_saddr
+	0x8147 core_mpu_s0_eaddr
+	0x8149 core_mpu_s1_saddr
+	0x814b core_mpu_s1_eaddr
+	0x814d core_gpio_wakeup_cfg
+	0x8155 core_aes_decode_key_init
+	0x815b core_clk_counter
+	0x815e core_bist_done
+	0x8160 core_bist_fail
+	0x8162 core_dac_rptr	
+	0x8164 core_sadc_data	
+	0x8166 core_rccnt_counter
+		
+	0x8203 core_ice_ctrl
+	0x8204 core_ice_status
+	0x8205 core_ice_break0
+	0x8207 core_ice_break1
+  
+
+	0x8900 modem_en
+	0x8960 core_rf_rx_agc_ctrl
+	0x8961 core_rf_rx_gain_fix
+	0x8968 core_agc_wb_sat_th
+	0x8969 core_agc_nb_sat_th
+	0x89a0 modem_rssi
+	0x89a1 modem_wb_pow
+	0x89a2 modem_nb_pow
+	0x89a3 modem_gain
+	0x89a4 modem_status
+
+	0x8a00 core_bbpll_ctrl0              
+	0x8a01 core_bbpll_ctrl1              
+	0x8a02 core_bbpll_cfg0               
+	0x8a03 core_bbpll_cfg1               
+	0x8a04 core_bbpll_cfg2               
+	0x8a05 core_bbpll_cfg3               
+	0x8a06 core_bbpll_cfg4               
+	0x8a07 core_gpadc_ctrl
+	0x8a08 core_gpadc_cfg0
+	0x8a09 core_gpadc_cfg1
+	0x8a0a core_gpadc_cfg2
+	0x8a0b core_gpadc_cfg3
+	0x8a0c core_gpadc_status
+	0x8a0d core_vtest_ctrl0
+	0x8a0e core_vtest_ctrl1
+	0x8a0f core_ldo_trx_ctrl0
+	0x8a10 core_ldo_trx_ctrl1
+	0x8a11 core_ldo_trx_ctrl2
+	0x8a12 core_ldo_rfpll_ctrl
+    0x8a13 core_ldo_trx_cfg0
+    0x8a14 core_ldo_trx_cfg1
+    0x8a15 core_ldo_trx_cfg2
+    0x8a16 core_ldo_rfpll_mnc_cfg2
+
+    0x8a20 core_rfpll_afc_ctrl0
+    0x8a21 core_rfpll_afc_ctrl1
+    0x8a22 core_rfpll_afc_ctrl2
+    0x8a23 core_rfpll_en_ctrl0
+    0x8a24 core_rfpll_en_ctrl1
+    0x8a25 core_rf_en_ctrl0
+    0x8a26 core_rf_en_ctrl1
+
+	0x8a30 core_rx_force_en_ctrl
+	0x8a31 core_rx_gc_force_val
+	0x8a32 core_rx_lna_isel_force_val
+
+	0x8a40 core_rx_lna_hg_isel_gc7        
+	0x8a41 core_rx_lna_hg_isel_gc6        
+	0x8a42 core_rx_lna_hg_isel_gc5        
+	0x8a43 core_rx_lna_lg_isel_gc4        
+	0x8a44 core_rx_lna_lg_isel_gc3        
+	0x8a45 core_rx_lna_lg_isel_gc2        
+	0x8a46 core_rx_lna_lg_isel_gc1        
+	0x8a47 core_rx_lna_lg_isel_gc0        
+	0x8a48 core_rx_abb_gc_gc8              
+	0x8a49 core_rx_abb_gc_gc7              
+	0x8a4a core_rx_abb_gc_gc6              
+	0x8a4b core_rx_abb_gc_gc5              
+	0x8a4c core_rx_abb_gc_gc4              
+	0x8a4d core_rx_abb_gc_gc3              
+	0x8a4e core_rx_abb_gc_gc2              
+	0x8a4f core_rx_abb_gc_gc1              
+	0x8a50 core_rx_abb_gc_gc0              
+
+	0x8a60 core_tx_ctrl0
+	0x8a61 core_tx_ctrl1
+	0x8a62 core_tx_ctrl2
+	0x8a63 core_tx_ctrl3
+
+	0x8a70 core_rfpll_cal_ctrl0
+	0x8a71 core_rfpll_cal_ctrl1
+	0x8a72 core_rfpll_cal_ctrl2
+	0x8a73 core_rfpll_cal_ctrl3
+	0x8a74 core_rfpll_cal_ctrl4
+	0x8a75 core_rfpll_cal_ctrl5
+	0x8a76 core_rfpll_cal_ctrl6
+	0x8a77 core_rfpll_cal_ctrl7
+	0x8a78 core_rfpll_cal_ctrl8
+	0x8a79 core_rfpll_cal_ctrl9
+	0x8a7a core_rfpll_cal_ctrl10
+	0x8a7b core_rfpll_cal_ctrl11
+	0x8a7c core_rfpll_cal_result0
+	0x8a7d core_rfpll_cal_result1
+	0x8a7e core_rfpll_cal_result2
+
+    0x8a80 core_rfpll_cfg0
+    0x8a81 core_rfpll_cfg1
+    0x8a82 core_rfpll_cfg2
+    0x8a83 core_rfpll_cfg3
+    0x8a84 core_rfpll_cfg4
+    0x8a85 core_rfpll_cfg5
+    0x8a86 core_rfpll_cfg6
+    0x8a87 core_rfpll_cfg7
+
+    0x8a88 core_rx_cfg0
+    0x8a89 core_rx_cfg1
+    0x8a8a core_rx_cfg2
+    0x8a8b core_rx_cfg3
+    0x8a8c core_rx_cfg4
+    0x8a8d core_rx_cfg5
+    0x8a8e core_rx_cfg6
+    0x8a8f core_rx_cfg7
+    0x8a90 core_rx_cfg8
+
+	0x8aa0 core_rx_tiai_dcoc_gc0          
+	0x8aa1 core_rx_tiaq_dcoc_gc0          
+	0x8aa2 core_rx_tiai_dcoc_gc1          
+	0x8aa3 core_rx_tiaq_dcoc_gc1          
+	0x8aa4 core_rx_tiai_dcoc_gc2          
+	0x8aa5 core_rx_tiaq_dcoc_gc2          
+	0x8aa6 core_rx_tiai_dcoc_gc3          
+	0x8aa7 core_rx_tiaq_dcoc_gc3          
+	0x8aa8 core_rx_tiai_dcoc_gc4          
+	0x8aa9 core_rx_tiaq_dcoc_gc4          
+	0x8aaa core_rx_tiai_dcoc_gc5          
+	0x8aab core_rx_tiaq_dcoc_gc5          
+	0x8aac core_rx_tiai_dcoc_gc6          
+	0x8aad core_rx_tiaq_dcoc_gc6          
+	0x8aae core_rx_tiai_dcoc_gc7          
+	0x8aaf core_rx_tiaq_dcoc_gc7          
+	0x8ab0 core_rx_abbi_dcoc_gc0
+	0x8ab1 core_rx_abbq_dcoc_gc0
+	0x8ab2 core_rx_abbi_dcoc_gc1
+	0x8ab3 core_rx_abbq_dcoc_gc1           
+	0x8ab4 core_rx_abbi_dcoc_gc2
+	0x8ab5 core_rx_abbq_dcoc_gc2
+	0x8ab6 core_rx_abbi_dcoc_gc3
+	0x8ab7 core_rx_abbq_dcoc_gc3
+	0x8ab8 core_rx_abbi_dcoc_gc4
+	0x8ab9 core_rx_abbq_dcoc_gc4
+	0x8aba core_rx_abbi_dcoc_gc5
+	0x8abb core_rx_abbq_dcoc_gc5
+	0x8abc core_rx_abbi_dcoc_gc6
+	0x8abd core_rx_abbq_dcoc_gc6
+	0x8abe core_rx_abbi_dcoc_gc7
+	0x8abf core_rx_abbq_dcoc_gc7
+	0x8ac0 core_rx_abbi_dcoc_gc8
+	0x8ac1 core_rx_abbq_dcoc_gc8
+	0x8ac2 core_rx_tiai_dcoc_force
+	0x8ac3 core_rx_tiaq_dcoc_force
+	0x8ac4 core_rx_abbi_dcoc_force
+	0x8ac5 core_rx_abbq_dcoc_force
+	0x8ac8 core_chgpump_ctrl
+
+	0x8c00 core_usb_config
+	0x8c01 core_usb_addr
+	0x8c02 core_usb_rx_saddr
+	0x8c04 core_usb_rx_eaddr
+	0x8c06 core_usb_rxptr
+	0x8c08 core_usb_tx_saddr0
+	0x8c0a core_usb_tx_saddr1
+	0x8c0c core_usb_tx_saddr2
+	0x8c0e core_usb_tx_saddr3
+	0x8c10 core_usb_epmap
+	0x8c11 core_usb_pupd
+	0x8c12 core_usb_hmode
+	0x8c13 core_usb_int_mask
+	0x8c18 core_usb_trig
+	0x8c19 core_usb_stall
+	0x8c1a core_usb_toggle
+	0x8c1b core_usb_clear_nak
+	0x8c20 core_usb_rx_wptr
+	0x8c22 core_usb_status
+	0x8c24 core_usb_stall_status
+	0x8c25 core_usb_txbusy
+	0x8c26 core_usb_sof_cnt
+	0x8c28 core_usb_rxcnt
+
+	
+
+
+
+    
+    
+)
+(
+
+4 BIST_CTRL_FIX_SCHED_RAM
+5 BIST_CTRL_FIX_XRAM
+6 BIST_CTRL_FIX_PATCH_RAM
+
+7 AES_EN
+)
+(
+4 rx_freq_offset
+2 tx_freq_offset
+)
+(
+
+  4 whiteoff_bit
+  6 clksel_rc
+  1 clksel_dpll_24M
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+)
+(
+  4 cold_wake
+  5 gpio_latch
+  6 retmem_cs
+  7 isogate
+)
+(
+  2 fast_wake
+  3 ice_mode
+  4 reload_code
+)
+(
+1 lpmreg_sel_counter
+2 lpmreg_sel_scanmode
+)
+(
+0 SPI_LOCK_BIT
+1 PWM_LOCK_BIT
+2 UART_LOCK_BIT
+3 IIC_LOCK_BIT
+4 ADPCM_LOCK_BIT
+5 ROM_LOCK_BIT
+6 OPTION_LOCK
+6 OTP_NOT_LIMIT
+7 OTP_LIMIT
+)
+(
+4 LPM_DOZE_EN_BIT	
+)
+(
+  0x01 RCCNT_START
+  0x02 SPID_START
+  0x04 IICD_START
+  0x08 OTP_KEY_LOCK
+  0x10 INIT_KEY
+  0x20 SHIFT_KEY
+  0X80 CCNT_START
+)
+(
+  0 OTPD_CRCOK
+  1 OTPD_DONE
+  2 SPID_CRCOK
+  3 SPID_DONE
+  4 IICD_CRCOK
+  5 IICD_DONE
+  6 IICD_ACK
+)
+(
+1 UART_STATUS_TX_BUSY
+2 UART_STATUS_RX_FIFO_EMPTY
+3 UART_STATUS_RX_FIFO_FULL
+4 UARTB_STATUS_TX_BUSY
+5 UARTB_STATUS_RX_FIFO_EMPTY
+6 UARTB_STATUS_RX_FIFO_FULL
+)
+(//core_uart_clksel
+0 UART_CLOCK_SELECT_BIT
+0xFE UART_CLOCK_SELECT_CRYSTAL
+0x01 UART_CLOCK_SELECT_DPLL
+
+24000000 uart_clock_freq_24M
+48000000 uart_clock_freq_48M
+)
+(//bit map of core_uart_ctrl
+0 BIT_UART_CONTROL_ENABLE
+1 BIT_UART_CONTROL_PARITY
+2 BIT_UART_CONTROL_DATA_LENGTH
+3 BIT_UART_CONTROL_STOP_BIT_SIZE
+4 BIT_UART_CONTROL_FLOW_CONTROL
+5 BIT_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+6 BIT_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+7 BIT_UART_CONTROL_RATE_BAUD_SETTING
+)
+(//FUN of core_uart_ctrl
+0x01 FUN_UART_CONTROL_ENABLE
+0x06 FUN_UART_CONTROL_PARITY_ODD
+0x04 FUN_UART_CONTROL_PARITY_EVEN
+0x08 FUN_UART_CONTROL_STOP_2BIT
+0x00 FUN_UART_CONTROL_STOP_1BIT
+0x10 FUN_UART_CONTROL_FLOW_CONTROL_ENABLE
+0x20 FUN_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+0x40 FUN_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+0x80 FUN_UART_CONTROL_SETTING_RATE_BAUD
+)
+(//bit map of core_nec_control
+0x00 BIT_NEC_ENABLE
+0x01 BIT_NEC_CLK_DIVIDE_NUM
+)
+(//FUN  of core_nec_control
+0x01 FUN_NEC_ENABLE
+0x30 FUN_NEC_CLK_DIVIDE_24	//24M , 
+)
+0x8b uart_ctrl_default //BCSP
+0x81 uart_ctrl_h4 //H4
+0x81 uart_ctrl_normal
+0x91 uart_ctrl_5line
+0x81 uart_ctrl_57600
+2 uart_baud_len
+0x00 uartclk_crystal
+0x01 uartclk_dpll
+0x1a0 uart_baud_115200
+0xbb uart_baud_256000
+0x340 uart_baud_57600
+0x34 uart_baud_921600
+0x9c4 uart_baud_9600
+(
+	0 CLOCK_OFF_AUTH_ROM
+	1 CLOCK_OFF_UC_ROM
+	2 CLOCK_OFF_DEBUG_UART
+	3 CLOCK_OFF_SCHED_RAM
+	4 CLOCK_OFF_TRANCE_FIFO
+	5 CLOCK_OFF_CORDIC
+	6 CLOCK_OFF_OTPD
+	7 CLOCK_OFF_I2C
+	8 CLICK_OFF_SARADC_DMA
+	9 CLOCK_OFF_KEYSCAN
+	9 CLOCK_OFF_NEC
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_UARTB
+	0x0f CLOCK_OFF_UART
+)
+(
+  0 gpcfg_input
+  6 gpcfg_dac_p  
+  7 gpcfg_dac_n
+  8 gpcfg_uart_txd
+  9 gpcfg_uart_rxd
+  10 gpcfg_uart_rts
+  11 gpcfg_uart_cts
+  
+  16 gpcfg_pwm_out0
+  17 gpcfg_pwm_out1
+  18 gpcfg_pwm_out2
+  19 gpcfg_pwm_out3
+  20 gpcfg_pwm_out4
+  21 gpcfg_pwm_out5
+  22 gpcfg_pwm_out6
+  23 gpcfg_pwm_out7
+  24 gpcfg_nec_input
+  
+  31 gpcfg_spid_miso
+  32 gpcfg_spid_ncs
+  33 gpcfg_spid_sck
+  34 gpcfg_spid_mosi
+  35 gpcfg_spid_sdio
+  
+  44 gpcfg_iic_scl
+  45 gpcfg_iic_sda
+  
+  62 gpcfg_output_low
+  63 gpcfg_output_high
+  
+  0x00 gpcfg_high_impedance
+  0x40 gpcfg_pullup
+  0x80 gpcfg_pulldown
+  0xc0 gpcfg_no_ie
+)
+(
+16	GPIO_NUMBER
+8	GPIO_NUMBER_EXT
+0xFF  GPIO_DISABLE
+)
+(
+  0x00   SP_FLAG_STANDBY
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+(
+  0x00   SP_CALC_STANDBY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+(
+  0x00   SP_KEY_INVALID
+  0x03   SP_KEY_VALID_256
+
+)
+(
+0 SECURE_CONNECTIONS_LE_BIT
+1 SECURE_CONNECTIONS_BR_BIT
+)
+(
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+)
+(
+0 BT_CMD_STANDBY
+13 BT_CMD_START_ADV
+14 BT_CMD_STOP_ADV
+15 BT_CMD_START_DIRECT_ADV
+16 BT_CMD_STOP_DIRECT_ADV
+17 BT_CMD_LE_DISCONNECT
+18 BT_CMD_LE_UPDATE_CONN
+19 BT_CMD_LED_OFF
+20 BT_CMD_LED_ON
+21 BT_CMD_LED_BLINK
+22 BT_CMD_LE_START_CONN
+23 BT_CMD_LE_START_SCAN
+24 BT_CMD_LE_STOP_SCAN
+25 BT_CMD_ENTER_HIBERNATE
+27 BT_CMD_LE_SMP_SECURITY_REQUEST
+31 BT_CMD_STORE_RECONN_INFO_LE
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+)
+(
+0x00 BT_EVT_NULL
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2c BT_EVT_BUTTON_DOWN
+0x2d BT_EVT_BUTTON_UP
+0x2e BT_EVT_REMOTE_UNSNIFF
+0x30 BT_EVT_LE_PAIRING_FAIL
+0x31 BT_EVT_LE_PAIRING_SUCCESS
+0x32 BT_EVT_LE_START_ENC
+0X33 BT_EVT_LE_PAUSE_ENC
+0X34 BT_EVT_LE_TK_GENERATE
+0x35 BT_EVT_BT_GKEY_GENERATE
+0x36 BT_EVT_BT_GET_PASSKEY
+0x39 BT_EVT_24G_PAIRING_COMPLETE
+0x3a BT_EVT_24G_ATTEMPT_FAIL
+0x3b BT_EVT_LE_GKEY_GENERATE
+0x3c BT_EVT_24G_ATTEMPT_SUCCESS
+0x3d BT_EVT_STORE_NVRAM
+0x3e BT_EVT_LE_PAIRING_COMPLETE
+0x3F BT_EVT_LE_RECONNECT_COMPLETE
+0x40 BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
+0x41 BT_EVT_LE_LTK_LOST
+0x42 BT_EVT_LE_UPDATE_PHY
+0x43 BT_EVT_LE_GET_PASSKEY
+0x44 BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED
+)
+(
+0 OFF
+1 ON
+)
+(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+)
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+(//led style struct 
+0 		LED_OFFSET_LED_TYPE
+1 		LED_OFFSET_BLINK_COUNT
+2		LED_OFFSET_LED_GPIO
+3		LED_OFFSET_ON_TIME
+5		LED_OFFSET_OFF_TIME
+7 		LED_OFFSET_CB_LEDON
+9		LED_OFFSET_CB_LEDOFF
+11		LED_OFFSET_LENGTH
+)
+(//LED state
+0 UI_LED_STATE_BLINK_STOP
+1 UI_LED_STATE_BLINK_START
+2 UI_LED_STATE_LIGHTING
+3 UI_LED_STATE_DARKING
+4 UI_LED_STATE_BLINK_LIGHTING
+5 UI_LED_STATE_BLINK_DARKING
+
+0xFF LED_INFINITE_FLASH_NUM
+
+)
+(
+0x00 STANDARD_REQ
+0x01 CLASS_REQ
+0x02 MANUFACTURER_REQ
+)
+(
+0x00 GET_STATUS                // Code for Get Status
+0x01 CLEAR_FEATURE             // Code for Clear Feature
+0x03 SET_FEATURE              // Code for Set Feature
+0x05 SET_ADDRESS              // Code for Set Address
+0x06 GET_DESCRIPTOR           // Code for Get Descriptor
+0x07 SET_DESCRIPTOR           // Code for Set Descriptor(not used)
+0x08 GET_CONFIGURATION        // Code for Get Configuration
+0x09 SET_CONFIGURATION        // Code for Set Configuration
+0x0A GET_INTERFACE            // Code for Get Interface
+0x0B SET_INTERFACE            // Code for Set Interface
+0x0C SYNCH_FRAME              // Code for Synch Frame(not used)
+)
+(
+0x01 DSC_DEVICE               // Device Descriptor
+0x02 DSC_CONFIG               // Configuration Descriptor
+0x03 DSC_STRING               // String Descriptor
+0x04 DSC_INTERFACE            // Interface Descriptor
+0x05 DSC_ENDPOINT             // Endpoint Descriptor
+)
+(
+0x21 DSC_HID			      // HID Class Descriptor
+0x22 DSC_HID_REPORT			  // HID Report Descriptor
+)
+(
+0x80 IN_DEVICE                // Request made to device,
+                              // direction is IN
+0x00 OUT_DEVICE               // Request made to device,
+                              // direction is OUT
+0x81 IN_INTERFACE             // Request made to interface,
+                              // direction is IN
+0x01 OUT_INTERFACE            // Request made to interface,
+                              // direction is OUT
+0x82 IN_ENDPOINT              // Request made to endpoint,
+                              // direction is IN
+0x02 OUT_ENDPOINT             // Request made to endpoint,
+)
+(
+0x01 GET_REPORT 		       // Code for Get Report
+0x02 GET_IDLE				   // Code for Get Idle
+0x03 GET_PROTOCOL			   // Code for Get Protocol
+0x09 SET_REPORT				   // Code for Set Report
+0x0A SET_IDLE				   // Code for Set Idle
+0x0B SET_PROTOCOL			   // Code for Set Protocol
+0xF2 HID_REPORT_ID           
+64 EP0_PACKET_SIZE         
+6 EP1_PACKET_SIZE         
+16 HID_REPORT_SIZE         
+0x001B HID_REPORT_DESCRIPTOR_SIZE    
+)
+(
+0 TYPE_SIN		
+1 TYPE_ATAN	
+2 TYPE_MULT	
+3 TYPE_DIV		
+4 TYPE_ASIN	
+5 TYPE_SQRT	
+6 TYPE_COS		
+7 TYPE_TAN		 
+)
+(
+0 DFIFO0_IN_EMPTY
+1 DFIFO1_IN_EMPTY
+2 DFIFO2_IN_EMPTY
+3 DFIFO3_IN_EMPTY
+4 DFIFO0_OUT_EMPTY
+5 DFIFO1_OUT_EMPTY
+6 DFIFO2_OUT_EMPTY
+7 DFIFO3_OUT_EMPTY
+)
+(
+)
+(
+0 USB_STATUS_SETUP
+1 USB_STATUS_SUSPEND
+2 USB_STATUS_NAK
+3 USB_STATUS_RESET
+4 USB_STATUS_ACK
+5 USB_STATUS_RXREADY
+6 USB_STATUS_RXFULL
+7 USB_STATUS_TXDONE0
+8 USB_STATUS_TXDONE1
+9 USB_STATUS_TXDONE2
+10 USB_STATUS_TXDONE3
+)
+(
+1 USB_GOT_REPORT_REQ
+2 USB_CONNECTED
+3 USB_SLEEP
+4 USB_RESUME
+5 USB_SETIDLE_1
+)
+(
+0x10 USB_EP1_KB
+0x20 USB_EP2_MS
+0x21 USB_EP2_MULTIKEY
+0x22 USB_EP2_SYSTEMKEY
+0x23 USB_EP2_BIT_CONSUMER
+0x24 USB_EP2_N_KEY_ROLLOVER
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+(
+0x01ba PC_GET_REPORT
+0x02ba PC_SET_REPORT
+0x0200 PC_SET_REPORT_bValue
+0x0000 PC_SET_REPORT_wIndex
+0x0001 PC_SET_REPORT_bLength
+0xba PC_REPORT_ID
+
+0x01 PC_GET_DATA
+0x00 PC_GET_NONDATA
+)
+(
+//--------------------------------------------------
+// Define device states
+0x00 DEV_ATTACHED	// Device is in Attached State
+0x01 DEV_POWERED	// Device is in Powered State
+0x02 DEV_DEFAULT		// Device is in Default State
+0x03 DEV_ADDRESS	// Device is in Addressed State
+0x04 DEV_CONFIGURED	// Device is in Configured State
+0x05 DEV_SUSPENDED	// Device is in Suspended State
+)
+(
+// Define wIndex bitmaps
+0x81 IN_EP1                    // Index values used by Set and Clear
+0x01 OUT_EP1                   // commands for Endpoint_Halt
+0x82 IN_EP2              
+0x02 OUT_EP2             
+0x83 IN_EP3              
+0x03 OUT_EP3             
+)
+(
+0 EP0_STALL
+1 EP1_IN_STALL
+2 EP1_OUT_STALL
+3 EP2_IN_STALL
+4 EP2_OUT_STALL
+5 EP3_IN_STALL
+6 EP3_OUT_STALL
+)
+(
+// Define wValue bitmaps for Standard Feature Selectors
+0x00 ENDPOINT_HALT             // Endpoint_Halt feature selector
+0x01 DEVICE_REMOTE_WAKEUP      // Remote wakeup feature(not used)
+0x00 BOOT_PROTOCOL
+0x01 REPORT_PROTOCOL
+0x01 USB_MAX_NUM_CFG
+)
+(
+640 TIMER_NAK_DELAY
+5000 TIMER_WAKEUP_DELAY
+)
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+0x2000 start
+0x2001 soft_reset
+0x200e main_loop
+0x2018 connection_dispatch
+0x201d connection_incontext
+0x2025 connection_nosniff
+0x202a idle_dispatch
+0x2031 idle_exit
+0x2033 idle_le_create_conn
+0x2036 context_load
+0x2041 context_save
+0x2047 context_get_next
+0x2049 context_get_next_loop
+0x204d context_get_next_cont
+0x2054 context_get_next_sniff
+0x2056 context_new
+0x205d context_check_idle
+0x205f context_search_conn_handle
+0x2060 context_search_conn_handle2
+0x2062 context_search_plap
+0x2064 context_search_plap2
+0x2066 context_search_insniff
+0x2068 context_search_sniff_window
+0x2069 context_search
+0x206c context_search_loop
+0x206e context_search_next
+0x2073 context_search_empty
+0x2075 context_search_lap
+0x2076 context_search_lap_cont
+0x207b context_search_handle
+0x2081 context_search_sniff
+0x2082 context_search_sniff_loop
+0x2090 context_search_sniff_sc
+0x2093 context_search_meet1
+0x2094 context_search_meet
+0x2097 context_search_sniff_miss
+0x209d sign_pdata_temp
+0x20a7 sign_pdata_temp_p0
+0x20ad context_check_inconn
+0x20af context_check_a_wack
+0x20b4 context_get_anchor
+0x20c0 context_next_anchor
+0x20c7 context_search_window
+0x20cf end_of_packet
+0x20dc sniff_check_window
+0x20e4 calc_slot_offset
+0x20ee calc_bt_portion
+0x20f0 calc_slot_offset_loop
+0x20f2 calc_skip_bt
+0x20f7 calc_clke_offset
+0x2105 calc_clke_pos
+0x2107 calc_clke
+0x2109 calc_clke2
+0x2113 calc_clke_pos2
+0x2115 calc_clke_pos_adj
+0x2117 qsetxor
+0x211c qset1_p
+0x211d qset_start
+0x211e qset_p
+0x2122 rx_dcoc_avg
+0x2123 btdma
+0x212f rx_dcoc_loop
+0x2135 rx_dcoc
+0x2148 rx_dcoc_loop2
+0x2155 shutdown_radio
+0x2164 set_sync_on
+0x2173 set_freq_rx
+0x217d aac_res_lookup
+0x218b aac_res_lookup_end
+0x218d set_lemode_2m_16m
+0x2190 set_lemode_1m_16m
+0x2193 set_lemode
+0x219b set_lemode_2m
+0x21a6 set_lemode_1m
+0x21aa rf_rx_enable
+0x21be rf_rx_agc_set
+0x21c5 rf_rx_enable_no_soft_agc
+0x21ca set_freq_tx_int
+0x21d4 calc_freq
+0x21ee ghp_lookup
+0x21f4 ghp_1m
+0x21ff set_freq_tx
+0x2202 txon
+0x2212 set_tx_power
+0x221d set_tx_power_0db
+0x2220 set_tx_power_8a63_28
+0x2222 set_tx_power_3db
+0x2225 set_tx_power_8a63_2f
+0x2227 set_tx_power_5db
+0x222b set_tx_power_7db
+0x222f set_tx_power_10db
+0x2234 set_tx_power_f3db
+0x2238 set_tx_power_f5db
+0x223c set_tx_power_f10db
+0x2240 set_tx_power_f20db
+0x2244 initialize_radio
+0x2245 initialize_radio_wait
+0x2249 initialize_radio_loop
+0x224f initialize_radio_cont
+0x2266 initialize_radio2
+0x2276 initialize_radio_16m
+0x2281 set_xtal_cap
+0x2287 rfpll_aac_ghpc
+0x2293 rfpll_aac_ghpc_once
+0x2296 rfpll_cal_loop
+0x229d dpll_on
+0x22a3 dpll_on_24m
+0x22ab aac_ghpc
+0x22af wait_cal_done
+0x22be aac_ghpc_1m
+0x22c5 read_cal_result
+0x22cb dpll_ring_ibias_calc
+0x22cd save_rssi
+0x22e1 save_rssi_store
+0x22e3 byte_sign_extern
+0x22e8 rssi_hex2dec
+0x22ec bcd
+0x22f3 gain_control
+0x2312 add_negative
+0x231a gain_increase
+0x231e gain_descend
+0x2321 set_rx_gain2
+0x2323 set_rx_gain0
+0x2325 set_rx_gain1
+0x2327 ahead_window
+0x2336 get_clk
+0x233a get_clkbt
+0x233e assert
+0x2340 sleep
+0x2343 sleep_loop
+0x2347 init_param
+0x2369 lpmstate
+0x2377 lpmwake
+0x2383 power_up
+0x2384 boot_load
+0x2387 lpm_poweron_retmem
+0x2397 xtal_fast_wake
+0x239c lpm_write_lock
+0x23a5 lpm_write_ice_disable
+0x23a9 lpm_write_ice_enable
+0x23ad lpm_preon_counter
+0x23af lpm_write_3bytes
+0x23b1 lpm_write_mpu_s0
+0x23b2 lpm_write_dword
+0x23b3 lpm_write_loop
+0x23b8 lpm_write_mpu_s1
+0x23ba lpm_disable_exen_output
+0x23be lpm_disable_io_dozed
+0x23c2 lpm_save_sel_hv
+0x23c3 lpm_write_sel_hv
+0x23c4 lpm_write_wait
+0x23c7 lpm_write_io_vsel
+0x23c9 lpm_load_context
+0x23d7 lpm_save_context
+0x23e1 lpm_write_gpio_wakeup
+0x23e5 lpm_write_gpio_loop
+0x23eb lpm_write_gpio_loop_next
+0x23f0 lpo_calibration
+0x23f7 lpo_cal_inited
+0x23fc lpm_doze
+0x23ff lpm_hibernate
+0x2406 lpm_sleep
+0x2409 lpm_sleep_skip_cb_function
+0x2417 lpm_sleep_loop
+0x241d lpm_enter_sleep
+0x2421 lpm_recover_clk
+0x242a lpm_recover_xtal
+0x242c lpm_recover_timeout
+0x2449 lpm_adjust_clk
+0x245d lpm_adjust_positive
+0x2460 lpm_clear_counter
+0x2463 lpm_dispatch
+0x246d lpm_dispatch_next
+0x248b lpm_dispatch_sleep
+0x248c lpm_dispatch_lpo
+0x2494 lpm_dispatch_unconn
+0x2498 lpm_unconn_cont
+0x249a lpm_sleep_btclk
+0x249f lpm_mult_wait_timeout
+0x24a9 lpm_match
+0x24ae lpm_lost
+0x24b7 lpm_mult_short
+0x24bb lpm_mult_long
+0x24be lpm_get_wake_lock
+0x24c2 lpm_put_wake_lock
+0x24c6 lpm_check_wake_lock
+0x24d8 lpm_uart_wake_lock
+0x24dd le_init_conn
+0x24f0 le_init_master
+0x24fc le_init_slave
+0x250d le_conn_dispatch
+0x2516 le_master_dispatch
+0x2524 le_master_disconn
+0x2525 le_disable_master
+0x2527 le_slave_dispatch
+0x2538 le_slave_crc_fail
+0x2538 le_slave_match
+0x2547 le_slave_cont
+0x254d le_slave_unsync
+0x2551 le_check_md
+0x2555 le_slave_more_data
+0x255b le_slave_disconn
+0x255b le_disconnect
+0x2562 le_clear_connection_info
+0x2567 le_clear_pairing_state
+0x256c le_got_first_packet
+0x2579 le_enable_phy_by_pdata
+0x257b le_enable_phy_by_pdata1
+0x2582 le_enable_2m
+0x2585 le_enable_coded_s2
+0x2585 le_enable_coded
+0x2589 le_enable_coded_s8
+0x258d le_enable
+0x2591 le_disable
+0x2597 le_prep
+0x259d le_prep_next
+0x25a1 le_rx_setfreq
+0x25a2 le_rf_rx_enable
+0x25a6 le_tx_setfreq
+0x25a8 le_tx_setfreq0
+0x25aa le_setfreq
+0x25b7 le_ctf_normal
+0x25ba le_ctf_low
+0x25bd le_ctf_test
+0x25c0 le_sca_map
+0x25d0 le_setup
+0x25d9 le_setup_master
+0x25de le_context_nextevent
+0x25ef le_context_nexthop
+0x25f7 le_nexthop_nowrap
+0x25f9 le_calc_channel_map
+0x25fd le_count_channels_loop
+0x25ff le_count_channels_notused
+0x2605 le_map_channel
+0x260b le_map_channel_next
+0x2610 le_map_channel_cont
+0x2612 le_map_channel_loop
+0x2615 le_map_channel_skip
+0x261a le_map_channel_end
+0x261d le_wait_tx
+0x2620 le_wait_master
+0x2623 le_receive_adv
+0x2627 le_receive_slave
+0x262d le_receive_packet
+0x262e le_receive_rxon
+0x2635 le_receive_nolr
+0x263e le_receive_on_attempt
+0x264b le_receive_skip
+0x2657 le_rx_loop
+0x265c le_rx_dec
+0x2668 le_rx_dec_loop
+0x266f le_rx_dec_loop_end
+0x2671 le_rx_nopayload
+0x2683 le_rx_match
+0x2686 le_crc_fail_tx
+0x268d le_match_set_sync_on
+0x268f le_match_set_txfreq
+0x2692 le_dec_init
+0x2697 le_dec_start
+0x26ab le_pcnt_rx_sub1
+0x26b0 le_pcnt_rx_sub1_0
+0x26b5 le_dec
+0x26bd le_dec_end
+0x26c6 le_retransmit_end_of_packet
+0x26c9 le_crc_fail
+0x26ce le_unsync_end
+0x26ce le_crc_fail_consecutive
+0x26d0 le_end_of_packet
+0x26d3 calc_clke_all_modem
+0x26dd calc_clke_all_modem_1
+0x26e3 calc_clke_modem_coded
+0x26e7 calc_clke_modem_2m
+0x26eb le_set_until_tx_timer
+0x26f2 le_set_until_tx_timer_rx_lr
+0x26f4 le_set_until_tx_timer_rx_1m
+0x26f5 le_set_until_tx_timer_rx_2m
+0x26f7 le_set_until_tx_timer_rx_coded_s2
+0x26fa le_set_until_tx_timer_rx_coded_s8
+0x26fc le_set_until_tx_timer_rx_coded
+0x26ff le_calc_stop_watch
+0x2707 le_transmit_receive_sifs_without_change_mode
+0x270e le_transmit_receive_sifs
+0x2712 le_transmit_receive_sifs_notx
+0x271c le_transmit_norx
+0x271f le_transmit
+0x272f le_transmit_packet
+0x273c le_transmit_packet_not_enc
+0x273d le_tr_loop
+0x2740 le_tr_nopayload
+0x2747 le_transmit_skip
+0x274e le_check_start_pause_enc
+0x2757 le_transmit_packet_enc
+0x275b le_transmit_packet_enc_loop
+0x2762 le_transmit_lr
+0x2763 le_transmit_lr_preamble_loop
+0x276d le_transmit_lr_s2
+0x2771 le_transmit_lr_s8
+0x2774 le_transmit_2m
+0x2780 le_update_param
+0x2784 le_update_param_ahead1_cb
+0x279a le_update_param_cb
+0x27a2 le_update_channel_map
+0x27a6 le_update_channel_map_cb
+0x27ab le_update_phy
+0x27af le_update_phy_cb
+0x27bc le_update_phy_cb_m2s
+0x27c4 le_update_phy_cb_m2s_no_change
+0x27ca le_update_phy_cb_s2m
+0x27d3 le_update_phy_cb_s2m_no_change
+0x27d9 le_check_update_flag
+0x27e7 le_update_ahead1
+0x27e9 le_update
+0x27ee le_check_update_small
+0x27fa le_check_retransmit
+0x2801 le_acknowledge
+0x281a le_ack_unenc
+0x2828 le_check_wak
+0x2835 le_set_enc
+0x283a le_clear_enc
+0x2846 le_scan_check_sender_addr_type
+0x284b le_get_master_rx_max
+0x284f le_prepare_tx
+0x2870 le_check_tx_md
+0x2877 le_check_continue
+0x2880 le_set_md
+0x2882 le_clear_md
+0x2884 le_update_tx_type
+0x2888 le_att_check_notification_enable
+0x2894 le_send_empty
+0x2896 le_send_packet
+0x28a6 le_send_no_txlen
+0x28ac le_send_packet_enc
+0x28ae get_lpm_wake_ble_rx_lock
+0x28b0 put_lpm_wake_ble_rx_lock
+0x28b2 le_parse
+0x28c0 le_parse_l2cap
+0x28cd le_check_l2cap_complete
+0x28d1 le_check_l2cap_cid_legal
+0x28dc le_check_l2cap_llid_start
+0x28ef le_check_l2cap_continue_legal
+0x28f3 le_check_l2cap_llid_continue
+0x2908 le_writeatt_cb
+0x290a le_supervision_update
+0x2914 le_supervision_flush
+0x2917 le_receive_window_size
+0x2931 le_modified_name
+0x2934 le_modified_name_att_list
+0x2945 le_name_length_longer_than_att
+0x2948 le_modified_name_adv
+0x2955 le_modified_name_adv_and_scan
+0x2967 le_modified_name_adv_and_scan_store_data
+0x296d le_modified_name_adv_and_scan_name_overflow
+0x296f le_modified_name_adv_loop
+0x297a le_modified_name_adv_loop2
+0x297e le_modified_name_adv_found_name
+0x2980 memcpy_empty
+0x2984 le_lpm_set_mult
+0x2988 le_lpm_set_mult_attempt
+0x2997 le_lpm_lost
+0x29a0 le_set_config_fixed_tk
+0x29a2 le_clr_config_fixed_tk
+0x29a4 le_set_config_fixed_ltk
+0x29a6 le_clr_config_fixed_ltk
+0x29a8 le_set_config_more_data
+0x29aa le_clr_config_more_data
+0x29ac le_set_config_read_authentication
+0x29ae le_clr_config_read_authentication
+0x29b0 le_set_config_write_authentication
+0x29b2 le_clr_config_write_authentication
+0x29b4 le_set_config_short_mult
+0x29b5 le_set_config
+0x29b9 le_clr_config_short_mult
+0x29ba le_clr_config
+0x29be le_set_fixed_ltk
+0x29ca le_set_justwork
+0x29d0 le_fifo_malloc_tx_empty
+0x29d3 le_fifo_malloc_tx_ll
+0x29d9 le_fifo_malloc_tx_l2cap
+0x29e3 le_fifo_malloc_tx
+0x29ee le_fifo_get_first_tx_ptr
+0x29f2 le_fifo_get_second_tx_ptr
+0x29f4 le_fifo_get_last_tx_ptr
+0x29f7 le_fifo_get_last_tx_ptr0
+0x29f9 le_fifo_get_first_l2cap_ptr
+0x29fc le_fifo_get_first_att_ptr
+0x29ff le_fifo_get_last_att_ptr
+0x2a02 le_fifo_get_last_l2cap_ptr
+0x2a05 le_fifo_check_full
+0x2a06 le_fifo_check_nearly_full
+0x2a07 le_fifo_check_empty
+0x2a08 le_fifo_release_first_node
+0x2a09 le_set_dle
+0x2a0b le_set_phys
+0x2a0e le_set_rx_phy
+0x2a10 le_set_tx_phy
+0x2a11 le_set_phy_common
+0x2a16 le_set_feature_2m_phy
+0x2a18 le_set_feature_coded_phy
+0x2a1a le_set_feature_data_packet_length_extension
+0x2a1b le_set_feature
+0x2a1f le_set_fixed_ltk_justwork
+0x2a23 le_advertising_dispatch
+0x2a2d le_scan
+0x2a4c le_wait_adv
+0x2a53 le_create_conn
+0x2a66 le_connect_request
+0x2a71 le_con_req_hop_retry
+0x2aad le_adv
+0x2ab2 le_adv_loop
+0x2ac4 le_adv_not_match
+0x2ad4 le_send_adv_protect_txbuf
+0x2ad7 le_send_adv_recover_txbuf
+0x2ada le_init_adv
+0x2adc le_adv_access
+0x2ae3 le_send_adv_ind
+0x2af4 le_send_adv_direct_ind
+0x2afa le_send_adv_transmit
+0x2b01 le_send_scan_request
+0x2b12 le_send_scan_response
+0x2b25 le_parse_connect_req
+0x2b4d le_next_adv_channel
+0x2b52 le_next_adv_channel_curr_channel_39
+0x2b57 set_le_next_adv_channel_39
+0x2b5a set_le_adv_channel_map_temp
+0x2b5c le_next_adv_channel_curr_channel_37
+0x2b61 set_le_next_adv_channel_37
+0x2b65 le_next_adv_channel_curr_channel_38
+0x2b6a set_le_next_adv_channel_38
+0x2b6e le_parse_att
+0x2b76 le_parse_att2
+0x2b84 le_send_att_exchange_mtu_requset
+0x2b87 le_send_att_exchange_mtu_common
+0x2b8b le_parse_att_exchange_mtu_request
+0x2b8c le_send_att_exchange_mtu_response
+0x2b90 le_parse_att_exchange_mtu_response
+0x2b93 le_parse_att_find_information_request
+0x2b96 le_att_handle_inrange
+0x2ba1 le_send_att_find_information_response
+0x2ba3 le_send_att_find_information_res_loop
+0x2bba le_send_att_find_information_res_uuid16
+0x2bbd le_send_att_find_information_res_uuid128
+0x2bc1 le_send_att_find_information_res_store_info2
+0x2bc6 le_send_att_find_information_res_store_info
+0x2bcf le_send_att_find_information_res_cont
+0x2bd1 le_send_att_find_information_res_next
+0x2bd3 le_send_att_find_information_res_end
+0x2bd5 le_parse_att_find_by_type_value_request
+0x2bde le_start_end_handle_check_1
+0x2be5 le_start_end_handle_check_1_fail
+0x2be8 le_send_att_find_by_type_value_response
+0x2bef le_send_att_find_by_type_value_res_primary
+0x2bf4 le_send_att_find_primary_search_loop
+0x2c04 le_send_att_find_primary_search_loop1
+0x2c08 le_send_att_error_response_notfound2
+0x2c0b le_send_att_find_primary_search_end_start_handle_found
+0x2c13 le_send_att_find_primary_search_end_ending_handle_found
+0x2c19 le_send_att_find_primary_search_end
+0x2c22 le_parse_att_read_by_type_request
+0x2c25 le_send_att_read_by_type_response
+0x2c34 le_send_att_read_by_type_response_loop
+0x2c55 le_send_att_read_by_type_response_next_handle
+0x2c57 le_send_att_read_by_type_response_end
+0x2c59 le_send_att_read_by_type_res_found_next
+0x2c67 le_send_att_read_by_type_write_properties
+0x2c6e le_send_att_read_by_type_write_uuid
+0x2c7a le_send_att_read_by_type_res_not_characteristic
+0x2c90 le_send_att_read_by_type_res_device_name
+0x2ca5 le_init_attlist_search
+0x2cad le_att_get_handle_ptr
+0x2cb0 le_att_get_handle_ptr2
+0x2cb3 le_att_get_handle_loop1
+0x2cbb le_att_get_handle_ptr_found
+0x2cbb le_att_contr_add_len
+0x2cbe le_att_get_uuid_ptr
+0x2cc1 le_att_get_uuid_loop
+0x2cd1 le_att_get_uuid_ptr_next
+0x2cd4 le_att_get_last_handle
+0x2cd8 le_att_get_last_handle_loop
+0x2ce0 le_att_get_handle_info_from_ptr
+0x2ce2 le_att_get_handle_info
+0x2ce4 le_att_get_handle_info_fast
+0x2ce5 le_att_get_handle_loop
+0x2ced le_att_unfind_handle
+0x2cee le_att_finded_handle
+0x2cf7 le_parse_att_read_request
+0x2cfb le_send_att_read_response
+0x2d0b le_send_att_read_response_less
+0x2d14 le_send_device_name
+0x2d20 le_send_att_read_response_check_auth
+0x2d24 le_send_att_read_response_error_insufficient_auth
+0x2d26 le_send_att_read_response_check_handle
+0x2d2a le_parse_att_read_blob_request
+0x2d2e le_send_att_read_blob_response
+0x2d37 le_send_att_read_blob_response_less
+0x2d41 le_parse_att_read_by_group_type_request
+0x2d44 le_send_att_read_by_group_type_response
+0x2d4b le_send_att_read_by_group_type_response_loop
+0x2d68 le_send_att_read_by_group_type_store_write_record
+0x2d6e le_send_att_read_by_group_type_store_record
+0x2d72 le_send_att_read_by_group_type_next_handle
+0x2d74 le_send_att_read_by_type_res_check_pair_length_type
+0x2d76 le_send_att_read_by_group_type_check_pair_length_type
+0x2d7a le_send_att_read_by_group_type_check_pair_length_type_16byte
+0x2d7c le_send_att_read_by_group_type_end0
+0x2d7f le_send_att_read_by_group_type_end1
+0x2d83 le_send_att_read_by_group_type_end_common
+0x2d86 le_parse_att_write_request
+0x2d8a le_send_att_write_response_check_auth
+0x2d9a le_send_att_write_response
+0x2d9f le_send_att_write_response_check_handle
+0x2da3 le_send_att_write_response_error_invalid_handle
+0x2da5 le_check_encrypt_state
+0x2dac le_parse_att_prepare_write_request
+0x2db1 le_send_att_prepare_write_response
+0x2dbf le_parse_att_execute_write_request
+0x2dbf le_send_att_execute_write_response
+0x2dc4 le_parse_handle_value_confirmation
+0x2dc8 le_parse_att_write_command
+0x2dcc le_att_malloc_tx_notify
+0x2dd5 le_att_malloc_tx_indication
+0x2de1 le_send_att_error_response_notfound
+0x2de3 le_send_att_error_response
+0x2dee le_fifo_malloc_tx_l2cap_gatt
+0x2df1 le_att_next_handle
+0x2df5 le_att_check_handle_end
+0x2df9 le_att_same_type
+0x2dfc le_att_check_same_common
+0x2e02 le_store_att_record
+0x2e08 le_write_att_record
+0x2e0e le_write_att_record_common
+0x2e12 le_send_auto_len_by_mem
+0x2e1f le_get_search_handle_start_end_common
+0x2e24 le_get_search_max_mtu_data
+0x2e28 le_get_search_att_type
+0x2e2b le_get_search_common
+0x2e2d le_get_search_common2
+0x2e31 le_parse_writing_attribute_start
+0x2e3f le_clear_l2cap_att_states_deal_with_contiune_packet
+0x2e43 le_parse_writing_attribute_continue
+0x2e4c le_parse_attribute_write_request
+0x2e4e le_send_attribute_write_response_check_auth
+0x2e51 le_parse_attribute_write_command
+0x2e55 le_parse_attribute_check_complete_packet_init
+0x2e5c le_parse_l2cap_continue_common
+0x2e62 le_parse_attribute_check_complete_packet
+0x2e68 le_parse_signaling
+0x2e6d le_l2cap_parse_conn_parameter_update_rsp
+0x2e71 le_l2cap_tx_update_req
+0x2e79 le_fifo_malloc_tx_l2cap_signaling
+0x2e81 le_l2cap_update_signaling_identifier
+0x2e85 le_l2cap_reset_signaling_identifier
+0x2e87 le_pairing_mode_init
+0x2e8f le_set_pairing_mode_secure_justwork
+0x2e91 le_set_pairing_mode_secure_numeric
+0x2e94 le_set_pairing_mode_secure_passkey
+0x2e96 le_set_no_pairing
+0x2e97 le_set_noinputnooutput
+0x2e99 le_set_pairing_mode_lagacy_just_work
+0x2e9b le_set_pairing_mode_lagacy_passkey
+0x2e9c le_set_displayonly
+0x2e9e le_secure_connection_enable
+0x2ea2 le_secure_connection_disable
+0x2ea6 le_parse_smp
+0x2eb3 le_send_smp_security_request
+0x2eba le_parse_smp_pairing_request
+0x2ec6 le_parse_smp_pairing_request2
+0x2ece le_set_tk_0
+0x2ed1 le_parse_smp_pairing_req_passkey
+0x2ed3 le_genernate_tk
+0x2eda le_parse_smp_pairing_req_fixed_passkey
+0x2edc le_send_smp_pairing_response
+0x2ee1 le_parse_smp_pairing_confirm
+0x2ee9 le_parse_smp_pairing_confirm_passkey_res_input
+0x2eeb le_parse_smp_pairing_confirm_secure_passkey
+0x2eee le_parse_smp_pairing_confirm_sc_passkey_res_input
+0x2ef1 le_send_smp_pairing_confirm
+0x2efa le_send_smp_pairing_confirm_sc
+0x2f02 le_parse_smp_pairing_random
+0x2f08 le_send_pairing_confirm_value_failed
+0x2f09 le_send_pairing_failed
+0x2f0f le_parse_smp_pairing_failed
+0x2f15 le_smp_pairing_fail_reason_not_support_pairing
+0x2f17 le_parse_smp_pairing_random_sc
+0x2f23 le_parse_smp_pairing_random_sc_passkey
+0x2f2c le_parse_smp_pairing_random_success
+0x2f31 le_send_smp_pairing_random
+0x2f37 le_send_smp_encryption_information
+0x2f3f le_send_fixed_ltk
+0x2f41 le_send_smp_master_identification
+0x2f4d le_send_smp_identity_information
+0x2f55 le_send_smp_identity_address_information
+0x2f5e le_send_pairing_fail_unspecified_reason
+0x2f60 le_check_init_key_distribution
+0x2f64 le_parse_smp_identity_information
+0x2f6e le_check_master_addr_type
+0x2f74 le_parse_smp_identity_address_information
+0x2f78 le_parse_smp_signing_information
+0x2f78 le_parse_smp_security_request
+0x2f79 le_parse_smp_public_key
+0x2f7e le_parse_smp_dhkey_check
+0x2f83 le_send_smp_pairing_public_key
+0x2f89 le_send_smp_pairing_dhkey_check
+0x2f8f le_check_paring_time
+0x2f98 le_pairing_sm
+0x2fa5 le_pairing_sm_null
+0x2fa5 le_pairing_sm_send_sec_req
+0x2fab le_pairing_sm_start
+0x2fad le_pairing_sm_rcv_pairing_req
+0x2fb1 le_pairing_sm_after_auth
+0x2fb4 le_pairing_sm_after_auth_start_enc
+0x2fb8 le_pairing_sm_after_auth_start_enc_common
+0x2fbf le_pairing_sm_after_auth_start_enc_sc
+0x2fc1 le_pairng_sm_send_enc_information
+0x2fc3 le_pairng_sm_send_master_indentification
+0x2fca le_pairng_sm_send_indentity_information
+0x2fcc le_parse_start_enc_rsp_after_auth_end
+0x2fd3 le_secure_connect_sm
+0x2fe1 le_sc_state_clear
+0x2fe5 le_sc_sm_passkey_wait_confirm
+0x2fef le_sc_sm_wait_confirm_gkey
+0x2ff4 le_sc_confirm_gkey_ok
+0x2ff8 le_sc_sm_receive_dhkey
+0x2ffc le_dhkey_ready
+0x3001 le_dhkey_ready_common
+0x3007 le_dhkey_check_fail
+0x3009 le_dhkey_check_ok
+0x3013 le_sc_sm_send_public_key
+0x3017 le_sc_sm_ready_send_pairing_confirm
+0x3018 le_sc_sm_send_public_key_passkey
+0x301b le_sc_sm_receive_public_key
+0x301f le_public_key_ready
+0x3022 le_sc_sm_wait_send_public_key
+0x3025 le_fifo_malloc_tx_l2cap_smp
+0x3028 le_parse_ll
+0x303f le_parse_connection_update_ind
+0x3047 le_parse_channel_map_ind
+0x304b le_update_map_enable
+0x304f le_parse_terminate_ind
+0x3053 le_parse_enc_req
+0x3065 le_parse_enc_req_after_auth
+0x3068 le_parse_enc_req_fixed_ltk
+0x306d le_ltk_lost
+0x3071 le_parse_enc_rsp
+0x3076 le_parse_start_enc_req
+0x307a le_parse_start_enc_rsp
+0x307f le_parse_unknown_rsp
+0x3080 le_parse_feature_req
+0x3081 le_parse_feature_rsp
+0x3082 le_parse_pause_enc_req
+0x3086 le_parse_pause_enc_rsp
+0x3087 le_parse_version_ind
+0x3089 le_parse_reject_ind
+0x308a le_parse_ping_req
+0x308b le_parse_ping_rsp
+0x308c le_parse_length_req
+0x308e le_parse_length_rsp
+0x3099 le_parse_phy_req
+0x309a le_parse_phy_update_ind
+0x30a3 le_send_terminate_ind_user_terminated
+0x30a4 le_send_terminate_ind
+0x30aa le_send_enc_rsp
+0x30b8 le_send_start_enc_req
+0x30bb le_send_start_enc_rsp
+0x30bd le_send_unknown_rsp
+0x30c2 le_send_feature_rsp
+0x30c9 le_send_pause_enc_rsp
+0x30cb le_send_version_ind
+0x30d1 le_send_reject_ind
+0x30d7 le_send_ping_rsp
+0x30d9 le_send_data_length_req
+0x30db le_send_data_length_res
+0x30dc le_send_data_length
+0x30e1 le_send_phy_rsp
+0x30eb le_send_ll_one_lenth
+0x30ed g24_dispatch
+0x30f1 g24_prep
+0x30f8 g24_receive_packet
+0x3100 g24_receive_rxon
+0x3105 g24_receive_nolr
+0x3114 g24_receive_skip_fec1
+0x3127 g24_receive_skip
+0x3130 g24rx_loop
+0x3133 g24rx_nopayload
+0x3138 g24_receive_skip_rssi
+0x313f g24_receive_skip_next
+0x314c g24_receive_skip_disable_fec1
+0x314e g24_lr_receive_pdu_len
+0x3155 g24_lr_receive_pdu_norssi
+0x3157 g24_lr_receive_payload_len
+0x315c g24_receive_byte
+0x315f g24_sync_timeout
+0x3162 g24_end_of_packet
+0x3167 g24_hec_error
+0x3169 g24_lr_len_error
+0x316b g24_type_error
+0x316d g24_len_over_error
+0x316f g24_crc_error
+0x3171 g24_set_freq_tx
+0x3174 g24_transmit
+0x3187 g24_transmit_packet
+0x318d g24_transmit_nolr
+0x3192 g24tr_loop
+0x319c g24_transmit_skip
+0x31a3 g24_transmit_skip_disable_fec1
+0x31a6 g24_transmit_lr
+0x31a7 g24_transmit_lr_preamble_loop
+0x31b1 g24_transmit_lr_s2
+0x31b5 g24_transmit_lr_s8
+0x31b8 g24_transmit_2m
+0x31ba g24_transmit_2m_dealy
+0x31c4 g24_transmit_prep
+0x31cf g24_transmit_prep_pdu
+0x31e5 g24_lr_transmit_prep
+0x31e9 g24_lr_transmit_prep_skip
+0x31f3 g24_read_len_pid_crc
+0x3201 g24_ch
+0x3206 g24_ch_map_size
+0x320b g24_ch_calc
+0x3215 g24_update_addr_and_synccrc8
+0x3217 g24_syncword_crc8
+0x321a g24_syncword_crc8_loop
+0x3224 g24_timer_check
+0x3234 g24_timer_timeout
+0x3237 g24_timer_init
+0x323a g24_chmap_param_init
+0x324a g24_chamap_param_update
+0x3257 g24_rx_window_init
+0x325e g24_rx_window_store
+0x3260 g24_enable_1m
+0x3263 g24_enable_2m
+0x3266 g24_pair_param_init
+0x326c g24_pair_timeout_timer
+0x326f g24_pair_start
+0x327a g24_pair_init_param
+0x3281 g24_pair_dispatch
+0x3290 g24_pair_sm_1
+0x3292 g24_pair_sm_2
+0x3296 g24_pair_sm_2_skip
+0x3298 g24_pair_sm_3
+0x329e g24_pair_sm_4
+0x329f g24_pair_sm_prep
+0x32a1 g24_pair_sm_common
+0x32b4 g24_pair_sm_reinit
+0x32b9 g24_pair_sm_1_waiting_ack
+0x32bb g24_pair_sm_2_waiting_ack
+0x32bf g24_pair_sm_2_waiting_ack_skip
+0x32c1 g24_pair_sm_3_waiting_ack
+0x32c7 g24_pair_sm_3_waiting_ack_skip
+0x32c9 g24_pair_sm_4_waiting_ack
+0x32cf g24_pair_sm_4_waiting_ack_skip
+0x32d6 g24_pair_exit
+0x32da g24_bind_mode_enable
+0x32dd g24_bind_init
+0x32e8 g24_bind_ackpayload_prep
+0x32ec g24_bind_data_process
+0x32f9 g24_bind_data_error
+0x32fb g24_bind_data_parse
+0x3306 g24_bind_first_step
+0x330a g24_bind_first_step_device1
+0x330d g24_bind_dvc1_payload_cfg
+0x330e g24_bind_payload_cfg
+0x3312 g24_bind_first_step_device2
+0x3315 g24_bind_dvc2_payload_cfg
+0x3317 g24_bind_second_step
+0x331d g24_bind_second_step_skip
+0x3321 g24_bind_second_step_device1
+0x3326 g24_bind_dvc1_step_set2
+0x3329 g24_bind_dvc1_payload_cfg_transmitter_addr
+0x332a g24_bind_payload_cfg_transmitter_addr
+0x332e g24_bind_second_step_device2
+0x3333 g24_bind_dvc2_step_set2
+0x3338 g24_bind_third_step
+0x333e g24_bind_third_step_skip
+0x3342 g24_bind_third_step_device1
+0x3347 g24_bind_dvc1_step_success
+0x334c g24_bind_exit
+0x334f g24_bind_third_step_device2
+0x3354 g24_bind_dvc2_step_success
+0x335b g24_binding_device_check
+0x335f g24_binding_dvc1_status
+0x3361 disable_user3
+0x3363 g24_binding_dvc2_status
+0x3366 g24_binding_dvc1_living
+0x336c g24_binding_dvc2_living
+0x3372 g24_bind_device_status_check
+0x3374 g24_bind_device_status
+0x3378 g24_receive_init
+0x337c g24_receive_dispatch
+0x337e g24_ackpayload_prep
+0x3384 g24_receive_packet_start
+0x3386 g24_receive_packet_parse
+0x3397 g24_rx_interrupt_clear
+0x339b g24_data_receive_attemp
+0x339d g24_data_device1
+0x33ac g24_data_device2
+0x33b2 g24_data_attemp_device1_abort
+0x33b7 g24_data_attemp_device2_abort
+0x33b9 g24_receive_packet_parse_pid_crc
+0x33c7 g24_receive_transmit_ack
+0x33ca g24_transmit_ack
+0x33d0 g24tx_with_ack
+0x33d3 g24tx_no_ack
+0x33d4 g24_enable_nodata_timer
+0x33d5 g24_enable_nodata_timer_init
+0x33d8 g24_mode_switch_init
+0x33dd g24_mode_switch_bind_work
+0x33ea g24_bind_mode_continue
+0x33ef g24_work_mode_switch
+0x33f2 g24_bind_mode_switch
+0x33f5 g24_mode_b_s_switch_init
+0x3403 g24_mode_switch_bind_search
+0x341e g24_mode_switch_search
+0x3421 g24_mode_b_s_switch_exit
+0x3423 g24_mode_b_s_switch_stop
+0x3425 g24_mode_b_s_switch_start
+0x3427 g24_work_init
+0x3436 g24_switch_work_mode
+0x3437 g24_work_mode_enable
+0x343a g24_work_mode_start
+0x343f g24_bind_mode_auto
+0x344c g24_search_mode_init
+0x345e g24_search_mode_auto
+0x347d g24_self_ch_num_reinit
+0x347e g24_current_ch_num_reinit
+0x3480 g24_device2_ch_num_reinit
+0x3482 g24_device1_ch_num_reinit
+0x3484 g24_auto_addr_ch_search
+0x348e g24_auto_bind_config_device1
+0x34a3 g24_device1_config_ch_once
+0x34a8 g24_auto_bind_config_device2
+0x34bd g24_device2_config_ch_once
+0x34c2 g24_auto_bind_config_self
+0x34d6 g24_self_config_ch_once
+0x34da g24_ackpayload_disable
+0x34dc g24_receiver_addr_check
+0x34e0 g24_nodata_process
+0x34ea g24_search_mode_enable
+0x34ee g24_ch_process
+0x3502 g24_ch_receive_hop_pac
+0x3504 g24_ch_timer_reinit
+0x3507 g24_reconn_timeout_timer
+0x350a g24_reconn_start
+0x3517 g24_reconn_fast_conn
+0x351f g24_reconn_receiver_addr
+0x3526 g24_reconn_device_3_0_addr
+0x352d g24_store_receiver_addr
+0x3530 g24_ch_syncword_crc8_init
+0x3532 g24_reconn_dispatch
+0x353b g24_reconn_dispatch_next
+0x3546 g24_reconn_dispatch_success
+0x3553 g24_txbuf_clear
+0x3557 g24_reconn_data_prep
+0x355e g24_reconn_device_fail
+0x356b g24_reconn_fast_conn_and_receiver
+0x356d g24_reconn_fast_conn_and_3_0
+0x356f g24_reconn_receiver_and_3_0
+0x3571 g24_reconn_pair_and_3_0
+0x3573 g24_data_attemp
+0x3577 g24_data_attemp_device1
+0x357b g24_store_device1_addr
+0x357d g24_data_attemp_device2
+0x3581 g24_store_device2_addr
+0x3583 rssi_store
+0x358c rssi_average
+0x3593 rssi_average_loop
+0x35a0 save_rssi_dec
+0x35a1 rssi_transmitter_buff_init
+0x35a3 rssi_signal
+0x35ae rssi_receiver_buff_init
+0x35b5 rssi_buff_clear
+0x35bb rssi_noise
+0x35c2 rssi_noise_monitor
+0x35c8 g24_transmit_init
+0x35cb g24_interval_param_4ms
+0x35d3 g24_interval_param_8ms
+0x35db g24_transmit_dispatch
+0x35e0 g24_transmit_no_interrupt
+0x35e3 g24_transmit_start
+0x35e8 g24_transmit_start_next
+0x35ee g24_short_sleep
+0x35f5 g24_long_sleep
+0x35fa g24_long_seep2
+0x35fd g24_txdata_prep
+0x3600 g24_package_data
+0x3606 g24_accumulate_data
+0x360e g24_transmit_rf_ctrl_clear
+0x3612 g24_transmit_process
+0x3615 g24_transmit_loop
+0x361f g24_transmit_no_ack
+0x3620 g24_transmit_next_packet
+0x3625 g24_transmit_abandon
+0x362a g24_transmit_receive_ack
+0x3638 g24_retransmit
+0x363b g24_retransmit0
+0x3647 g24_ackpayload_parse
+0x364f g24_tx_attempt_fail
+0x3653 g24_stop_24g_mode
+0x3655 g24_transmit_hop_process
+0x3658 g24_transmit_hop_process_next
+0x3664 g24_transmit_hop_process_4ms
+0x3668 g24_hop_ch_enable
+0x3668 g24_txpayload_type_update
+0x366b g24_lr_type_update
+0x366d g24_hop_enable_packet
+0x366f g24_hop_ch_disable
+0x3675 g24_tx_fast_hop
+0x367c g24_search_receiver
+0x367e g24_nodata_transmit
+0x3685 g24_send_abort_packet
+0x3694 g24_lpm_wait
+0x369e g24_setgpio_lpm_before
+0x36a0 g24_transmit_by_interrupt
+0x36aa g24_transmit_by_interrupt_exit
+0x36af g24_interval_min
+0x36b1 g24_interval_store
+0x36b3 g24_interval_max
+0x36b5 g24_interval_calibrate
+0x36bb g24_transmit_by_interrupt_enable
+0x36bf g24_factory_check
+0x36c1 pdata_0xff_check
+0x36c3 pdata_0xff_check_loop
+0x36c8 power_ctrl_start
+0x36d3 power_ctrl_start_next
+0x36db power_ctrl_txpower_decrs_check
+0x36e0 power_ctrl_txpower_decrs
+0x36e4 power_ctrl_txpower_decrs_next
+0x36ed power_ctrl_txpower_incrs_force
+0x36ee power_ctrl_txpower_incrs
+0x36f4 power_ctrl_incrs_level3
+0x36f6 power_ctrl_decrs_level2
+0x36f6 power_ctrl_incrs_level2
+0x36f8 power_ctrl_decrs_level1
+0x36f8 power_ctrl_incrs_level1
+0x36fa power_ctrl_decrs_level0
+0x36fc power_ctrl_pac_succ_incrs
+0x3700 power_ctrl_pac_succ_decrs
+0x3708 power_ctrl_pac_succ_cnt_reinit
+0x370a app_init
+0x3717 app_param_init
+0x3722 app_process_idle
+0x3727 app_process_ble
+0x3729 app_process_bb_event
+0x3730 app_discard_event
+0x3732 app_event_normal_process
+0x3736 app_process_bb_event_priority
+0x3738 app_check_wake_lock
+0x373a app_will_enter_lpm
+0x373c app_le_event_bb_connected
+0x3740 app_le_event_bb_disconn
+0x3745 app_evt_button_long_pressed
+0x3749 app_evt_timer
+0x374a app_evt_100ms_loop
+0x3755 timer_single_step
+0x375c timer_single_step_2b
+0x3763 app_power_timer
+0x3767 app_power_timer_timeout
+0x3769 app_enter_power_off_state
+0x376a app_enter_power_stanby_state
+0x376d app_power_cb_common
+0x376f app_bb_hibernate
+0x3771 app_disconn_reason_clear
+0x3774 app_disconn_reason_flag_clear
+0x3777 app_disconn_reason_collect_ble
+0x377d app_get_lpm_wake_lock
+0x377f app_put_lpm_wake_lock
+0x3781 app_lpm_wake_auto_lock
+0x3783 app_lpm_wake_auto_lock_timer
+0x3786 app_ble_start_direct_adv
+0x3788 app_ble_stop_direct_adv
+0x378a app_ble_stop_adv
+0x378c app_ble_start_adv
+0x378e app_ble_start_scan
+0x3790 app_ble_stop_scan
+0x3792 app_ble_start_conn
+0x3794 app_ble_disconnect
+0x3796 app_led_start_blink
+0x3798 app_led_on
+0x379a app_led_stop_blink
+0x379a app_led_off
+0x379c app_enter_hibernate
+0x379e app_ble_store_reconn_info
+0x37a0 app_lpm_mult_enable
+0x37a2 app_lpm_mult_disable
+0x37a4 app_button_long_pressed
+0x37a6 app_power_starting
+0x37aa app_power_common
+0x37ae app_power_shutting_down
+0x37b4 app_power_off_end
+0x37b8 app_got_power_state_common
+0x37bc app_event_button_up
+0x37bf app_power_release
+0x37c1 car_init
+0x37d3 car_default_init
+0x38b9 car_system_clk
+0x38bb car_lpm_xtalcnt
+0x38bd car_lpm_isogate
+0x38bf car_lpm_hibernate_switch
+0x38c1 car_lpm_ldo_sel
+0x38c3 car_lpm_sysctl
+0x38c5 car_lpm_hv_sel
+0x38c7 car_fcomp_div
+0x38c9 car_xtal_c_sel
+0x38cb car_version
+0x38cd car_le_tx2m_delay
+0x38cf car_gain_fix
+0x38d1 car_rx_window_sniff
+0x38d3 car_gain_table
+0x38d5 car_gain_second_agc_en
+0x38d7 car_ring_ibias_trim
+0x38d9 car_ring_ibias_vtune_high
+0x38db car_ring_ibias_vtune_low
+0x38dd car_ring_ibias_calc_adc_gpio
+0x38df car_ring_ibias_calc_adc_channel
+0x38e1 car_tx_power
+0x38e3 car_24g_tx_phy
+0x38e5 car_24g_rx_phy
+0x38e7 car_motor_gpio_map
+0x38ea car_pwm_gpio
+0x38ef car_24g_addr
+0x38f1 car_24g_ch_map1
+0x38f3 car_init_environment
+0x38fb car_rxid_check
+0x3904 car_add_mac_to_local_name
+0x390c car_add_mac_to_local_name_loop
+0x3917 car_convert_hex_to_ascii
+0x3919 car_convert_hex_to_ascii_a_f
+0x391b car_convert_hex_to_ascii_0_9
+0x391d car_le_param_init
+0x3924 car_process_bb_event
+0x3928 car_ble_disconnted
+0x3930 car_ble_connted
+0x3933 car_ble_receive_data
+0x3936 car_ble_receive_writeatt
+0x393d car_ble_receive_writeatt_parse
+0x394b car_gpio_control_stop
+0x394f car_whitening_24g_addr
+0x3952 car_24g_whitening_loop
+0x3956 car_24g_whitening_byte
+0x3957 car_24g_whitening_byte_loop
+0x395e car_24g_whitening_byte_xor
+0x3963 car_get_rxid
+0x3981 car_pwm_control_init
+0x398b car_idle_process
+0x39a7 car_pwm_io_control
+0x39ae car_g24_sim_rx
+0x39be car_cb_24g_ackpayload
+0x39c4 car_soft_timer_process
+0x39c5 car_soft_timer_process_check_timer
+0x39cb car_soft_timer_process_wait_timeout
+0x39cf car_soft_timer_timeout
+0x39d3 car_timer_1khz_enable
+0x39d5 car_timer_500hz_enable
+0x39d7 car_pwm_change_1khz
+0x39e5 car_pwm_change_500hz
+0x39f1 car_period_change_timer
+0x39fb car_set_24g_ch
+0x3a00 car_set_ch0
+0x3a03 car_set_ch1
+0x3a06 car_set_ch2
+0x3a09 car_set_ch3
+0x3a0c car_set_ch_reset
+0x3a0f car_stop_run
+0x3a21 car_set_motor
+0x3a38 car_set_unconnect
+0x3a3c car_run_factory_mode_select
+0x3a40 car_run_mode_select
+0x3a47 car_pwm_mode_adv_flag_init
+0x3a50 car_factory_mode_time
+0x3a55 car_motor_mode_1
+0x3a59 car_motor_mode_2
+0x3a5d car_f
+0x3a62 car_b
+0x3a67 car_l
+0x3a6c car_r
+0x3a71 car_fl
+0x3a74 car_fr
+0x3a77 car_bl
+0x3a7a car_br
+0x3a7d car_reconnect
+0x3a88 car_recive_pair_request
+0x3a8e car_send_pair_response
+0x3a97 car_send_pair_response_juge
+0x3a9c car_cb_event_timer
+0x3aa1 car_100ms_timer_adv_control
+0x3aa8 car_100ms_timer_adv_control_timeout
+0x3aae car_100ms_timer_factory_test_control
+0x3ab3 car_100ms_timer_factory_test_timeout
+0x3ab7 car_motor1_status_select
+0x3abc car_motor2_status_select
+0x3ac1 car_lr_motor_stop
+0x3ac5 car_lr_motor_left
+0x3ac9 car_lr_motor_right
+0x3acd car_fb_motor_stop
+0x3ad1 car_fb_motor_front
+0x3ad5 car_fb_motor_back
+0x3ad9 car_le_stop_random_delay_check
+0x3adc car_check_close_ice
+0x3adf remote_car_init
+0x3aee remote_car_default_init
+0x3b5f remote_car_system_clk
+0x3b61 remote_car_lpm_xtalcnt
+0x3b63 remote_car_lpm_isogate
+0x3b65 remote_car_lpm_hibernate_switch
+0x3b67 remote_car_lpm_ldo_sel
+0x3b69 remote_car_lpm_sysctl
+0x3b6b remote_car_lpm_hv_sel
+0x3b6d remote_car_fcomp_div
+0x3b6f remote_car_xtal_c_sel
+0x3b71 remote_car_version
+0x3b73 remote_car_le_tx2m_delay
+0x3b75 remote_car_gain_fix
+0x3b77 remote_car_rx_window_sniff
+0x3b79 remote_car_gain_table
+0x3b7b remote_car_gain_second_agc_en
+0x3b7d remote_car_ring_ibias_trim
+0x3b7f remote_car_ring_ibias_vtune_high
+0x3b81 remote_car_ring_ibias_vtune_low
+0x3b83 remote_car_ring_ibias_calc_adc_gpio
+0x3b85 remote_car_ring_ibias_calc_adc_channel
+0x3b87 remote_car_tx_power
+0x3b89 remote_car_24g_tx_phy
+0x3b8b remote_car_24g_rx_phy
+0x3b8d remote_car_key_conf0
+0x3b8f remote_car_key_public_gpio
+0x3b91 remote_car_24g_tx_led_map
+0x3b93 remote_car_24g_addr
+0x3b95 remote_car_24g_ch_map1
+0x3b97 remote_car_set__lpm_timer_set
+0x3b9b remote_car_set_uconnect_lpm_time
+0x3ba0 remote_car_set_connected_lpm_time
+0x3ba5 remote_car_get_txid
+0x3bc3 remote_car_txid_check
+0x3bcc remote_car_whitening_24g_addr
+0x3bcf remote_car_24g_whitening_loop
+0x3bd3 remote_car_24g_whitening_byte
+0x3bd4 remote_car_24g_whitening_byte_loop
+0x3bdb remote_car_24g_whitening_byte_xor
+0x3be0 remote_car_lpm_gpio_config_flag_init
+0x3be3 remote_car_iocfg_pullup_loop
+0x3bec remote_car_idle_process
+0x3bf3 remote_car_24g_matching_process
+0x3bf7 remote_car_set_24g_ch
+0x3bfc remote_car_set_ch0
+0x3bff remote_car_set_ch1
+0x3c02 remote_car_set_ch2
+0x3c05 remote_car_set_ch3
+0x3c08 remote_car_set_ch_reset
+0x3c0b remote_car_send_pair_request
+0x3c0f remote_car_g24_sim_tx_with_datalen_set
+0x3c1f remote_car_g24_sim_tx
+0x3c2b remote_car_g24_transmit_no_ack
+0x3c30 remote_car_24g_recved_ack
+0x3c32 remote_car_g24_recved_ack_parse
+0x3c38 remote_car_g24_tx_connected
+0x3c45 remote_car_send_remote_control
+0x3c52 remote_car_scan_key
+0x3c58 remote_car_key_scan_lr
+0x3c66 remote_car_key_scan_fb
+0x3c74 remote_car_set_keyf
+0x3c77 remote_car_set_keyb
+0x3c7a remote_car_set_keyl
+0x3c7d remote_car_set_keyr
+0x3c80 remote_car_set_keym
+0x3c83 remote_car_set_tx_key_led
+0x3c8a remote_car_24g_tx_send_none
+0x3c8e remote_car_24g_set_led
+0x3c96 remote_car_24g_led_on
+0x3c98 remote_car_24g_led_off
+0x3c9b remote_car_lpm_timeout_set
+0x3ca4 remote_car_cb_event_timer
+0x3ca6 remote_car_enter_lpm
+0x3cab remote_car_enter_lpm_gpio_config
+0x3cad remote_car_enter_lpm_gpio_config_loopcnt
+0x3cb3 remote_car_enter_lpm_gpio_config_pull_up
+0x3cb9 remote_car_set_value
+0x3cba remote_car_gpio_wakeup_cfg
+0x3cc2 remote_car_wakeup_config
+0x3cc7 remote_car_wakeup_config_loop
+0x3cd1 dongle_init
+0x3cdc dongle_default_init
+0x3ce5 dongle_default_no_eeprom
+0x3cff dongle_xtal_select
+0x3d04 dongle_dispatch
+0x3d09 dongle_read_kb_bind_status
+0x3d0e dongle_write_kb_bind_status
+0x3d13 dongle_usb_config
+0x3d17 dongle_usb_config_kb
+0x3d1b dongle_usb_config_param
+0x3d20 dongle_usb_vid_pid_config
+0x3d24 dongle_usb_vid_pid_for_mouse_only_auto_pair
+0x3d25 dongle_usb_vid_pid_store
+0x3d27 dongle_usb_vid_pid_for_suit
+0x3d29 dongle_usb_hid_icon_config
+0x3d2f dongle_usb_kb_hidreportdesc
+0x3d33 dongle_usb_device_name
+0x3d39 dongle_all_powerful
+0x3d3a dongle_all_powerful_loop
+0x3d3d dongle_pc_bind
+0x3d3e dongle_pc_bind_loop
+0x3d42 dongle_g24_blank_data_process
+0x3d48 dongle_g24_ms_blank_data
+0x3d52 dongle_usb_tx_ms_data
+0x3d53 dongle_usb_tx_enable_ep2
+0x3d57 dongle_g24_kb_blank_data
+0x3d61 dongle_usb_tx_kb_data
+0x3d62 dongle_usb_tx_enable_ep1
+0x3d67 dongle_g24_kb_sys_ctrl_blank_data
+0x3d72 dongle_usb_tx_sys_ctrl_data
+0x3d74 dongle_g24_kb_mul_blank_data
+0x3d7f dongle_usb_tx_multikey_data
+0x3d81 dongle_g24_kb_bit_consumer_blank_data
+0x3d8c dongle_usb_tx_bit_consumer_data
+0x3d8e dongle_usb_dispatch
+0x3da1 dongle_usb0_data_ready_report_set0
+0x3da3 dongle_dispose_cmd_mode
+0x3da6 dongle_enter_bind_mode
+0x3da7 dongle_usb0_data_ready_report_set1
+0x3da9 dongle_dispose_cmd_bind
+0x3dae dongle_dispose_cmd_get_bind
+0x3db1 dongle_dispose_cmd_exit_bind
+0x3db3 dongle_dispose_cmd_read_mode
+0x3db3 dongle_dispose_in_bind_mode
+0x3db5 dongle_dispose_cmd_current_project
+0x3db7 dongle_dispose_cmd_current_mode
+0x3dbb dongle_dispose_in_work_mode
+0x3dbd dongle_dispose_cmd_current_fw_version
+0x3dc0 dongle_auto_bind
+0x3dc1 dongle_auto_bind_loop
+0x3dc8 dongle_work_mode_auto
+0x3dd0 dongle_ackpayload_prep
+0x3dd3 dongle_ackpayload_prep_mouse
+0x3dd6 dongle_set_pc_sleep_flag
+0x3dda dongle_clear_pc_sleep_flag
+0x3ddc dongle_ackpayload_prep_keyboard
+0x3dde dongle_ackpayload_prep_end
+0x3de2 dongle_pc_sleep_ackpayload_prep_mouse
+0x3de6 dongle_pc_sleep_ackpayload_prep_keyboard
+0x3de9 dongle_pc_sleep_ackpayload_prep
+0x3ded dongle_g24_bind_ackpayload_prep
+0x3df6 dongle_g24_kb_led_ackpayload_prep
+0x3dfe dongle_g24_mouse
+0x3e07 dongle_g24_ms_enable_blank_data_forcibly
+0x3e0b dongle_g24_ms_disable_blank_data_forcibly
+0x3e0f dongle_g24_kb
+0x3e15 dongle_g24_kb_type0
+0x3e28 dongle_g24_kb_enable_blank_data_forcibly
+0x3e2c dongle_g24_kb_disable_blank_data_forcibly
+0x3e30 dongle_g24_kb_type3
+0x3e40 dongle_g24_kb_mul_enable_blank_data_forcibly
+0x3e44 dongle_g24_kb_mul_disable_blank_data_forcibly
+0x3e48 dongle_g24_kb_type_bit_consumer
+0x3e58 dongle_g24_kb_bit_consumer_enable_blank_data_forcibly
+0x3e5c dongle_g24_kb_bit_consumer_disable_blank_data_forcibly
+0x3e60 dongle_g24_kb_type2
+0x3e70 dongle_g24_kb_sys_enable_blank_data_forcibly
+0x3e74 dongle_g24_kb_sys_disable_blank_data_forcibly
+0x3e78 dongle_usb_tx_sys_data
+0x3e7a dongle_g24_store_dvc2_bind_flag
+0x3e7e dongle_prep_soft_reset
+0x3e80 dongle_kb_bind_soft_reset
+0x3e85 dongle_wirte_efuse_bind_status
+0x3e8f keyboard_softreset_process
+0x3e9a keyboard_wakeup_from_power_check
+0x3ea1 keyboard_default_init
+0x3ea5 keyboard_xtal_init
+0x3eaa keyboard_24g_phy_select
+0x3eae keyboard_init
+0x3eb7 keyboard_init_wireless
+0x3ebd keyboard_setting_config
+0x3ecb keyboard_param_common_init
+0x3edb keyboard_param_init
+0x3eed keyboard_ble_store_le_name
+0x3ef2 keyboard_ble_name_set_no_swift_pair
+0x3ef4 keyboard_compare_addr_init
+0x3ef9 keyboard_gpio_init
+0x3f09 keyboard_key_cow_init
+0x3f0f keyboard_key_row_init
+0x3f12 keyboard_key_row_init_loop
+0x3f18 keyboard_gpio_set_low_pullup
+0x3f1b keyboard_gpio_pu_idle
+0x3f1d keyboard_gpio_pu_idle_loop
+0x3f22 keyboard_gpio_pu_idle_configured
+0x3f29 keyboard_key_row_wake_set
+0x3f2c keyboard_pairing_check_otp_offset
+0x3f31 keyboard_load_otp_info
+0x3f35 keyboard_load_otp_device_info_g24_init
+0x3f3f keyboard_load_otp_device_info_ble_init
+0x3f49 keyboard_load_otp_device_info
+0x3f4d keyboard_load_otp_info_check_page_loop
+0x3f5f keyboard_load_otp_info_check_first_time
+0x3f61 keyboard_load_otp_info_check_first_time_loop_init
+0x3f63 keyboard_load_otp_info_check_first_time_loop
+0x3f72 keyboard_load_otp_info_check_first_time_process
+0x3f74 keyboard_load_otp_info_check_offset_process
+0x3f81 keyboard_load_otp_info_check_offset_process_g24
+0x3f87 keyboard_load_otp_info_check_offset_process_ble
+0x3f96 keyboard_load_eeprom_info
+0x3f9d keyboard_load_eeprom_device_info_next
+0x3fa2 keyboard_load_info_check
+0x3faa keyboard_load_info_24g
+0x3fac keyboard_load_info_fn_lock
+0x3fb0 keyboard_load_info_bt1
+0x3fb5 keyboard_load_info_bt
+0x3fbb keyboard_load_info_bt2
+0x3fbf keyboard_load_info_bt3
+0x3fc3 keyboard_load_info_usb
+0x3fc6 keyboard_app_initflag_check
+0x3fd5 keyboard_load_flash_info
+0x3fd7 keyboard_store_device_info
+0x3fdd keyboard_store_otp_device_info
+0x3fe1 keyboard_store_otp_device_info_g24
+0x3feb keyboard_store_otp_device_info_ble
+0x3fee keyboard_wirte_otp_ble
+0x4004 keyboard_store_eeprom_device_info
+0x400b keyboard_store_eeprom_device_info_next
+0x400c keyboard_store_eeprom_device_info_typer_check
+0x4014 keyboard_store_eeprom_device_all_info
+0x4019 keyboard_store_eeprom_device_info_ble_addr
+0x4025 keyboard_store_eeprom_device_info_g24_addr
+0x402d keyboard_store_eeprom_device_info_fn_lock
+0x4035 keyboard_store_eeprom_device_info_device_os
+0x403d keyboard_store_eeprom_device_info_rgb_tpye
+0x4045 keyboard_store_device_number
+0x4049 keyboard_eeprom_init
+0x404e keyboard_cb_fuction
+0x4066 keyboard_priority_bb_event
+0x4075 keyboard_bb_event_timer
+0x4093 keyboard_adc_vol_init
+0x4098 keyboard_adc_vol_1v5_init
+0x409d keyboard_adc_vol_3v0_init
+0x40a2 keyboard_adc_vol_4v2_init
+0x40a7 keyboard_adc_init
+0x40a9 keyboard_adc_gpio_set
+0x40b2 keyboard_channel_set_gpio
+0x40c4 keyboard_adc_read_start
+0x40cc keyboard_adc_read
+0x40cf keyboard_adc_data_process
+0x40d4 keyboard_adc_low_voltage
+0x40d6 keyboard_adc_no_low_voltage
+0x40dd keyboard_adc_gpio_set_before_hibernate
+0x40e0 keyboard_low_voltage_param_set
+0x40e8 keyboard_low_voltage_param_reset
+0x40eb keyboard_low_vol_mult_set
+0x40f3 keyboard_low_vol_mult_ble_set
+0x40f9 keyboard_mult_auto_get
+0x4100 keyboard_low_voltage_led_timer
+0x4119 keyboard_adc_low_volatage_led_timer_count_clean
+0x411b keyboard_low_voltage_led_blink_new_data
+0x4131 keyboard_device_poweron_timer
+0x4139 keyboard_device_poweron_030_led
+0x413a keyboard_power_led_on
+0x413c keyboard_power_led_off
+0x413e keyboard_mode_led_timer
+0x4146 keyboard_device_pair_led_timer
+0x414b keyboard_device_24g_pair_led
+0x414d keyboard_device_pair_led
+0x415f keyboard_device_clear_power_timer
+0x4161 keyboard_device_led_all_off
+0x4166 keyboard_device_led_off
+0x416c keyboard_device_led_on
+0x4172 keyboard_device_24g_led_off
+0x4174 keyboard_device_bt1_led_off
+0x4176 keyboard_device_bt2_led_off
+0x4178 keyboard_device_bt3_led_off
+0x417a keyboard_device_24g_led_on
+0x417c keyboard_device_bt1_led_on
+0x417e keyboard_device_bt2_led_on
+0x4180 keyboard_device_bt3_led_on
+0x4182 keyboard_low_voltage_led_on
+0x4184 keyboard_low_voltage_led_off
+0x4186 keyboard_num_capslock_led_on_timer
+0x4193 keyboard_usb_led_check
+0x4196 keyboard_num_cap_scoll_led_check
+0x4199 keyboard_numlock_led_check_on
+0x419b keyboard_numlock_led_on
+0x419d keyboard_numlock_led_off
+0x419f keyboard_capslock_led_check_on
+0x41a3 keyboard_capslock_led_off
+0x41a5 keyboard_scrolllock_led_check_on
+0x41a9 keyboard_scrolllock_led_off
+0x41ab keyboard_rgb_on_timer
+0x41b7 keyboard_pwm_init
+0x41c0 keyboard_rgb_pwm_disable
+0x41c6 keyboard_rgb_pwm_set
+0x41c9 keyboard_load_rgb
+0x41d0 keyboard_rgb_mode_switch
+0x41de keyboard_rgb_mode_switch_next
+0x41e2 keyboard_rgb_on_type_switch
+0x41ef keyboard_rgb_on_type_switch_next
+0x41f3 keyboard_rgb_process
+0x4203 keyboard_rgb_off
+0x4209 keyboard_rbg_breathe_process
+0x4211 keyboard_rbg_breathe_up
+0x421a keyboard_rbg_breathe_color_switch
+0x4221 keyboard_rgb_pwm
+0x4224 keyboard_breathe_tpye_select
+0x422c keyboard_breathe_tpye_red
+0x4231 keyboard_breathe_tpye_green
+0x4236 keyboard_breathe_tpye_blue
+0x423b keyboard_breathe_tpye_cyan
+0x423d keyboard_breathe_tpye_orange
+0x423f keyboard_breathe_tpye_purple
+0x4241 keyboard_breathe_tpye_white
+0x4244 keyboard_rgb_on_process
+0x424e keyboard_rgb_led_control
+0x425b keyboard_rgb_red_led_on
+0x425d keyboard_rgb_red_led_off
+0x425f keyboard_rgb_green_led_on
+0x4261 keyboard_rgb_green_led_off
+0x4263 keyboard_rgb_blue_led_on
+0x4265 keyboard_rgb_blue_led_off
+0x4267 keyboard_key_press_timer
+0x426d keyboard_device_select_g24_press_timer
+0x4278 keyboard_device_select_g24_nopress_timer
+0x427e keyboard_device_select_bt_press_timer
+0x4289 keyboard_device_select_bt_nopress_timer
+0x428f keyboard_commbination_key_process
+0x4294 keyboard_commbination_key_press_type_check
+0x4299 keyboard_check_discovery_timeout_timer
+0x429c keyboard_check_discovery_timeout
+0x429e keyboard_store_information_delay_timer
+0x42a1 keyboard_le_auto_recognize_timer
+0x42a4 keyboard_check_direct_timeout_timer
+0x42aa keyboard_check_direct_timeout
+0x42ad keyboard_le_battery_updata_timer
+0x42b2 keyboard_le_send_conn_param_update_timer
+0x42b5 keyboard_24g_repeat_send_data
+0x42bf keyboard_24g_led_status_get_timer
+0x42c2 keyboard_24g_led_status_clear
+0x42c4 keyboard_same_key_long_press_timer
+0x42c7 keyboard_long_press_timerout
+0x42c9 keyboard_commbination_delay_release_timer
+0x42cc keyboard_usb_updata_timer
+0x42d5 keyboard_check_no_data_timeout_timer
+0x42da keyboard_check_no_data_timeout
+0x42dd keyboard_idle
+0x42e3 keyboard_check_select_device_by_switch
+0x42f0 keyboard_check_select_device_by_switch_vdd_check
+0x42f8 keyboard_check_select_device_by_switch_vdd
+0x42fd keyboard_check_select_device_by_switch_gnd
+0x4302 keyboard_select_btdevice
+0x4308 keyboard_check_select_24g_device
+0x430e keyboard_start_work
+0x431a keyboard_start_work_next
+0x4324 keyboard_start_ble1_reconnect
+0x4325 keyboard_start_ble_reconnect
+0x4329 keyboard_start_ble2_reconnect
+0x432b keyboard_start_ble3_reconnect
+0x432d keyboard_24g_start_mode
+0x4330 kscan_dispatch
+0x4334 keyboard_keyscan
+0x4342 keyboard_keyscan_exmcu_start_check
+0x434a keyboard_keyscan_wait_wake_next
+0x4351 keyboard_keyscan_copy_value
+0x4354 keyboard_compare_col_excol_gpio_loop
+0x4359 keyboard_compare_col_gpio_loop
+0x435e keyboard_compare_col_excol_gpio_loop_next
+0x4366 keyboard_copy_value_exmcu_to_mcu
+0x4372 keyboard_keyscan_get_exmcu_value
+0x4373 keyboard_keyscan_exmcu_start_loop
+0x437a keyboard_keyscan_exmcu_get_col_value
+0x437d keyboard_keyscan_value_store
+0x4386 keyboard_keyscan_get_mcu_value
+0x4389 keyboard_keyscan_mcu_start
+0x4393 keyboard_keyscan_mcu_start_loop
+0x4399 keyboard_keyscan_get_col_value
+0x439e keyboard_keyscan_get_col_value_loop
+0x43a7 keyboard_clk_state_high
+0x43a9 keyboard_clk_state_low
+0x43ab keyboard_clk_input
+0x43ad keyboard_stb_state_high
+0x43af keyboard_stb_state_low
+0x43b1 keyboard_press_change_or_no_key
+0x43b5 keyboard_key_process
+0x43c6 keyboard_keyvalue_process
+0x43cf keyboard_keyvalue_change
+0x43de keyboard_keyvalue_change_loop
+0x43e9 keyboard_keyvalue_process_loop
+0x43f1 keyboard_keyscan_value_current_zero_check
+0x43fd keyboard_ghost_key_check
+0x4402 keyboard_ghost_key_check_loop
+0x4405 keyboard_current_col_press_key_count_check
+0x4418 keyboard_same_row_key_check
+0x4429 keyboard_ghost_key_check_next_loop
+0x442c keyboard_same_row_key_check_loop
+0x442e keyboard_keyvalue_normal_replace
+0x4435 keyboard_keyvalue_fn_replace
+0x4440 keyboard_fn_lock_check
+0x4451 keyboard_keyvalue_fn_esc
+0x4457 keyboard_keyvalue_fn_esc_next
+0x4459 keyboard_keyvalue_fn_delete
+0x445b keyboard_keyvalue_fn_replace_press
+0x4468 keyboard_keyvalue_fn_lock_replace
+0x447e keyboard_keyvalue_fn_lock_24g
+0x4481 keyboard_keyvalue_fn_lock_bt1
+0x4484 keyboard_keyvalue_fn_lock_bt2
+0x4487 keyboard_keyvalue_fn_lock_bt3
+0x448a keyboard_keyvalue_fn_lock_usb
+0x448d keyboard_keyvalue_fn_up_arrow
+0x4491 keyboard_keyvalue_fn_down_arrow
+0x4495 keyboard_keyvalue_fn_left_arrow
+0x4499 keyboard_keyvalue_fn_right_arrow
+0x449d keyboard_keyvalue_fn_left_ctrl
+0x44a5 keyboard_keyvalue_windows_osk
+0x44a7 keyboard_keyvalue_fn_space
+0x44aa keyboard_keyvalue_store_temp
+0x44ac keyboard_keyvalue_os_android
+0x44b2 keyboard_keyvalue_os_switch_end
+0x44b7 keyboard_store_eeprom_or_flash
+0x44b9 keyboard_store_device_info_delay
+0x44bc keyboard_keyvalue_os_windows
+0x44c3 keyboard_keyvalue_os_ios
+0x44ca keyboard_keyvalue_clear_temp
+0x44cc keyboard_store_computer_system
+0x44d3 keyboard_store_computer_system_bt1
+0x44d6 keyboard_store_computer_system_bt2
+0x44d9 keyboard_store_computer_system_bt3
+0x44dc keyboard_keyvalue_commbination_replace
+0x44ec keyboard_commbination_delay_release_set
+0x44f0 keyboard_commbination_delay_release_clear
+0x44f2 keyboard_commination_screen_shot_replace
+0x44f8 keyboard_commination_pageup_replace
+0x44f9 keyboard_commination_ios_mac_command_commiation
+0x44fe keyboard_commination_pagedown_replace
+0x4500 keyboard_commination_home_replace
+0x4502 keyboard_commination_end_replace
+0x4504 keyboard_commination_select_all
+0x4505 keyboard_commbination_text_edit
+0x450b keyboard_commbination_copy
+0x450d keyboard_commbination_paste
+0x450f keyboard_commbination_cut
+0x4511 keyboard_commination_os_lock
+0x4516 keyboard_commination_windows_lock
+0x4519 keyboard_commination_mac_lock
+0x451c keyboard_commbination_osk
+0x4520 keyboard_commbination_windows_osk
+0x4523 keyboard_commbination_search
+0x4527 keyboard_commbination_mac_search
+0x452a keyboard_commbination_language
+0x452e keyboard_commbination_language_next
+0x4531 keyboard_commbination_language_windows
+0x4533 keyboard_commbination_language_android
+0x4535 keyboard_commbination_app_tiling
+0x453b keyboard_commbination_app_tiling_windows_android
+0x453e keyboard_commbination_keypress
+0x4543 keyboard_commbination_key_press_set
+0x4545 keyboard_commbination_key_wait_release_set
+0x4547 keyboard_commbination_key_null_set
+0x4549 keyboard_commbination_key_value_store
+0x454e keyboard_commbination_key_press_process
+0x4551 keyboard_commbination_key_hold_set
+0x4553 keyboard_commbination_key_hold_process
+0x4557 keyboard_commbination_key_wait_release_process
+0x455d keyboard_commbination_key_release_set
+0x455f keyboard_commbination_key_release_process
+0x4560 keyboard_commbination_key_null_process
+0x4564 keyboard_keyvalue_in_out
+0x456e keyboard_keyvalue_control_key_out
+0x4572 keyboard_keyvalue_control_key_in
+0x4576 keyboard_keyvalue_standard
+0x4579 keyboard_keyvalue_standard_out
+0x457c keyboard_keyvalue_standard_out_loop
+0x4585 keyboard_keyvalue_standard_out_next
+0x458a keyboard_keyvalue_standard_out_n_key_rollover
+0x458d keyboard_keyvalue_standard_in
+0x4590 keyboard_keyvalue_standard_in_loop
+0x4599 keyboard_keyvalue_standard_in_n_key_rollover
+0x459c keyboard_keyvalue_standard_in_data
+0x459f keyboard_keyvalue_n_key_rollover_data_in_out
+0x45ad keyboard_keyvalue_consumer
+0x45b2 keyboard_consumer_key_release_status
+0x45b4 keyboard_special_key_check
+0x45bf keyboard_special_key_check_loop
+0x45c9 keyboard_commbination_key_press_check
+0x45d7 keyboard_commbination_key_press_check_bt
+0x45e8 keyboard_commbination_key_down_24g
+0x45ea keyboard_commbination_key_down_bt
+0x45ec keyboard_commbination_key_down_bt_fast_conn
+0x45ee keyboard_commbination_key_down
+0x45f2 keyboard_device_select
+0x45fe keyboard_clear_change_flag
+0x4600 keyboard_device_select_g24
+0x460c keyboard_device_select_g24_press
+0x4616 keyboard_device_select_bt1
+0x4620 keyboard_device_select_bt1_press
+0x4627 keyboard_device_select_bt2
+0x4631 keyboard_device_select_bt2_press
+0x4638 keyboard_device_select_bt3
+0x4642 keyboard_device_select_bt3_press
+0x4649 keyboard_device_select_bt_set_press_flag
+0x464e keyboard_device_select_usb
+0x465a keyboard_device_select_usb_press
+0x4660 keyboard_pairing_button_check
+0x466c keyboard_pairing_button_release
+0x4670 keyboard_enable_bt_button_pairing
+0x4675 keyboard_long_button_bt_discovery
+0x4680 keyboard_24g_start_pair_mode
+0x468f keyborad_control_key_set
+0x4697 keyboard_alt_flag_set
+0x4699 keyboard_fn_set
+0x469b keyboard_pb_set
+0x469d keyboard_motion
+0x46b7 keyboard_current_mult_update
+0x46ba keyboard_no_key_press
+0x46ca keyboard_motion_data_check
+0x46d1 keyboard_value_tpye_check
+0x46dc keyboard_tx_data_store
+0x46e3 keyboard_tx_data_store_loop
+0x46e6 keyboard_motion_data_check_next
+0x46ea device_send_keyboard_data
+0x46ec keyboard_motion_data_check_n_key_rollover_key
+0x46ef keyboard_value_release_all_key
+0x46f5 keyboard_value_tpye_consumer_set
+0x4715 keyboard_value_media
+0x4716 keyboard_consumer_value_store
+0x4718 keyboard_value_vol_down
+0x471a keyboard_value_vol_up
+0x471c keyboard_value_mute
+0x471e keyboard_value_pre_track
+0x4720 keyboard_value_next_track
+0x4722 keyboard_value_play
+0x4724 keyboard_value_stop
+0x4726 keyboard_value_ac_home
+0x4728 keyboard_value_mail
+0x472a keyboard_value_my_computer
+0x472c keyboard_value_ac_favorites
+0x472e keyboard_value_calculator
+0x4730 keyboard_value_ac_search
+0x4732 keyboard_value_ac_back
+0x4737 keyboard_value_os_soft_kb
+0x473b keyboard_value_os_soft_kb_android
+0x473d keyboard_value_light_down
+0x473f keyboard_value_light_up
+0x4741 keyboard_value_os_lock
+0x4743 keyboard_value_mac_eject
+0x4745 keyboard_value_ac_forward
+0x4747 keyboard_value_ac_stop
+0x4749 keyboard_value_ac_refresh
+0x474b keyboard_value_consumer_all_key_release
+0x474b keyboard_value_consumer_release
+0x4752 keyboard_value_system_sleep
+0x4756 keyboard_device_data_tpye_check
+0x475d keyboard_device_data_tpye_check_next
+0x4768 keyboard_mouse_data_send
+0x476d keyboard_standard_data_send
+0x4772 keyboard_standard_data_send_end
+0x4778 keyboard_magic_data_send
+0x477c keyboard_magic_data_send_end
+0x4780 keyboard_consumer_data_send
+0x4781 keyboard_consumer_data_store
+0x4785 keyboard_bit_consumer_data_send
+0x4787 keyboard_system_control_data_send
+0x478c keyboard_n_key_rollover_send
+0x478f keyboard_lpm_before_common
+0x4796 keyboard_key_col_wake_init
+0x47a0 keyboard_key_row_wake_init
+0x47aa keyboard_process_lpm_before
+0x47ac keyboard_before_hibernate
+0x47af keyboard_power_down
+0x47b1 keyboard_app_enter_hibernate
+0x47b3 keyboard_setgpio_hibernate
+0x47b8 keyboard_24g_pairing_complete
+0x47ca keyboard_24g_attempt_success
+0x47d3 keyboard_24g_fast_conn_check
+0x47d9 keyboard_24g_led_get_status_check
+0x47db keyboard_24g_led_data_check
+0x47e1 keyboard_get_24g_led_enable
+0x47e4 keyboard_set_repeat_send_flag
+0x47e6 keyboard_24g_attempt_fail
+0x47ed keyboard_24g_attempt_fail_enter_hibernate
+0x47f3 keyboard_24g_fast_conn_attempt_fail
+0x47fb keyboard_24g_hibernate_set
+0x4804 keyboard_24g_stop
+0x4808 keyboard_g24_reconn_dispatch
+0x480f keyboard_g24_reconn_dispatch_next
+0x4815 keyboard_g24_transmit_no_interrupt
+0x4817 keyboard_g24_transmit_start
+0x481a keyboard_g24_nodata_transmit
+0x4821 keyboard_g24_long_sleep
+0x4828 keyboard_g24_transmit_process
+0x482a keyboard_g24_transmit_loop
+0x4834 keyboard_g24_retransmit
+0x4841 keyboard_g24_tx_fast_hop
+0x4848 keyboard_g24_lpm_wait
+0x4855 keyboard_power_ctrl_start
+0x485b keyboard_g24_transmit_start_next
+0x485f keyboard_g24_short_sleep
+0x4862 keyboard_24g_package_data
+0x4868 keyboard_24g_keyboard_package_data
+0x486d keyboard_24g_keyboard_package_n_key_rollover_data
+0x4871 keyboard_24g_search_dongle
+0x4875 keyboard_le
+0x487d keyboard_le_next
+0x4885 keyboard_le_fill_n_key_rollover_key_data
+0x488e keyboard_le_fill_standard_key_data
+0x4893 keyboard_le_bb_event_connected
+0x489a keyboard_le_bb_event_connected_next
+0x48a2 keyboard_le_bb_disconnected
+0x48a7 keyboard_le_bb_disconnected_next
+0x48ab keyboard_bb_disconnected
+0x48af keyboard_le_event_bb_disconn
+0x48b3 keyboard_le_ll_start_encryt
+0x48b8 keyboard_le_ll_reconn_start_encryt
+0x48bb keyboard_le_conn_param_update_rsp_recieved
+0x48c0 keyboard_bb_event_discovery_btn
+0x48c5 keyboard_start_discovery
+0x48d9 keyboard_start_discovery_norandom
+0x48e6 keyboard_stop_bluetooth_mode
+0x48e9 keyboard_stop_discovery
+0x48f2 keyboard_store_remote_bdaddr
+0x48fd keyboard_le_send_att_find_by_type_value_request_ancs
+0x490b keyboard_le_parse_att
+0x4919 keyboard_le_send_att_find_by_type_value_request_mac
+0x492c keyboard_le_parse_att_find_by_type_value_rsp_mac
+0x4938 keyboard_le_send_att_read_by_type_rsp_mac
+0x4941 keyboard_le_check_att_read_type_manu_loop
+0x494a keyboard_le_send_att_read_by_type_rsp_manufactory
+0x4952 keyboard_le_parse_att_manu_resp
+0x495c keyboard_le_parse_att_find_by_type_value_rsp
+0x4960 keyboard_le_parse_att_find_ios_report
+0x4962 keyboard_le_parse_att_not_find_mac_report
+0x4965 keyboard_le_parse_att_find_mac_report
+0x4966 keyboard_store_computer_system_ble
+0x496d keyboard_store_computer_system_info
+0x4971 keyboard_le_parse_att_read_by_type_request
+0x4973 keyboard_le_send_att_read_by_type_response
+0x497f keyboard_le_send_att_read_by_type_res_pnp_id
+0x4986 keyboard_le_parse_att_read_blob_request
+0x4999 keyboard_le_send_att_read_blob_response
+0x499f keyboard_le_parse_att_read_request
+0x49a2 keyboard_le_send_att_read_response
+0x49a7 keyboard_le_send_att_read_response_next
+0x49aa keyboard_le_send_att_read_response_next_1
+0x49b7 keyboard_le_send_att_appearance
+0x49ba keyboard_le_send_att_pnp_id
+0x49bf keyboard_le_send_att_read_response_check_auth
+0x49c5 keyboard_le_parse_att_write_request
+0x49cb keyboard_le_parse_att_write_command
+0x49d1 keyboard_le_fast_conn_led_get
+0x49d4 keyboard_le_led_get
+0x49d7 keyboard_usb_mode_start
+0x49db keyboard_usb_check_enable
+0x49e1 keyboard_usb_config_param
+0x49e7 keyboard_usb_vid_pid_config
+0x49ec keyboard_usb_interface_check_power_on
+0x49ee keyboard_usb_vdd_status_store
+0x49f1 keyboard_usb_insert
+0x49fa keyboard_usb_isr
+0x49ff keyboard_usb_mode
+0x4a10 keyboard_usb_tx_kb_normal_data
+0x4a15 keyboard_push_n_key_rollover_key_data_to_usb
+0x4a1d keyboard_ui_ipc_send_event
+0x4a20 ui_ipc_fifo_check
+0x4a25 keyboard_enable_function_flag
+0x4a29 keyboard_disable_function_flag
+0x4a2d keyboard_bt_discovery_button_down_enable
+0x4a2f keyboard_bt_discovery_button_down_disable
+0x4a31 module_init
+0x4a43 module_lpm_uart_init
+0x4a55 module_gpio_init
+0x4a5a module_lpm_lock
+0x4a5e module_process_idle
+0x4a61 module_process_bb_event
+0x4a6f module_process_bb_even_le_disconn
+0x4a73 module_process_le_conn
+0x4a77 module_disconn_start
+0x4a79 module_process_ble_ltk_lost
+0x4a7b module_process_ble_update_phy
+0x4a7c module_set_conn_pin_high
+0x4a7e module_conn_start
+0x4a80 module_stop_adv_discovery
+0x4a84 module_set_conn_pin_low
+0x4a86 module_process_check_hci_command_complete
+0x4a9c module_hci_in_excp
+0x4a9f module_hci_release_except
+0x4aa5 module_hci_dicard_packet
+0x4aa9 module_hci_dicard_bytes
+0x4aaa module_hci_cmd_control
+0x4ac7 module_hci_cmd_set_le_addr
+0x4acc module_hci_cmd_set_visibility
+0x4ad3 module_start_adv_discovery_by_command
+0x4ad3 moudle_start_adv_by_command
+0x4ada module_hci_cmd_set_le_name
+0x4ade module_hci_cmd_receive_le_data
+0x4b03 module_hci_cmd_receive_le_data_finish
+0x4b06 module_hci_cmd_transmit_handle_error
+0x4b0a module_hci_cmd_transmit_le_notify
+0x4b28 module_hci_cmd_transmit_le_notify_malloc_l2cap
+0x4b2d module_get_le_remote_mtu
+0x4b32 module_check_ble_encrypt_state
+0x4b35 module_hci_cmd_inquire_status
+0x4b36 module_hci_cmd_set_uart_baud
+0x4b3e module_hci_cmd_version_request
+0x4b42 module_hci_cmd_ble_disconnect
+0x4b44 module_hci_cmd_ble_disconnect_doing
+0x4b46 module_hci_cmd_set_nvram
+0x4b4b module_hci_cmd_auto_adv
+0x4b51 module_hci_cmd_auto_adv_loop
+0x4b5b module_hci_cmd_auto_adv_store_adv
+0x4b65 module_hci_cmd_auto_adv_store_scan
+0x4b6e module_hci_cmd_auto_adv_store_common
+0x4b79 module_hci_cmd_auto_adv_adv_analys
+0x4b7e module_hci_cmd_power_request
+0x4b84 module_hci_cmd_power_set
+0x4b8b module_hci_cmd_passkey_entry
+0x4b90 module_hci_cmd_le_set_pairing_mode
+0x4b9f module_le_set_pairing_mode_secure_justwork
+0x4ba3 module_le_set_pairing_mode_secure_numeric
+0x4ba8 module_le_set_pairing_mode_secure_passkey
+0x4bac module_le_set_pairing_mode_secure_passkey_res_input
+0x4bb0 module_le_set_no_pairing
+0x4bb1 module_le_set_noinputnooutput
+0x4bb3 module_le_set_pairing_mode_lagacy_just_work
+0x4bb5 module_le_set_pairing_mode_lagacy_passkey
+0x4bb7 module_le_set_pairing_mode_lagacy_passkey_res_input
+0x4bb9 module_le_set_keboadonly
+0x4bbb module_le_set_displayonly
+0x4bbd module_hci_cmd_le_set_scan_data
+0x4bc0 module_hci_cmd_receive_store_mem
+0x4bc6 module_hci_cmd_le_send_conn_update_req
+0x4bcf module_hci_cmd_set_le_adv_parameter
+0x4bd5 module_hci_cmd_le_start_pairing
+0x4bdd module_hci_cmd_set_wake_gpio
+0x4be7 module_hci_cmd_set_tx_power
+0x4bec module_hci_cmd_le_confirm_gkey
+0x4bf3 module_hci_cmd_le_confirm_gkey_ok
+0x4bf5 module_hci_cmd_le_confirm_gkey_fail
+0x4bf7 module_hci_cmd_reset_chip
+0x4bfb module_hci_cmd_delete_customize_service
+0x4c01 module_hci_cmd_add_service_uuid
+0x4c06 module_hci_cmd_add_characteristic_uuid
+0x4c0a module_hci_cmd_add_service_uuid_set_uuid
+0x4c0e module_hci_cmd_add_characteristic_uuid_set_handle
+0x4c15 module_hci_cmd_add_characteristic_uuid_set_uuid
+0x4c2d module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+0x4c35 le_att_creat_new_handle
+0x4c38 uart_copy_rx_bytes_len_data
+0x4c3c module_hci_cmd_le_passkey_entry_input
+0x4c42 module_hci_cmd_passkey_entry_sc_res_input
+0x4c45 module_hci_cmd_receive_ble_passkey
+0x4c48 module_hci_cmd_passkey_entry_res_input
+0x4c4a module_hci_event_receive_invalid_cmd
+0x4c4d module_hci_event_receive_valid_cmd
+0x4c50 module_hci_event_le_connect
+0x4c52 module_hci_event_le_disconnect
+0x4c54 module_hci_event_set_cmd
+0x4c61 module_hci_event_receive_le_data
+0x4c6c module_hci_event_enter_standby_mode
+0x4c6d module_hci_event_enter_standby_mode_len0
+0x4c70 module_hci_event_status_res
+0x4c7a module_hci_read_bt_status
+0x4c80 module_hci_event_store_device
+0x4c89 module_hci_event_gkey_generate
+0x4c8f module_hci_event_invalid_packet
+0x4c9e module_hci_event_passkey_entry_mode
+0x4ca0 module_hci_event_le_tk
+0x4ca6 module_hci_event_le_pairing_fail
+0x4ca8 module_hci_event_le_pairing_success
+0x4caa module_hci_event_pairing_completed
+0x4cb0 module_hci_event_pause_enc
+0x4cb2 module_hci_event_start_enc
+0x4cb3 module_hci_event_enc
+0x4cb9 module_hci_event_uuid_handle
+0x4cc0 module_hci_event_le_input_passkey
+0x4cc2 module_hci_event_le_update_phy
+0x4cc8 module_hci_prepare_tx
+0x4cd2 module_hci_transmit_tx
+0x4cd4 module_set_mcu_wake_pin_high_delay
+0x4cd6 module_set_mcu_wake_pin_h_delay
+0x4cdb module_set_mcu_wake_pin_high
+0x4cdd module_check_mcu_wake_pin_high
+0x4cdf module_set_mcu_wake_pin_low
+0x4ce1 module_le_receive_data
+0x4ce7 module_le_receive_data_ok
+0x4cf2 module_bb_event_timer
+0x4cf3 module_read_vdd_timer
+0x4d05 module_set_le_tx_data_flag
+0x4d07 module_clear_le_tx_data_flag
+0x4d09 module_clr_state
+0x4d0d module_set_state
+0x4d11 mouse_init
+0x4d1c mouse_init_wireless
+0x4d20 mouse_wake_gpio_set
+0x4d22 mouse_cb_fuction
+0x4d40 mouse_setting_config
+0x4d48 mouse_load_device_info_check
+0x4d4e mouse_xtal_init
+0x4d53 mouse_24g_phy_select
+0x4d5d mouse_g24_reconn_dispatch_set
+0x4d60 mouse_g24_reconn_dispatch
+0x4d65 mouse_receiver_addr_check
+0x4d6c mouse_g24_reconn_mode_judge
+0x4d70 mouse_g24_transmit_hop_process
+0x4d72 mouse_g24_transmit_hop_process_new
+0x4d7e mouse_g24_transmit_hop_process_4ms
+0x4d82 mouse_default_init
+0x4d88 mouse_param_info_init
+0x4d8c mouse_spi_parm_init
+0x4d93 mouse_param_common_init
+0x4da0 mouse_compare_addr_init
+0x4da5 mouse_report_rate_parm_init
+0x4da8 mouse_le_report_rate_parm_init
+0x4dab mouse_le_interval_store
+0x4dae mouse_24g_report_rate_parm_init
+0x4db2 mouse_g24_interval_param_2ms
+0x4db6 mouse_report_rate_set_500hz
+0x4db9 mouse_g24_interval_param_4ms
+0x4dc6 mouse_g24_interval_param_8ms
+0x4dd3 mouse_sensor_set_angle
+0x4de1 mouse_set_sensor_angle_vin
+0x4de5 mouse_set_sensor_angle_gnd
+0x4de9 mouse_set_sensor_angle_float
+0x4dea mouse_store_sensor_angle
+0x4dec mouse_le_name_modify
+0x4df5 mouse_start_work
+0x4dfa mouse_le_fast_conn_judge
+0x4e00 mouse_le_device1_judge
+0x4e05 mouse_le_device2_judge
+0x4e09 mouse_start_reconnect_device
+0x4e11 mouse_start_reconnect
+0x4e14 mouse_wakeup_from_power_check
+0x4e1b mouse_wakeup_from_poweron
+0x4e1e mouse4_0_check_reconn_target
+0x4e23 mouse4_0_check_reconn_target_next
+0x4e2d mouse_lpm_check_wake_lock
+0x4e35 mouse_app_enter_hibernate
+0x4e3b mouse_app_enter_hibernate_next
+0x4e3d mouse_before_hibernate
+0x4e42 mouse_setgpio_hibernate
+0x4e52 mouse_wheel_gpio_set_before_hibernate
+0x4e54 mouse_wheel_gpio_clr_wakeup
+0x4e5c mouse_adc_gpio_set_before_hibernate
+0x4e62 mouse_gpio_pd_idle
+0x4e64 mouse_gpio_pd_idle_loop
+0x4e69 mouse_gpio_pd_idle_configured
+0x4e6d mouse_gpio_pd_idle_ext
+0x4e70 mouse_process_lpm_before
+0x4e75 mouse_lpm_before_common
+0x4e9b mouse_set_mult
+0x4ea0 mouse_adc_gpio_set
+0x4ea5 mouse_adc_read
+0x4ea9 mouse_adc_read_start
+0x4eb4 mouse_adc_data_process
+0x4ebb mouse_adc_low_voltage
+0x4ebd mouse_adc_no_low_voltage
+0x4ec4 mouse_adc_bat_percent_lowpower_out
+0x4ec7 mouse_adc_bat_percent_lowpower_out_battery
+0x4ed0 mouse_adc_bat_level_set
+0x4ee1 mouse_adc_bat_level_100_percent
+0x4ee3 mouse_adc_bat_level_0_percent
+0x4ee5 mouse_gpio_init
+0x4f02 mouse_gpio_set_pupd_by_input
+0x4f06 device_gpio_config_input_pd
+0x4f0a device_gpio_config_input_pu
+0x4f0e mouse_gpio_set_analog
+0x4f12 mouse_gpio_set_analog_bit_loop
+0x4f1b mouse_sensor_spi_init
+0x4f1f mouse_spi_write_flash_cb
+0x4f1f mouse_spi_init
+0x4f20 mouse_spid_init_pin
+0x4f26 mouse_motion
+0x4f38 mouse_zwheel
+0x4f3d mouse_t_zwheel
+0x4f42 mouse_wheel_check
+0x4f51 mouse_t_wheel_scan
+0x4f61 mouse_t_wheel_scan_judge1
+0x4f65 mouse_t_wheel_scan_judge2
+0x4f69 mouse_t_wheel_scan_judge11
+0x4f6b mouse_t_wheel_scan_judge12
+0x4f6d mouse_t_wheel_scan_judge21
+0x4f6f mouse_t_wheel_scan_judge22
+0x4f71 mouse_t_wheel_scan_judge3
+0x4f79 mouse_t_wheel_scan_judge30
+0x4f7c mouse_t_wheel_scan_judge31
+0x4f7f mouse_t_wheel_scan_judge32
+0x4f82 mouse_t_wheel_scan_judge33
+0x4f85 mouse_wheel_t_forward
+0x4f89 mouse_wheel_t_back
+0x4f8d mouse_wheel_scan
+0x4f9d mouse_wheel_scan_judge1
+0x4fa1 mouse_wheel_scan_judge2
+0x4fa5 mouse_wheel_scan_judge11
+0x4fa7 mouse_wheel_scan_judge12
+0x4fa9 mouse_wheel_scan_judge21
+0x4fab mouse_wheel_scan_judge22
+0x4fad mouse_wheel_scan_judge3
+0x4fb5 mouse_wheel_scan_judge30
+0x4fb8 mouse_wheel_scan_judge31
+0x4fbb mouse_wheel_scan_judge32
+0x4fbe mouse_wheel_scan_judge33
+0x4fc1 mouse_wheel_forward
+0x4fc5 mouse_wheel_back
+0x4fc9 mouse_before_hibernate_wheel_gpio_set
+0x4fd1 mouse_wheel_trigger
+0x4fd6 mouse_wheel_trigger_timer
+0x4fd9 mouse_wheel_trigger_disable
+0x4fdb mouse_dpi_check
+0x4fe5 mouse_dpi_check_exit
+0x4fe8 mouse_dpi_key_check
+0x4ff0 mouse_dpi_key_connect_matrix
+0x4ff8 mouse_dpi_3io6key_check
+0x4ffc mouse_3io6key_dpi_check_end
+0x4fff mouse_dpi_check_end
+0x5002 mouse_dpi_key_connect_gnd
+0x5004 mouse_dpi_down
+0x500b mouse_dpi_up
+0x5012 mouse_dpi_up_next
+0x5016 mouse_dpi_up_after_long_press
+0x501b mouse_dpi_process
+0x501e mouse_dpi_process_skip_ghost
+0x5025 mouse_dpi_level_store
+0x5028 mouse_double_dpi_check
+0x502a mouse_dpi_increase
+0x502e mouse_dpi_increase_level
+0x5031 mouse_dpi_level_1
+0x5033 mouse_dpi_level_2
+0x5035 mouse_dpi_level_3
+0x5037 mouse_dpi_level_4
+0x5039 mouse_dpi_increase_level_4
+0x503f mouse_dpi_decrease_level_4
+0x5045 mouse_another_dpi_button_down
+0x5045 mouse_dpi_decrease
+0x5049 mouse_dpi_decrease_level
+0x504c mouse_dpi_ghost_check
+0x5050 mouse_dpi_key_check_long_press
+0x5054 mouse_select_device_by_dpi_button
+0x5059 mouse_ready_reconnection_by_dpi_button
+0x505b mouse_discovery_by_dpi_button
+0x5060 mouse_long_dpi_button_bt_discovery
+0x5062 mouse_setting_dpi_4_level
+0x5068 mouse_setting_dpi
+0x506b mouse_setting_sensor_type
+0x5075 mouse_set_cpi1
+0x5077 mouse_set_cpi0
+0x5079 mouse_set_cpi2
+0x507b mouse_set_cpi3
+0x507c mouse_dpi_store
+0x5082 mouse_dpi_write
+0x508b mouse_3065xy_set_dpi
+0x508d mouse_ka8_set_dpi
+0x508f mouse_seting_s201_dpi
+0x5095 mouse_set_s201_dpi_0
+0x5097 mouse_set_s201_dpi_1
+0x5099 mouse_set_s201_dpi_2
+0x509b mouse_set_s201_dpi_3
+0x509d mouse_set_s201_dpi_4
+0x509e mouse_dpi_s201_store
+0x50a5 mouse_sensor_enable_wp
+0x50a7 mouse_sensor_disable_wp
+0x50a9 mouse_seting_3212_dpi
+0x50ae mouse_set_p3212_cpi1
+0x50b0 mouse_set_p3212_cpi0
+0x50b2 mouse_set_p3212_cpi2
+0x50b4 mouse_set_p3212_cpi3
+0x50b5 mouse_p3212_dpi
+0x50bd mouse_seting_ka8g2_dpi
+0x50c2 mouse_set_pka8g2_cpi1
+0x50c4 mouse_set_pka8g2_cpi0
+0x50c6 mouse_set_pka8g2_cpi2
+0x50c8 mouse_set_pka8g2_cpi3
+0x50ca mouse_key
+0x50db mouse_24g_key
+0x50e0 mouse_ghost_key_check
+0x50f0 mouse_matrix_ghost_key_l_bk
+0x50f5 mouse_matrix_ghost_key_l_fw
+0x50fa mouse_ghost_key_lbk_mfw
+0x50fd mouse_ghost_key_lbk_rfw
+0x50ff mouse_ghost_key_lfw_mbk
+0x5102 mouse_ghost_key_lfw_rbk
+0x5104 mouse_ghost_key_mbk_rfw
+0x5105 mouse_ghost_key_rfw
+0x5107 mouse_ghost_key_mfw_rbk
+0x5108 mouse_ghost_key_rbk
+0x5109 mouse_ghost_key_check_next
+0x5113 mouse_ghost_key_check_l_bk
+0x5116 mouse_ghost_key_check_m_bk
+0x5119 mouse_ghost_key_check_r_bk
+0x511c mouse_ghost_key_check_l_fw
+0x511f mouse_ghost_key_check_m_fw
+0x5122 mouse_ghost_key_check_r_fw
+0x5125 mouse_ghost_key_check_bk_fw
+0x5128 mouse_ghost_key_check_lmr
+0x512e mouse_matrix_row_more_than_one_key
+0x5130 mouse_matrix_cow_more_than_one_key
+0x5132 mouse_dpi_another_gpio_check
+0x5135 mouse_dpi_another_gpio_connect_gnd_check
+0x513a mouse_dpi_another_gpio_connect_vin_check
+0x5143 mouse_dpi_another_down_new
+0x5148 mouse_dpi_another_check
+0x514c mouse_dpi_another_state_check
+0x514f mouse_dpi_another_down
+0x5153 mouse_dpi_another_up
+0x5157 mouse_check_key_connect_gnd_new
+0x5161 mouse_check_key_connect_vin_new
+0x516c mouse_another_dpi_key_press
+0x516e mouse_another_dpi_key_release
+0x5170 mouse_check_firekey_gpio
+0x5175 mouse_check_firekey_connect_gnd
+0x517a mouse_firekey_state_store
+0x517d mouse_check_firekey_connect_vin
+0x5183 fire_key_process
+0x5184 fire_key_press
+0x5192 fire_key_process_start
+0x5193 fire_key_down
+0x5195 fire_key_process_release1
+0x5196 fire_key_release
+0x5198 fire_key_process_start2
+0x519a fire_key_process_release2
+0x519c fire_key_process_end
+0x519f firekey_clkn_bt_timer_check
+0x51a4 firekey_clkn_bt_timer_timeout
+0x51a7 mouse_key_check_once
+0x51ac mouse_check_key_gpio
+0x51b9 mouse_check_key_gpio_once
+0x51bc mouse_check_lkey_gpio
+0x51c5 mouse_check_rkey_gpio
+0x51ce mouse_check_mkey_gpio
+0x51d7 mouse_check_bkkey_gpio
+0x51e6 mouse_check_bkkey_gpio_end
+0x51e8 mouse_check_bk_button_connect_gnd
+0x51ec mouse_3io6key_bk_check
+0x51f3 mouse_check_fwkey_gpio
+0x5202 mouse_check_fwkey_gpio_end
+0x5203 mouse_matrix_public_gpio_reset
+0x5205 mouse_check_fw_button_connect_gnd
+0x5209 mouse_3io6key_fw_check
+0x5210 mouse_check_customerkey_gpio
+0x5216 mouse_customer_key_connect_gnd
+0x521b mouse_check_customerkey_state
+0x521e mouse_check_customerkey_gpio_exit
+0x5221 mouse_customer_key_connect_vin
+0x522c mouse_customerkey_press
+0x522f mouse_customerkey_release
+0x5232 mouse_customer_key_need_send
+0x5234 mouse_key_release
+0x5236 mouse_check_key_connect_gnd
+0x523a mouse_check_key_connect_gnd_next
+0x5240 mouse_key_press
+0x5242 mouse_3io6key_check
+0x524e mouse_check_press
+0x5254 mouse_gpio_config_output_high
+0x5256 mouse_gpio_config_output_low
+0x5258 mouse_gpio_config_pu_check
+0x525c mouse_gpio_config_pd_check
+0x5260 mouse_init_sunt
+0x5263 mouse_init_sensor_wakeup
+0x5264 mouse_init_sensor
+0x526c mouse_twspi_reset
+0x526f mouse_read_sensor_id
+0x5276 mouse_init_p32xx_id2_judge
+0x527f mouse_s210x_3205_3t_judge
+0x5283 mouse_s201x_init_param
+0x5285 mouse_mx8650_init_param
+0x528a mouse_8009_init_param
+0x5299 mouse_3205_3t_init_param
+0x52a2 mouse_3204_3l_init_param
+0x52a9 mouse_3212_init_param
+0x52ab mouse_sensor_wr_seq
+0x52b2 mouse_ka8_init_param_check
+0x52c4 mouse_ka8_init_param
+0x52c6 mouse_ka8ul_init_param
+0x52c9 mouse_ka8hd_sensor_judge
+0x52d3 mouse_ka8hd_init_param
+0x52d6 mouse_enable_ka8_sensor_wp
+0x52d9 mouse_p6520_init_param
+0x52dc mouse_init_p3065
+0x52e1 mouse_p3065_init_param
+0x52e3 mouse_p3065xy_init_param
+0x52e5 mouse_ka8g2_id2_judge
+0x52ea mouse_ka8g2_init_param
+0x52ed mouse_ka5857_init_param
+0x52f0 mouse_sensor_reset
+0x52f4 mouse_sensor_reset_end
+0x52f8 mouse_sensor_poweron_init
+0x52fd mouse_sensor_poweron
+0x5301 mouse_sensor_poweron_end
+0x5303 mouse_sensor_powerdown
+0x530a mouse_sensor_powerdown_end
+0x530c mouse_check_sensor_data
+0x5319 mouse_p32xx_sensor_motion
+0x5320 mouse_p32xx_sensor_motion_2
+0x5323 mouse_p32xx_sensor_motion_1
+0x5333 mouse_p3065_judge
+0x5335 mouse_motion32xx_6clk_direction_selection
+0x5337 mouse_motion32xx_9clk_direction_selection
+0x5339 mouse_motion32xx_12clk_direction_selection
+0x533b mouse_motion32xx_3clk_direction_selection
+0x533d mouse_p3212_sensor_motion
+0x5343 mouse_p3212_sensor_motion_1
+0x5346 mouse_p3212_sensor_motion_2
+0x5359 mouse_read_3212sensor_xy_high
+0x535b mouse_pka8g2_sensor_motion
+0x5361 mouse_pka8g2_sensor_motion_1
+0x5365 mouse_p8009_sensor_motion
+0x5370 mouse_motion_6clk_direction_dispose
+0x5374 mouse_motion_12clk_direction_dispose
+0x5378 mouse_motion_9clk_direction_dispose
+0x5380 mouse_motion_3clk_direction_dispose
+0x5382 mouse_sensor_data_swap_places
+0x5387 mouse_clear_sensor_data
+0x538b mouse_clear_sensor_data_by_reset
+0x538d mouse_init_sensor_reset
+0x538e mouse_data_xy_release
+0x5397 mouse_data_extsign
+0x5399 mouse_data_ior
+0x539b mouse_data_extsign_bit3
+0x539e mouse_read_sensor_common
+0x53a4 mouse_sensor_sdio_low
+0x53ab mouse_set_sdio_high
+0x53ad mouse_bluetooth_fast_conn_init
+0x53ae mouse_ble_fast_conn_init
+0x53b3 mouse_buletooth_fast_conn_end
+0x53ba mouse_device1_check_auto_discover
+0x53bc mouse_device2_check_auto_discover
+0x53bd mouse_device_check_auto_discover
+0x53c1 mouse_bluetooth_fast_conn_disable
+0x53c3 mouse_stop_bluetooth_mode
+0x53c6 mouse_disconnect
+0x53cb mouse_check_125hz
+0x53cd mouse_bluetooth_125hz
+0x53d3 mouse_bluetooth_125hz_clear
+0x53d5 mouse_current_mult_update
+0x53da mouse_priority_bb_event
+0x53e9 mouse_le_bb_event_connected
+0x53f1 mouse_le_bb_event_connected_next
+0x53f9 mouse_le_bb_disconnected
+0x5400 mouse_le_bb_disconnected_next
+0x5406 mouse_le_pairing_success
+0x5408 mouse_le_enc_info
+0x5408 mouse_updata_le_param
+0x540a mouse_le_ll_start_encryt
+0x540d mouse_le_ll_reconn_start_encryt
+0x540f mouse_le_ll_enable_start_enc_flag
+0x5411 mouse_le_enable_connect_flag
+0x5415 mouse_le_conn_param_update_rsp_recieved
+0x541e mouse_le_conn_param_lpm_disable
+0x5420 mouse_le_bb_event_connect_complete
+0x5426 mouse_le_write_enable
+0x5428 mouse_le_parse_conn_param_accepted
+0x5434 mouse_le_lpm_mult_reinit
+0x5436 mouse_le_conn_param_lpm_enable
+0x5438 mouse_le
+0x5440 mouse_le_next
+0x5450 mouse_fill_battery_level_le
+0x5455 mouse_check_51cmd_adv
+0x545e mouse_le_check_adv_flag
+0x545f mouse_le_check_adv_flag_loop
+0x5465 mouse_le_adv_data_update
+0x5469 mouse_le_parse_att
+0x5470 mouse_le_parse_att_read_request
+0x5476 mouse_le_send_att_read_response
+0x547a mouse_le_send_att_read_response_check_auth
+0x547f mouse_le_parse_att_write_request
+0x5484 mouse_bb_disconnected
+0x548a mouse_bb_discon_clear_stack
+0x5490 mouse4_0_event_bb_disconn
+0x5494 mouse_bb_event_timer
+0x54ab mouse_bt_discovery_check
+0x54ad mouse_bt_discovery_by_pb_button
+0x54b2 mouse_long_button_bt_discovery
+0x54ba mouse_commbination_dpi_check_timer
+0x54c4 mouse_commbination_key_count_init
+0x54c6 mouse_commbination_dpi_check
+0x54c9 mouse_retransmit_commbination_key_check
+0x54cb mouse_commbination_key_select_device_timer
+0x54d4 p_mouse_check_mouse_key_select_device_set
+0x54d7 mouse_commbination_key_process
+0x54dd mouse_24g_commbination_key_process
+0x54e0 mouse_commbination_key_start
+0x54e6 mouse_commbination_key_up
+0x54ec mouse_commbination_key_down
+0x54f1 mouse_combination_ui_timer
+0x54fa mouse_check_discovery_timeout_timer
+0x54fd mouse_check_discovery_timeout
+0x54ff mouse_check_direct_timeout_timer
+0x5505 mouse_check_direct_timeout
+0x550d mouse_le_enable_att_list_timer
+0x5510 mouse_le_send_smp_security_request_timer
+0x5515 mouse_le_pairing_sm_start_check
+0x551a mouse_le_battery_updata_timer
+0x551f mouse_le_battery_level_updata
+0x5522 mouse_le_enable_att_list
+0x5527 mouse_current_mult_update_timer
+0x552a mouse_current_mult_reinit
+0x552c mouse_long_mult_init
+0x552f mouse_check_no_data_timeout_timer
+0x5532 mouse_check_no_data_timeout
+0x5535 mouse_no_data_timer_init
+0x5538 mouse_store_information_delay_timer
+0x553b mouse_store_device_info_check
+0x553f mouse_bb_event_discovery_btn
+0x5544 mouse_start_discovery
+0x5554 mouse_start_discovery_norandom
+0x5562 mouse_stop_discovery
+0x5565 mouse_stop_le_adv
+0x5569 mouse_store_remote_bdaddr
+0x556f mouse_unplug_clean_bdaddr
+0x5571 mouse_store_device_info_delay
+0x5574 mouse_store_device_info
+0x557a mouse_store_dpi_info_check
+0x5580 mouse_store_eeprom_device_info
+0x5584 mouse_store_eerpom_dpi
+0x5588 mouse_store_flash_device_info
+0x558a mouse_store_otp_device_info
+0x558e mouse_write_otp_app_initflag
+0x5594 mouse_write_otp_device_flag
+0x5596 mouse_write_otp_device_flag_loop
+0x55a0 mouse_device_flag_store
+0x55a6 mouse_devoce_flag_store_end
+0x55aa mouse_device_flag_store_check
+0x55b8 mouse_device_flag_otp_store_judge
+0x55bb mouse_write_otp_device_info
+0x55c0 mouse_write_otp_24g_addr
+0x55c2 mouse_otp_store_24g_addr_loop
+0x55cc mouse_24g_addr_store
+0x55d4 mouse_write_otp_le_device1
+0x55d6 mouse_otp_store_le_addr1_loop
+0x55e0 mouse_le_addr1_store
+0x55e8 mouse_write_otp_le_device2
+0x55ea mouse_otp_store_le_addr2_loop
+0x55f4 mouse_le_addr2_store
+0x55fc mouse_write_otp_le_addr_increase_count_info
+0x5600 mouse_otp_store_le_addr_increase_count_loop
+0x560a mouse_le_addr_increase_count_store
+0x5612 mouse_store_otp_dpi
+0x5616 mouse_otp_store_dpi_loop
+0x5620 mouse_otp_dpi_store
+0x5626 mouse_dpi_store_end
+0x562a mouse_dpi_store_last_check
+0x5638 mouse_dpi_otp_store_judge
+0x563b mouse_device_flag_check
+0x5640 mouse_load_eeprom_info_check
+0x5648 mouse_eeprom_load_recon_info
+0x564c mouse_load_eeprom_dpi
+0x5650 mouse_load_flash_info_check
+0x5654 mouse_information_flash_parameters
+0x565a mouse_spid_flash_release_form_powerdown
+0x565b mouse_spid_write_flash_cmd
+0x5661 mouse_spid_flash_powerdown
+0x5663 mouse_spid_write_flash_cmd_common
+0x566f mouse_flash_erase_sector
+0x5672 mouse_spid_write_flash
+0x567d mouse_flash_power_down
+0x5685 mouse_load_otp_info_check
+0x5689 mouse_app_initflag_load_check
+0x5691 mouse_app_initflag_load
+0x5696 mouse_load_default_dpi
+0x5697 mouse_temp_store_dpi
+0x5699 mouse_otp_load_app_initflag
+0x569d mouse_otp_store_app_initflag
+0x56a1 mouse_read_otp_device_flag
+0x56a3 mouse_read_otp_device_flag_loop
+0x56ad mouse_read_otp_device_flag_common
+0x56b0 mouse_device_flag_load
+0x56b6 mouse_device_flag_load_last
+0x56b7 mouse_device_flag_load_end
+0x56bb mouse_store_device_flag
+0x56bd mouse_device_flag_temp_load
+0x56bf mouse_read_otp_device_info
+0x56c3 mouse_read_otp_le_device1
+0x56c5 mouse_read_otp_le_device2
+0x56c7 mouse_read_otp_le_device1_addr
+0x56c9 mouse_read_otp_le_device1_addr_loop
+0x56d3 mouse_read_otp_le_addr1_common
+0x56d6 mouse_le_addr1_load
+0x56d9 mouse_read_otp_le_device1_locall_addr
+0x56db mouse_read_otp_le_device1_locall_addr_loop
+0x56e5 mouse_read_otp_le_locall_addr1_common
+0x56e8 mouse_le_locall_addr1_load
+0x56ee mouse_device_le_locall_addr1_init
+0x56f0 mouse_read_otp_le_device2_addr
+0x56f2 mouse_read_otp_le_device2_addr_loop
+0x56fc mouse_read_otp_le_addr2_common
+0x56ff mouse_le_addr2_load
+0x5702 mouse_read_otp_le_device2_locall_addr
+0x5704 mouse_read_otp_le_device2_locall_addr_loop
+0x570e mouse_read_otp_le_locall_addr2_common
+0x5711 mouse_le_locall_addr2_load
+0x5717 mouse_device_le_locall_addr2_init
+0x571a mouse_read_otp_24g_addr
+0x571c mouse_read_otp_24g_addr_loop
+0x5726 mouse_read_otp_24g_addr_common
+0x5729 mouse_24g_addr_load
+0x572c mouse_read_otp_le_addr_increase_count_info
+0x572e mouse_read_otp_le_addr_increase_count_loop
+0x5738 mouse_read_otp_le_addr_increase_count_common
+0x573b mouse_le_addr_increase_count_load
+0x573e mouse_read_otp_dpi
+0x5742 mouse_read_otp_dpi_loop
+0x574c mouse_read_otp_dpi_common
+0x574f mouse_dpi_load
+0x5755 mouse_dpi_load_last
+0x5756 mouse_dpi_load_end
+0x5759 mouse_idle
+0x5767 mouse_select_device_check
+0x576b mouse_select_device_by_pb_button
+0x576d mouse_select_device_by_pb_button_check
+0x5776 mouse_retransmit_select_device_by_pb_button
+0x577c mouse_3io6key_pb_button_check_end
+0x577e mouse_select_device_by_pb_button_exit
+0x5781 mouse_pb_button_check
+0x578a mouse_select_device_by_pb_button_end
+0x578d mouse_pb_button_connect_gnd
+0x578f mouse_pb_button_connect_matrix
+0x5797 mouse_select_device_button_up
+0x57a2 mouse_select_device_button_down
+0x57ae mouse_select_device_ghost_check
+0x57b1 mouse_ghost_key_value_check
+0x57b8 mouse_check_select_device_by_switch
+0x57bc mouse_switch_gpio_connect_vin_check
+0x57bf mouse_switch_gpio_connect_gnd_check
+0x57c2 mouse_switch_gpio_connect_vin
+0x57c8 mouse_switch_gpio_connect_gnd
+0x57ce mouse_select_btdevice
+0x57d2 mouse_select_24gdevice
+0x57d5 mouse_select_device_set
+0x57d7 mouse_check_select_device_by_switch_once
+0x57db mouse_switch_gpio_connect_vin_check_once
+0x57de mouse_switch_gpio_connect_gnd_check_once
+0x57e1 mouse_switch_gpio_connect_vin_once
+0x57e7 mouse_switch_gpio_connect_gnd_once
+0x57ed mouse_check_select_24g_device
+0x57f0 mouse_select_device_stop_set
+0x57f2 mouse_check_select_btdevice
+0x57f6 mouse_ready_reconnection_by_button
+0x57fb mouse_store_device_number_before_reset
+0x5801 mouse_soft_reset
+0x5803 mouse_select_device_number
+0x5809 mouse_select_device_count_clean_bt
+0x580b mouse_select_device_number_24g
+0x580f mouse_select_device_count_clean_24g
+0x5811 mouse_store_device_number2eeprom
+0x5815 mouse_bt_button_check
+0x5818 mouse_select_device_enable
+0x581a mouse_select_device_disable
+0x581c mouse_bt_cannel_reconn_enable
+0x581e mouse_bt_cannel_reconn_disable
+0x5820 mouse_bt_discovery_button_down_enable
+0x5822 mouse_bt_discovery_button_down_disable
+0x5824 mouse_adc_read_enable
+0x5826 mouse_24g_set_250hz
+0x5828 mouse_24g_search_dongle_enable
+0x582a mouse_16m_enable
+0x582c mouse_dpi_4level_enable
+0x582e mouse_enable_function_flag
+0x5832 mouse_disable_function_flag
+0x5836 mouse_polling_device
+0x5841 mouse_drawing_optima
+0x5853 mouse_drawing_optima_init
+0x5858 mouse_drawing_optima_modify
+0x586a mouse_data_y_store
+0x586c mouse_drawing_optima_xy_offset_modify
+0x587f mouse_pre_xy_data_judge
+0x5882 mouse_pre_xy_pdata_offset
+0x5885 mouse_xy_data_offset_new
+0x5887 mouse_pre_xy_ndata_offset
+0x588d mouse_current_xy_data_judge
+0x5890 mouse_current_xy_pdata_offset
+0x5894 mouse_current_xy_ndata_offset
+0x589a mouse_pre_xy_get_0_4_times
+0x589d mouse_current_xy_get_0_6_times
+0x589f mouse_div_end
+0x58a2 mouse_drawing_optima_data_x
+0x58aa mouse_drawing_optima_data_y
+0x58b2 mouse_drawing_optima_data
+0x58b8 mouse_data_store_pre
+0x58bc mouse_data_sum_overflow
+0x58c0 mouse_data_sum_overflow_p
+0x58c3 mouse_data_sum_n
+0x58c9 mouse_data_set_direction
+0x58cc mouse_data_zero
+0x58ce mouse_pdata_get_half
+0x58d0 mouse_pdata_get_new_value
+0x58d4 mouse_pdata_invert
+0x58d5 mouse_rega_in_out
+0x58d8 mouse_disable_asm
+0x58da mouse_enable_asm
+0x58dc mouse_pdata_greater_than_check
+0x58e1 mouse_data_less_than_check
+0x58e6 mouse_data_abs_check
+0x58ed mouse_data_abs
+0x58f1 mouse_data_abs_store
+0x58f3 mouse_data_reversal
+0x58f6 mouse_24g_long_sleep_param_update_timer
+0x58f9 mouse_24g_long_sleep_normal_param
+0x58fc mouse_24g_long_sleep_set
+0x5901 mouse_24g_long_sleep_set_80ms
+0x5902 mouse_24g_long_sleep_set_end
+0x5904 mouse_24g_long_sleep_set_30ms
+0x5906 mouse_24g_long_sleep_set_50ms
+0x5908 mouse_24g_long_sleep_set_100ms
+0x590a mouse_24g_hibernate_set
+0x5916 mouse_wakeup_24g
+0x591b mouse_wakeup_24g_from_long_sleep
+0x591f mouse_wheel_gpio_init
+0x5923 mouse_24g_transmit_start
+0x5927 mouse_24g_fast_conn_mode_check
+0x592b mouse_soft_agc_disable
+0x592d mouse_soft_agc_enable
+0x5930 device_store_normal_tx_power
+0x5933 device_fetch_normal_tx_power
+0x5936 mouse_24g_stop
+0x593a mouse_24g_start_mode
+0x5948 mouse_24g_mode_setup_error
+0x594b mouse_24g_first_start_auto_pair_mode
+0x594d mouse_24g_reconn_general_dongle
+0x5952 mouse_24g_start_auto_pair
+0x5956 mouse_24g_first_start_reconn
+0x5959 mouse_24g_first_bluetooth_reconnect
+0x595d mouse_24g_first_bb_event_reconn_timeout
+0x5960 mouse_24g_first_store_reconn_info
+0x5965 mouse_24g_start_pair_mode
+0x596c mouse_24g_pair_mode_check
+0x5971 mouse_24g_attempt_fail
+0x597a mouse_24g_attempt_fail_enter_hibernate
+0x5980 mouse_24g_fast_conn_attempt_fail
+0x5988 mouse_24g_reconn_dongle_start
+0x598c mouse_24g_auto_pair_attempt_fail
+0x5991 mouse_reconn_dongle_attempt_fail
+0x5997 mouse_24g_attempt_success
+0x59a8 mouse_24g_pairing_complete
+0x59ba mouse_24g_short_sleep_clear_wake
+0x59bc mouse_24g_package_data
+0x59c7 mouse_24g_mouse_package_data
+0x59d6 mouse_24g_mouse_package_data_now
+0x59dc mouse_24g_keyboard_package_data
+0x59df mouse_g24_retransmit
+0x59e3 mouse_g24_retransmit_100ms_timer
+0x59ea mouse_g24_retransmit_100ms_timer_init
+0x59ed mouse_dpi_check_once
+0x59f0 mouse_24g_before_lpm_sleep
+0x59f2 mouse_logo_led_on_timer
+0x59fc mouse_logo_led_off
+0x59fe mouse_logo_led_on
+0x5a00 mouse_dpi_led_blink_delay_timer
+0x5a03 mouse_dpi_led_blink_init
+0x5a06 mouse_dpi_led_blink_set_3_level
+0x5a0b mouse_dpi_led_blink_set_4_level
+0x5a11 mouse_dpi_level_1_blink
+0x5a13 mouse_dpi_level_2_blink
+0x5a15 mouse_dpi_level_3_blink
+0x5a17 mouse_dpi_level_4_blink
+0x5a19 mouse_multi_dpi_led_blink_enable
+0x5a1e mouse_dpi_led_blink_delay
+0x5a24 mouse_check_dpi_blink
+0x5a29 mouse_low_voltage_led_timer
+0x5a32 mouse_low_led_blink_timer
+0x5a3b mouse_low_voltage_led_on_judge
+0x5a3d mouse_low_voltage_led_on
+0x5a3f mouse_low_led_timer_count_clean
+0x5a43 mouse_low_voltage_led_off_judge
+0x5a45 mouse_low_voltage_led_off
+0x5a47 mouse_low_led_blink_count_init_judge
+0x5a4b mouse_device_multi_led_parm_init
+0x5a52 mouse_multi_low_led_blink_count_init
+0x5a55 mouse_multi_led_blink_timer_init
+0x5a59 mouse_multi_dpi_led_blink_timer_init
+0x5a5a mouse_store_multi_led_blink_timer
+0x5a5c mouse_device_24g_led_blink_timer_init
+0x5a5e mouse_device_le_discovery_led_blink_timer_init
+0x5a60 mouse_device_le_reconn_led_blink_timer_init
+0x5a62 mouse_device_poweron_led_config
+0x5a66 mouse_multi_led_enable
+0x5a69 mouse_device_24g_pair_led_config
+0x5a70 mouse_device_le_reconn_led_config
+0x5a78 mouse_device_led_blink_count_init
+0x5a7a mouse_device_discovery_led_config
+0x5a7c mouse_multi_led_blink_enable_init
+0x5a81 mouse_led_multi_timer
+0x5a85 mouse_device_multi_led_type_on
+0x5a8a mouse_device_poweron_led_off
+0x5a8e mouse_multi_led_type_blink
+0x5a93 mouse_device_led_blink_judge
+0x5a96 mouse_device_led_blink_limit
+0x5a98 mouse_multi_led_type_blink_next
+0x5a9b mouse_multi_led_type_blink_start
+0x5a9f mouse_multi_led_blink
+0x5aa3 mouse_multi_led_blink_count_decrease
+0x5aa7 mouse_multi_led_on_judge
+0x5aa9 mouse_device_multi_led_on
+0x5aaa mouse_device_led_on
+0x5ab0 mouse_device_24g_led_on
+0x5ab2 mouse_device_bt1_led_on
+0x5ab4 mouse_device_bt2_led_on
+0x5ab5 mouse_led_on
+0x5ab6 mouse_led_off
+0x5ab7 mouse_multi_led_off_judge
+0x5ab9 mouse_multi_led_off_judge_next
+0x5abb mouse_device_multi_led_off
+0x5abc mouse_device_led_off
+0x5ac2 mouse_device_24g_led_off
+0x5ac6 mouse_device_bt1_led_off
+0x5aca mouse_device_bt2_led_off
+0x5ace mouse_device_multi_led_all_off
+0x5ad3 mouse_multi_dpi_led_off_judge
+0x5ad6 mouse_multi_dpi_led_off
+0x5ad8 mouse_multi_dpi_led_on_judge
+0x5adb mouse_multi_dpi_led_on
+0x5add mouse_low_voltage_led_no_enter_lpm
+0x5ae3 mouse_low_voltage_led_no_enter_lpm_next
+0x5ae6 g24_transmit_by_interrupt_exit_check
+0x5ae9 mouse_lpm_mode_clear
+0x5aec mouse_store_signal_rssi
+0x5aee mouse_le_transmit
+0x5af0 mouse_set_lpm_mult
+0x5af2 mouse_le_set_lpm_mult
+0x5af7 mouse_24g_long_sleep
+0x5b02 mouse_24g_short_sleep
+0x5b0f mouse_24g_short_sleep_last_miss
+0x5b14 mouse_24g_short_sleep_notify
+0x5b1e mouse_24g_short_sleep2
+0x5b1f mouse_24g_short_sleep3
+0x5b22 mouse_24g_short_sleep_default
+0x5b25 mouse_24g_short_sleep_long
+0x5b29 mouse_24g_miss_temp_clear
+0x5b2c mouse_24g_short_sleep_2
+0x5b2e mouse_24g_sub_miss_temp
+0x5b33 mouse_24g_transmit_callback
+0x5b35 mouse_24g_send_time_check
+0x5b55 mouse_24g_send_time_check_average
+0x5b6d mouse_24g_short_sleep_storet
+0x5b6f mouse_24g_send_time_check_average_late
+0x5b79 mouse_24g_send_time_check_average_min
+0x5b7b mouse_24g_send_timer_first
+0x5b7f mouse_24g_send_time_long_wake
+0x5b83 mouse_usb_check_enable
+0x5b87 mouse_usb_isr
+0x5b8b mouse_usb_interface_check
+0x5b8f mouse_usb_mode_enable
+0x5ba4 mouse_usb_mode_disable
+0x5bb0 mouse_usb_mode
+0x5bba mouse_push_data_to_usb
+0x5bc2 mouse_usb_timer_check
+0x5bd1 mouse_usb_timer_timeout
+0x5bd4 mouse_usb_timer_init
+0x5bd7 mouse_usb_config_param
+0x5bdb mouse_usb_device_name_config
+0x5be1 mouse_usb_config_kb_check
+0x5be6 mouse_usb_config_param_setup
+0x5be8 mouse_usb_hid_icon_config
+0x5bea mouse_usb_report_rate_set
+0x5bef mouse_usb_report_rate_set_125hz
+0x5bf1 mouse_usb_report_rate_set_250hz
+0x5bf3 mouse_usb_report_rate_set_500hz
+0x5bf5 mouse_usb_report_rate_set_1000hz
+0x5bf7 rec_cb_function
+0x5bfa rec_process_idle
+0x5bfc rec_ui_timer_check
+0x5c03 rec_ui_timer_check_loop
+0x5c0c rec_ui_timer_init
+0x5c0e rec_ui_timer_check_end
+0x5c13 rec_ui_timer_check_send_evt
+0x5c14 rec_evt_timer_loop
+0x5c1b rec_tscan
+0x5c21 rec_tscan_gnd_process
+0x5c26 rec_tscan_process
+0x5c2c rec_tscan_col_state_init
+0x5c32 rec_tscan_row_state_init
+0x5c3a rec_tscan_row_gpio_config_input_pull_up
+0x5c3f rec_tscan_get_row_state
+0x5c47 rec_tscan_get_row_state_loop
+0x5c5c rec_tscan_record_key_coord
+0x5c6a rec_tscan_combin_key_num_output
+0x5c6c rec_tscan_combin_key_num_loop
+0x5c72 rec_tscan_output_combin_key_num
+0x5c77 rec_tscan_pull_up_current_col_gpio
+0x5c7a rec_tscan_col_state_next_gpio_check
+0x5c82 rec_tscan_key_down
+0x5c8e rec_tscan_key_up
+0x5c96 rec_tscan_key_up_send
+0x5c99 rec_tscan_key_up_config
+0x5c9c rec_tscan_key_num_output
+0x5c9d rec_tscan_record_init
+0x5ca0 rec_tscan_key_value_clear
+0x5ca3 rec_tscan_get_gndkey_state
+0x5ca9 rec_tscan_get_gndkey_loop
+0x5cbb rec_tscan_gndkey_down
+0x5cc5 rec_tscan_gndkey_up
+0x5ccd rec_tscan_gndkey_up_send
+0x5ccf rec_tscan_gndkey_num_output
+0x5cd0 rec_tscan_gndkey_record_param_init
+0x5cd2 rec_tscan_gndkey_num_check
+0x5cd5 rec_tscan_gndkey_num_loop
+0x5cdc rec_tscan_store_gndkey_press_state
+0x5cde rec_tscan_store_gndkey_release_state
+0x5ce0 rec_gpio_bit_first_set
+0x5ce2 rec_gpio_bit_second_set
+0x5ce4 rec_tscan_debounce
+0x5cf3 rec_gpio_weak_pullup
+0x5cf6 rec_gpio_set_lpm_weak_pullup
+0x5d05 rec_gpio_set_0x10_regc
+0x5d07 rec_gpio_set_input
+0x5d0a rec_gpio_wakeup_disable
+0x5d0b rec_save_regc
+0x5d0d rec_rescue_regc
+0x5d10 rec_save_rega
+0x5d12 rec_rescue_rega
+0x5d15 rec_save_reg
+0x5d18 rec_rescue_reg
+0x5d1b rec_tscan_gpio_set_before_lpm
+0x5d1e rec_gpio_wakeup_enable
+0x5d21 rec_tscan_gpio_config_high_impedance
+0x5d24 rec_tscan_gpio_config_tri_angle_wakeup
+0x5d28 rec_gpio_config_high_impedance
+0x5d29 rec_high_impedance_loop
+0x5d2e rec_gpio_wakeup_config
+0x5d2f rec_gpio_wakeup_config_loop
+0x5d3a rec_gpio_wakeup_addr_search
+0x5d3f rec_tscan_output_gndkey_num
+0x5d43 rec_tscan_output_key_map
+0x5d4c rec_tscan_key_num_check
+0x5d4f rec_tscan_key_num_loop
+0x5d56 rec_tscan_output_key_num
+0x5d59 rec_push_buffer_in_queue
+0x5d5c rec_push_buffer_in_queue_end
+0x5d5e rec_puch_buffer_in_queue_check
+0x5d61 rec_key_type_select
+0x5d68 rec_set_key_type_consumer
+0x5d6a rec_set_key_type_mouse
+0x5d6c rec_set_key_type_keypad
+0x5d6e rec_set_key_type_nec
+0x5d70 rec_tscan_key_send
+0x5d76 rec_tscan_send_keypad
+0x5d7e rec_send_nec_keypad
+0x5d88 rec_le_send_consumer
+0x5d94 rec_le_send_data
+0x5d9c rec_le_send_mouse
+0x5da9 rec_le_send_keyboard
+0x5db1 rec_le_fill_standard_key_data
+0x5db7 rec_led_start_on
+0x5db9 rec_led_start_off
+0x5dbb rec_nec_send_userdata_6122
+0x5dcd rec_nec_init_6122
+0x5dd3 rec_pwm_duty_cycle_set
+0x5dd9 rec_nec_send_boot_6122
+0x5ddc rec_nec_empty
+0x5dde rec_nec_carrier
+0x5de0 rec_nec_delay_us
+0x5de1 rec_nec_delay_us_loop
+0x5de5 rec_nec_send_byte_6122
+0x5de6 rec_nec_send_byte_loop_6122
+0x5dec rec_nec_send_bit_6122
+0x5def rec_nec_send_bit0_6122
+0x5df2 rec_nec_send_bit1_6122
+0x5df5 rec_nec_send_bit
+0x5df9 rec_nec_send_repeat_6122
+0x5e01 rec_nec_6122_start
+0x5e05 rec_nec_disable
+0x5e06 rec_nec_6122_stop
+0x5e07 rec_nec_io_disable
+0x5e08 rec_gpio_config_output_low
+0x5e0a rec_gpio_config_output_high
+0x5e0c rec_nec_send_repeat_6122_timer_init
+0x5e0d rec_nec_timer_set
+0x5e10 rec_nec_send_repeat_6122_timer_clear
+0x5e12 rec_nec_rx_num
+0x5e17 rec_nec_rptr_big_wptr
+0x5e1d rec_nec_receive_data
+0x5e28 rec_nec_receive_one_data
+0x5e33 rec_nec_receive_two_data
+0x5e46 rec_nec_receive_three_data
+0x5e5b rec_nec_rptr_reset
+0x5e5f rec_nec_receiver_init_wtr
+0x5e63 rec_nec_carry_time
+0x5e6c rec_nec_carry_store
+0x5e77 rec_nec_receive_run_time
+0x5e7b rec_nec_receive_timeout
+0x5e7e rec_nec_update_timeout
+0x5e83 rec_nec_learn_analysis
+0x5e8d rec_audio_adpcm_encode
+0x5e92 rec_adpcm_encode
+0x5e9d rec_adpcm_encode_loop
+0x5ed7 rec_adpcm_encode_cal_delta
+0x5eda rec_adpcm_encode_store_sign1
+0x5edc rec_adpcm_encode_cal_smaller_zero
+0x5ede rec_adpcm_set_diff_by_sign
+0x5ee1 rec_adpcm_diff_negation
+0x5ee5 rec_check_diff_big_step1
+0x5eea rec_check_diff_big_common
+0x5eee rec_check_diff_big_common_next
+0x5ef3 rec_check_diff_big_step2
+0x5efb rec_check_diff_big_step3
+0x5f03 rec_check_sign_deal1
+0x5f05 rec_valpred_sub_vpdiff
+0x5f08 rec_valpred1_store
+0x5f0a rec_valpred_add_vpdiff
+0x5f0e rec_adpcm_check_valpred_more_32767
+0x5f12 rec_adpcm_check_valpred_less_f32767
+0x5f17 rec_adpcm_valpred_more_32767
+0x5f19 rec_adpcm_valpred_less_f32767
+0x5f1b rec_adpcm_check_index_less_0
+0x5f20 rec_adpcm_check_index_big_88
+0x5f25 rec_adpcm_set_0_index
+0x5f26 rec_adpcm_store_index1
+0x5f28 rec_adpcm_set_88_index
+0x5f2a rec_adpcm_check_bufferstep
+0x5f2c rec_adpcm_bufferstep_neque_0
+0x5f30 rec_adpcm_bufferstep_eque_0
+0x5f35 rec_adpcm_bufferstep_increase_out_ptr1
+0x5f3a rec_adpcm_set_bufferstep_to_outp
+0x5f3c rec_adpcm_get_val_from_inp
+0x5f43 rec_int16_2_int32
+0x5f45 rec_int16_2_int32_less_0
+0x5f47 rec_calca_ixor
+0x5f49 rec_char_2_int32
+0x5f4b rec_char_2_int32_less_0
+0x5f4e rec_voice_notify_apk
+0x5f50 rec_le_notify_data
+0x5f54 rec_voice_start_apk
+0x5f55 rec_voice_notify_apk_data
+0x5f58 rec_voice_end_apk
+0x5f5a rec_voice_notify_box
+0x5f5d rec_voice_start_box
+0x5f5e rec_voice_notify_box_data
+0x5f62 rec_voice_end_box
+0x5f64 rec_ota_process
+0x5f70 rec_ota_init
+0x5f77 rec_ota_parse_protocol_version_req
+0x5f7f rec_ota_parse_buck_size_req
+0x5f86 rec_ota_parse_start_req
+0x5f89 rec_ota_tx_flashmode_not_support
+0x5f8e rec_ota_tx_start_req_success
+0x5f92 rec_ota_parse_start_req_update_normal
+0x5f9e rec_erase_num_sector_flash
+0x5f9f rec_erase_num_sector_flash_loop
+0x5fa8 rec_ota_set_flash_start_addr
+0x5fb2 rec_ota_parse_data_write_req
+0x5fb2 rec_ota_parse_data_write_data_store
+0x5fbf rec_ota_prep_data_write_rsp
+0x5fc4 rec_ota_tx_notify_success
+0x5fc5 rec_ota_tx_notify_common
+0x5fcd rec_ota_parse_end_req
+0x5fe5 rec_ota_tx_end_req_return
+0x5fee rec_ota_tx_length_error
+0x5ff0 rec_ota_result_error_write_flash
+0x5ff2 rec_ota_data2flash_remain
+0x6001 rec_ota_queue_count_256
+0x6005 rec_ota_sum_page
+0x6007 rec_ota_sum_all
+0x6013 rec_ota_sum_len
+0x6017 rec_ota_sum
+0x6019 rec_ota_sum_loop
+0x601d rec_ota_data_from_flash_len
+0x6026 rec_ota_data_from_flash
+0x602b rec_ota_data_from_flash_page
+0x602f rec_ota_polling
+0x6032 rec_ota_data2flash_page
+0x603d rec_ota_increase_flash_offset_addr
+0x6041 rec_ota_data2flash
+0x6046 rec_queue_ota_init
+0x6048 rec_queue_init_config
+0x6052 rec_queue_ota_push
+0x6060 rec_queue_ota_data_loss
+0x6061 rec_queue_ota_pop
+0x6068 rec_out_queue
+0x606b rec_out_queue_loop
+0x6070 rec_ota_updata_head
+0x6073 rec_ota_write_head_check
+0x6077 rec_ota_write_head_a
+0x6079 rec_ota_read_head
+0x607d rec_ota_write_head_b
+0x607e rec_ota_write_head
+0x6085 rec_spid_flash_erase_page
+0x608e rec_spi_wait_flash
+0x6097 rec_save_contr
+0x6099 rec_rescue_contr
+0x609b rec_save_contw
+0x609d rec_rescue_contw
+0x609f rec_save_loopcnt_rega
+0x60a1 rec_rescue_rega_loopcnt
+0x60a2 rec_rescue_loopcnt
+0x60a5 rec_save_loopcnt
+0x60a7 rec_save_temp
+0x60a9 rec_rescue_temp
+0x60ac rec_queue_enter_config
+0x60b6 rec_queue_out_config
+0x60c0 rec_enter_queue
+0x60c0 rec_enter_queue_loop
+0x60c8 shutter_init
+0x60d7 shutter_power_switch
+0x60dc shutter_common_init
+0x60ea shutter_hart_swtich_power_on
+0x60ed shutter_le_scale_lpm_lock
+0x60f3 shutter_process_bb_event
+0x60fc ble_shutter_process_baseband_connect
+0x6100 ble_shutter_process_baseband_disconnect
+0x6103 ble_shutter_process_reconnect_complete
+0x610b ble_shutter_process_parse_connect_parameter_update_response
+0x6111 shutter_process_soft_swtich_button_down
+0x6117 shutter_store_currenct_led_state
+0x611c shutter_process_soft_swtich_button_up
+0x6121 shutter_load_currenct_led_state
+0x612a shutter_le_bb_event_timer
+0x612d shutter_check_sleep_timer
+0x6130 shutter_sleep_timeout
+0x6134 shutter_check_power_off_timer
+0x6137 shutter_check_power_off_timeout
+0x613e ble_shutter_reconn_timer
+0x6143 shutter_process_idle
+0x6145 shutter_process_lpm_before
+0x6147 shutter_le_before_hibernate
+0x614a shutter_stop_bluetooth_discovery
+0x614a ble_shutter_stop_bluetooth_discovery
+0x614e shutter_start_bluetooth_discovery
+0x6150 ble_shutter_start_discovery
+0x615d shutter_soft_swtich_power_on
+0x615d shutter_start_reconnect
+0x615f ble_shutter_start_reconnect
+0x616b shutter_disconnect_current_connection
+0x616e shutter_check_data_enable
+0x6172 shutter_check_ble_data_enable
+0x6175 shutter_check_bluetooth_conn
+0x6179 shutter_change_bluetooth_status_bt_disconn
+0x6179 ble_shutter_change_bluetooth_status_bt_disconn
+0x617a shutter_check_send_data
+0x6182 shutter_key_change
+0x6186 shutter_key_press
+0x6189 shutter_key_release
+0x618b push_queue_press_or_release
+0x618e push_buffer_in_queue
+0x6193 shutter_send_data_to_master
+0x6196 pop_queue_to_ble_data
+0x619f queue_push_one_byte
+0x61a2 queue_pop_one_byte
+0x61a7 ble_shutter_receive_data
+0x61aa shutter_init_param
+0x61b3 shutter_load_buffer_config_form_datarom
+0x61b7 shutter_soft_swtich_power_off
+0x61bb shutter_wait_power_off
+0x61be ui_soft_swtich_init
+0x61c3 ui_soft_switch_first_power_on
+0x61c7 ui_soft_swtich_init_next
+0x61ca ui_soft_swtich_init_power_on_time
+0x61cf ui_soft_switch_botton_up
+0x61d3 ui_soft_switch_botton_long_press
+0x61d6 ui_soft_switch_power_on
+0x61de ui_soft_switch_power_off
+0x61e4 shutter_ble_adv_interval_set
+0x61e8 le_send_notify_from_list
+0x61f0 shutter_le_uuid_table_conf
+0x61f3 shutter_default_init
+0x6259 shutter_dy_6_key_conf
+0x625f shutter_dy_7_key_conf
+0x6265 shutter_dy_8_key_conf
+0x626b shutter_dy_key_conf
+0x6270 shutter_dy_adv_conf
+0x6283 shutter_dy_le_uuid_table_conf
+0x6286 shutter_dy_init
+0x62a9 shutter_dy_process_lpm_before
+0x62ab shutter_dy_le_before_hibernate
+0x62af dy_set_key_gpio_before_hiernate
+0x62b4 dy_set_key_gpio_loop
+0x62bc dy_set_key_gpio_loop_end
+0x62bf dy_shutter_gpio_config_input_pd
+0x62c1 shutter_dy_process_idle
+0x62cb shutter_dy_iphone_every_move_max_set
+0x62d8 shutter_dy_shutter_send_data_to_master
+0x62dd shutter_dy_pop_queue_to_ble_data
+0x62e9 shutter_dy_pop_queue_to_ble_data2
+0x62f2 shutter_dy_le_bb_event_timer
+0x62f9 shutter_dy_iphone_move_mid_timer
+0x62fc shutter_dy_iphone_move_mid_timeout
+0x6300 shutter_dy_iphone_move_mid
+0x630a shutter_dy_iphone_up_mid
+0x630c shutter_dy_iphone_like_mid
+0x630e shutter_dy_clear_key_state_timer
+0x6311 shutter_dy_clear_key_state_timeout
+0x6314 shutter_dy_check_power_off_timer
+0x6317 shutter_dy_check_power_off_timeout
+0x631a shutter_dy_process_bb_event
+0x6322 ble_dy_shutter_process_parse_connect_parameter_update_response
+0x632b ble_parameter_updata_response_ios
+0x632e ble_shutter_dy_pairing_success
+0x6337 ble_shutter_dy_process_baseband_disconnect
+0x633c ble_shutter_dy_process_baseband_connect
+0x6340 shutter_dy_check_send_data
+0x6348 shutter_dy_over_clear
+0x634a shutter_dy_key_value_filter
+0x634d shutter_dy_key_change
+0x6351 shutter_dy_key_press
+0x6354 shutter_dy_key_press_next
+0x6364 shutter_dy_page_set
+0x6367 shutter_dy_move_set
+0x636c shutter_dy_key_move_to_specify_location
+0x636e shutter_dy_iphone_check_move_mid
+0x6374 shutter_dy_key_press_clk
+0x637f shutter_dy_shutter_key_release
+0x6382 shutter_dy_shutter_key_release_time
+0x6393 shutter_dy_key_release_led
+0x6396 shutter_dy_push_queue_release
+0x6399 shutter_dy_push_queue_release1
+0x639c shutter_dy_push_queue_release1_next
+0x63a2 shutter_dy_push_queue_press_or_release
+0x63a5 shutter_dy_move_mode_queue_release
+0x63a9 shutter_dy_jude_queue_size
+0x63ae shutter_dy_push_queue_long_release
+0x63b4 shutter_clear_dy_key_state
+0x63b7 shutter_dy_keyscan_key_process
+0x63c0 shutter_dy_keyscan_key_check_release_loop
+0x63d4 shutter_dy_keyscan_key_check_long_press
+0x63eb shutter_dy_key_long_press_set_key_normal
+0x63ee shutter_dy_key_long_press_set_move_trigger
+0x63f6 shutter_dy_move_mode_disable
+0x63f8 shutter_dy_long_press_android_or_ios
+0x63fd shutter_dy_keyscan_key_check_release
+0x6407 shutter_dy_keyscan_key_process_next
+0x6418 shutter_dy_skip_check_combine_key
+0x641e shutter_dy_single_key_led
+0x6425 shutter_dy_check_combine_key
+0x6426 shutter_dy_check_combine_key_loop
+0x6431 shutter_dy_check_combine_key_parse
+0x6439 shutter_dy_push_buffer_in_queue
+0x643d shutter_dy_move_to_specify_location
+0x6444 shutter_dy_move_ios_to_specify_location
+0x6449 shutter_dy_move_down_left_corner_count_set
+0x6453 shutter_dy_move_down_left_corner
+0x6457 shutter_dy_move_down_left_corner_loop
+0x645e shutter_dy_move_x_max
+0x6461 shutter_dy_move_x_max_number
+0x6468 shutter_dy_move_y_max
+0x646b shutter_dy_move_y_max_number
+0x6472 shutter_dy_check_combine_key_release
+0x647d shutter_dy_combine_key_enableuser
+0x6480 shutter_dy_check_combine_key_release_all
+0x648c shutter_dy_check_move_data
+0x6491 shutter_dy_check_move_data_single_key
+0x6497 shutter_dy_check_move_data_combine_key
+0x649e shutter_dy_get_move_data
+0x64a8 shutter_dy_get_move_data_iphone
+0x64b5 shutter_dy_move_x_empty_check
+0x64bb shutter_dy_every_move_size_set
+0x64c0 shutter_dy_move_left
+0x64c6 shutter_dy_move_store_x
+0x64c7 shutter_dy_move_data_store
+0x64d2 shutter_dy_get_ios_move_data
+0x64da shutter_dy_move_ios_release_data
+0x64e2 shutter_dy_move_android_data_store
+0x64e9 shutter_dy_move_android_release_data
+0x64f1 shutter_dy_data_android_xy_data
+0x64f9 shutter_dy_move_x_check_max
+0x6504 shutter_dy_clear_move_x
+0x6507 shutter_dy_move_right
+0x650b shutter_dy_move_right_next
+0x650f shutter_dy_move_up
+0x6511 shutter_dy_move_y_check_max
+0x6523 shutter_dy_dnroid_up_check_y
+0x652a shutter_dy_clear_move_y
+0x652b shutter_dy_android_move_y_empty_check
+0x652d shutter_dy_move_y_empty_check
+0x6537 shutter_dy_move_store_y
+0x6539 shutter_dy_move_down
+0x653b shutter_dy_move_down_next
+0x6542 shutter_dy_move_android_down
+0x6548 ble_shutter_dy_receive_data
+0x654b shutter_dy_le_find_service_hand_by_uuid
+0x6558 shutter_dy_le_parse_att
+0x6561 shutter_dy_le_parse_att_read_blob_request
+0x656c shutter_dy_le_parse_att_read_blob_request_ios
+0x656d shutter_dy_le_parse_att_read_blob_request2
+0x6577 shutter_dy_le_parse_att_read_request
+0x657b shutter_dy_le_send_att_read_response_check_auth
+0x6581 shutter_dy_le_send_att_read_response
+0x6587 shutter_dy_le_parse_att_find_by_type_value_rsp
+0x6587 shutter_dy_le_remote_iphone
+0x65a1 shutter_dy_iphone_move_initial_set
+0x65a8 shutter_dy_le_parse_error_rsp
+0x65ac shutter_dy_remote_not_iphone
+0x65b1 shutter_dy_not_iphone_read_conf
+0x65b3 shutter_dy_check_iphone
+0x65b5 shutter_dy_le_get_press_ptr
+0x65bb shutter_dy_le_get_release_ptr
+0x65bb shutter_dy_le_get_release_ptr_set
+0x65c3 shutter_dy_le_get_release_ptr_volume
+0x65ca shutter_dy_le_get_release_ptr_set_volume_dec
+0x65cc shutter_dy_le_get_release_ptr_set_volume_inc
+0x65ce shutter_dy_le_get_vol_inc_ptr
+0x65d3 shutter_dy_le_get_vol_dec_ptr
+0x65d8 shutter_dy_long_key_function
+0x65dd shutter_dy_long_key_volume_timer
+0x65e0 shutter_dy_long_key_volume_timeout
+0x65e4 shutter_dy_loop_send_volume_inc_page
+0x65e8 shutter_dy_loop_send_volume_dec_page
+0x65ec shutter_dy_clear_volume_timer
+0x65ef shutter_dy_link_key_loop_timer
+0x65f2 shutter_dy_link_key_loop_timeout
+0x65f5 shutter_dy_link_data_android_or_ios
+0x65fa shutter_dy_link_key_long_press
+0x65ff shutter_dy_clear_link_key_timer
+0x6602 shutter_dy_jude_clear_move_config
+0x6606 shutter_dy_clear_move_config
+0x6609 shutter_dy_write_otp_convert_data
+0x660d shutter_dy_read_otp_convert_data
+0x6611 shutter_dy_store_ios_config_data
+0x6623 shutter_dy_store_android_config
+0x662a shutter_dy_get_ios_config
+0x663c shutter_dy_get_android_config
+0x6641 shutter_dy_store_move_config_info
+0x6642 shutter_dy_load_move_config_info
+0x6643 shutter_dy_shutter_uart_config_loop
+0x664e shutter_dy_shutter_get_first_read_addr
+0x6652 shutter_dy_shutter_next_read_addr
+0x6656 shutter_dy_shutter_last_read_addr
+0x665a shutter_dy_shutter_read_ios_android_addr
+0x6665 shutter_dy_update_read_check_addr
+0x6669 shutter_dy_campare_otp_data
+0x6679 shutter_dy_set_shutter_valid_data_flag
+0x667d shutter_dy_shutter_judge_ios_or_android
+0x6689 shutter_dy_shutter_not_find_ios_or_android
+0x668e shutter_dy_shutter_android_save_init_loaction
+0x6693 shutter_dy_shutter_ios_save_init_loaction
+0x66a2 shutter_dy_clear_temp_count
+0x66a4 shutter_dy_campare_effective_addr_read_otp
+0x66bd shutter_dy_campare_effective_addr_write_otp
+0x66d0 shutter_dy_shutter_read_move_config_from_otp_addr
+0x66d5 shutter_dy_shutter_write_move_config_to_otp_addr
+0x66d9 shutter_dy_shutter_1s_timer
+0x66dc rf_debug_rx_gpio_low
+0x66dd rf_debug_gpio_low
+0x66df rf_debug_rx_on_line
+0x66df rf_debug_rx_gpio_high
+0x66e0 rf_debug_gpio_high
+0x66e2 rf_debug_rx_gpio_h_l_h
+0x66e3 rf_debug_rx_gpio_l_h
+0x66e5 rf_debug_rx_gpio_l_h_l
+0x66e5 rf_debug_shutdown_radio_line
+0x66e6 rf_debug_rx_crc_line
+0x66e7 rf_debug_rx_sync_line
+0x66e8 rf_debug_rx_crc_fail_line
+0x66ea rf_debug_rx_crc_error_line
+0x66ea rf_debug_rx_sync_timeout_line
+0x66eb rf_debug_tx_off_line
+0x66eb rf_debug_tx_gpio_low
+0x66ed rf_debug_tx_on_line
+0x66ed rf_debug_tx_gpio_high
+0x66ef rf_debug_tx_gpio_l_h_l
+0x66f2 hci_init
+0x66fb hci_process_loop
+0x66fd hci_init_clksel_xtal
+0x66ff hci_init_uart_default_config
+0x6703 hci_init_uart_default_config_tx
+0x6707 hci_init_uart_default_config_rx
+0x670b hci_init_uart_default_config_rts
+0x670f hci_init_uart_default_config_cts
+0x6713 hci_init_uart_config
+0x672f hci_init_pwm_default_config
+0x6733 hci_init_pwm
+0x673e hci_process_check_uart_rx
+0x6746 hci_parse_packet_cmd
+0x6754 hci_parse_complete_packet
+0x6757 hci_parse_packet_cmd_ogf_vendorspecific_debug
+0x6762 phci_grp_vendor_chipid
+0x6767 phci_grp_vendor_baud
+0x676a phci_grp_vendor_patch_common
+0x6775 phci_grp_vendor_patch
+0x6776 phci_grp_vendor_patch_loop
+0x677a phci_grp_vendor_patch_check_sum
+0x677f phci_grp_vendor_done
+0x6782 phci_grp_vendor_done_loop
+0x678e phci_grp_vendor_patch_bad
+0x6790 phci_grp_vendor_mem
+0x6796 phci_grp_vendor_flow_control
+0x679a hci_normal_reply
+0x679b hci_send_event_command_complete_error_command_nuknown
+0x679d hci_send_event_command_complete_error_command_disallowed
+0x679f hci_send_event_command_complete_without_payload
+0x67a2 hci_send_event_command_complete
+0x67ab hci_prepare_send_event
+0x67af hci_drop_current_packet
+0x67b4 cmd_exit
+0x67b6 hid_device_load_flash_info_check
+0x67bb hid_device_store_flash_device_info
+0x67c1 hid_device_before_store_reconn_info
+0x67ca hid_device_store_le_device
+0x67cf hid_device_load_device_info
+0x67d5 hid_device_select_reconn_device
+0x67df hid_device_load_le_device
+0x67e4 hid_device_check_device_addr
+0x67e6 hid_device_check_le_device_addr
+0x67e8 hid_device_check_bt_device_addr_common
+0x67ec hid_device_check_device_addr_end
+0x67f2 hid_device_clean_addr
+0x67f8 hid_device_ble_init_address
+0x67ff hid_device_default_parm_init
+0x680c hid_device_param_common_init
+0x681d hid_device_compare_addr_store
+0x6820 hid_device_enable_lpm
+0x6822 hid_device_disable_lpm
+0x6824 hid_device_le_send_empty_packet
+0x6825 hid_device_le_send_package_data
+0x6828 hid_device_le_fill_package_data
+0x682e hid_device_le_fill_standard_key_data
+0x6830 mouse_le_fill_standard_key_data
+0x6831 keyoard_le_fill_standard_key_data_send
+0x6833 hid_device_le_fill_bit_consumer_key_data
+0x6836 hid_device_le_fill_multimedia_key_data
+0x6839 hid_device_le_fill_systemctrl_key_data
+0x683c hid_device_send_package_data_check
+0x683e hid_device_le_send_mouse_data
+0x6843 hid_device_le_fill_data
+0x684b hid_device_clear_key_data
+0x684e hid_device_copy_key_data
+0x6852 hid_device_24g_keyboard_package_data_set
+0x6856 hid_device_push_mouse_data_to_usb
+0x685b hid_device_push_keyboard_data_to_usb
+0x685d hid_device_push_keyboard_package_data_to_usb
+0x6864 hid_device_push_standard_keyboard_data_to_usb
+0x6869 hid_device_push_systemctrl_key_data_to_usb
+0x686f hid_device_push_multimedia_key_data_to_usb
+0x6875 hid_device_push_bit_consumer_key_data_to_usb
+0x6878 hid_device_le_parse_att_write_request
+0x6883 hid_device_24g_search_dongle_init
+0x6886 mouse_24g_search_dongle
+0x6888 hid_device_24g_search_dongle
+0x6892 hid_device_24g_search_dongle_loop
+0x689e hid_device_24g_search_dongle_loop_end
+0x68a4 hid_device_24g_search_dongle_loop_retry
+0x68a6 hid_device_24g_search_dongle_check
+0x68b1 hid_device_24g_search_dongle_success
+0x68bc hid_device_g24_ackpayload_parse
+0x68c4 hid_device_before_lpm_set
+0x68c8 hid_device_peripheral_clock_off
+0x68cb hid_device_cb_fuction
+0x68d2 l2cap_init
+0x68d7 l2cap_init_wake
+0x68d8 check_l2cap_map
+0x68da check_l2cap_map_loop
+0x68df check_l2cap_map_used
+0x68e3 check_l2cap_map_used2
+0x68e5 ble_l2cap_malloc
+0x68e9 host_l2cap_malloc
+0x68ee host_l2cap_malloc_loop
+0x68f6 host_l2cap_malloc_next_buffer
+0x68fa host_l2cap_malloc_succ
+0x68fd host_l2cap_malloc_check_buffer_enough
+0x6901 host_l2cap_malloc_check_buffer_enough_loop
+0x690e host_l2cap_malloc_check_buffer_enough_end
+0x6913 host_l2cap_malloc_into_fifo
+0x691c host_l2cap_malloc_into_fifo_no_push
+0x691f l2cap_malloc_fifo_out
+0x6924 l2cap_malloc_free
+0x692b l2cap_malloc_discard
+0x6935 l2cap_malloc_is_fifo_full
+0x6938 l2cap_malloc_is_fifo_nearly_full
+0x693b l2cap_malloc_is_fifo_empty
+0x693e l2cap_malloc_fifo_get_first_ptr
+0x6941 l2cap_malloc_free_loop
+0x6943 l2cap_malloc_fifo_get_first_ptr_empty
+0x6945 l2cap_malloc_get_full_map
+0x6949 l2cap_malloc_get_full_map_loop
+0x694f l2cap_lpm_get_wake_lock
+0x6951 l2cap_lpm_put_wake_lock
+0x6953 twspi_reset
+0x695b twspi_reset_next
+0x6965 twspi_reset_ext
+0x6968 twspi_disable
+0x696c twspi_enable
+0x6970 twspi_write
+0x6971 twspi_read
+0x6972 aes_disable
+0x6976 read_function_aes
+0x697a read_function
+0x697d read_fuction_zero
+0x697f get_block_header
+0x6980 get_block_header0
+0x6988 read_first_block
+0x698d read_first_block_cont
+0x6990 get_iv
+0x6994 set_iv
+0x699a load_aes_reinit
+0x699d load_storage
+0x69aa load_storage_loop
+0x69b1 load_data_checksum_calc
+0x69ba load_data_checksum_compare
+0x69c8 load_data_checksum_ok
+0x69ca load_data_checksum_compare_fail
+0x69cc loadcode_lock_load_ucode
+0x69d0 loadcode_lock
+0x69d7 loadcode_set_lock
+0x69df load_otp_hv_vsel
+0x69e4 load_otp_set_init
+0x69ea set_otp_config
+0x69fb set_otp_config2
+0x6a11 loadcode_load_key
+0x6a20 loadcode
+0x6a2b loadcode_bistwait
+0x6a31 loadcode_nobist
+0x6a34 loadcode_otp
+0x6a49 loadcode_unenc
+0x6a4b loadcode_otp_loop
+0x6a56 loadcode_otp_end
+0x6a58 loadcode_iic_loop
+0x6a64 run_otp_code
+0x6a67 loadcode_check_otp_lock
+0x6a6c loadcode_otp_lock
+0x6a6e loadcode_iic_eeprom_2k
+0x6a77 loadcode_spi
+0x6a78 loadcode_spi_loop
+0x6a87 loadcode_hci
+0x6a8b clear_key_buf
+0x6a91 iicd_load_gpio_init
+0x6a95 iicd_load_default_gpio
+0x6a99 loadcode_iic_by_eeprom
+0x6a9f loadcode_timeout
+0x6aa5 loadcode_error_delay
+0x6aab loadcode_error
+0x6aaf set_bistfix_wake
+0x6ab1 set_bistfix_wake_patchram
+0x6ab7 set_bistfix_wake_xram
+0x6abf set_bistfix_save_xram
+0x6ac9 set_bistfix_save_patchram
+0x6ad1 set_bistfix_set_patchram_addr
+0x6adc set_bistfix
+0x6ae3 set_bistfix_loop
+0x6ae9 set_ucode_status
+0x6af0 decrypt_code
+0x6af3 decrypt_code_loop
+0x6af6 decrypt_code_skip
+0x6afa save_ucode_loop
+0x6aff load_ucode
+0x6b07 load_ucode_loop
+0x6b0c otp_load_code
+0x6b19 otp_enable_chgpump25
+0x6b22 otp_enable_chgpump65
+0x6b25 disable_otp
+0x6b26 otp_disable_chgpump
+0x6b28 enable_otp_read
+0x6b29 otp_reset
+0x6b2f otp_set_addr
+0x6b33 otp_write
+0x6b37 otp_program
+0x6b3a otp_program_bit
+0x6b5a otp_skip_0
+0x6b62 otp_read_data
+0x6b63 otp_read_data1
+0x6b68 otp_read_data_loop
+0x6b71 otp_read_noinc
+0x6b77 otp_read_unenc
+0x6b7b app_lpm_lock_check
+0x6b89 app_lpm_kb_lock
+0x6b8c app_lpm_module_lock
+0x6b8c app_lpm_hciboot_lock
+0x6b90 app_lpm_dongle_lock
+0x6b96 app_lpm_mouse_lock
+0x6b9c app_lpm_mouse_lock_24g
+0x6ba0 app_lpm_shutter_lock
+0x6ba4 app_lpm_car_lock
+0x6ba7 app_lpm_car_lock_application_and_ble
+0x6bad app_mpu_s0_lock
+0x6bb0 app_lpm_mpu_lock_ble
+0x6bb2 app_mpu_s1_lock
+0x6bb5 app_lpm_mpu_lock_24g
+0x6bb8 app_lpm_mpu_lock_24g_ble
+0x6bbc spid_init
+0x6bbd spid_init_common
+0x6bc6 spid_write_reg
+0x6bcd spid_read_reg
+0x6bce spid_read_regs
+0x6bd6 wait_spid_done
+0x6bda flash_write
+0x6be1 flash_write_spi_sm_timer
+0x6be8 spid_flash_write_start
+0x6bee spid_flash_erase_sector
+0x6bf6 spid_flash_wait_erase_sector
+0x6bfa spid_flash_write_data
+0x6c01 spid_flash_wait_write_data
+0x6c09 spid_flash_data_recover
+0x6c0b spid_flash_data_recover_comm
+0x6c0e spid_flash_data_preserve
+0x6c16 spid_init_flash
+0x6c1c spid_unlock_flash
+0x6c1d spid_sendcmd_common
+0x6c25 spid_flash_release_form_powerdown
+0x6c27 spid_flash_powerdown
+0x6c29 spid_write_flash_data
+0x6c32 spid_write_flash
+0x6c36 spid_write_flash_common
+0x6c43 spid_read_flash
+0x6c55 spid_read_flash_wait
+0x6c59 wait_spid_flash_done
+0x6c62 spid_load_flash
+0x6c6f spi_load_flash_wait
+0x6c81 spi_gpio_init
+0x6c86 spi_pin_set
+0x6c92 spi_gpio_default_init
+0x6c99 soft_reset_chip
+0x6c9b iic_init_600khz
+0x6ca3 iic_init_360khz
+0x6cab iicd_init_pin
+0x6cac iicd_init_pin_scl_sda
+0x6cb2 iicd_read_init_pin
+0x6cb4 wait_iicd_done
+0x6cb7 set_eeprom_size_2k
+0x6cba clear_eeprom_size_2k
+0x6cbd iicd_read_eep_data_size_2k
+0x6cc1 iicd_read_eep_size_2k_lcadcode
+0x6cc4 iicd_read_eep_size_2k
+0x6cc9 iicd_write_protect_eep_data
+0x6cce iicd_eeprom_write_enable
+0x6cd3 iicd_wp_gpio_output_low
+0x6cd5 iicd_eeprom_write_disable
+0x6cd7 iicd_read_eep_data
+0x6cdd iicd_read_eep
+0x6ce3 iicd_read_eep_common
+0x6cf2 iicd_inc_addr
+0x6cf5 iicd_read_eep_load_code_size_2k
+0x6cf6 iicd_set_addr
+0x6cfa iicd_write_eep_data
+0x6d00 iicd_write_eep_loop
+0x6d0f iicd_eep_transparency
+0x6d21 iicd_eep_deal_short_packet
+0x6d26 iicd_write_eep_size_2k
+0x6d30 iicd_write_eep
+0x6d3d iicd_write_eep_common
+0x6d44 iic_check_eeprom_standby
+0x6d46 iic_check_eeprom_standby_wait
+0x6d5b uarta_init_dma_mem
+0x6d5d uart_init_dma_mem
+0x6d66 uarta_init_baud_rate
+0x6d68 uarta_calc_baud_rate_config
+0x6d6a uart_calc_baud_rate_config
+0x6d6f uart_calc_baud_rate_config_choice_uart_clock
+0x6d73 uart_calc_baud_rate_config_choice_uart_clock_crystal
+0x6d75 uart_clock_select_main_freq_crystal
+0x6d79 uart_clock_select_main_freq_dpll
+0x6d7d uarta_init_tx
+0x6d81 uarta_init_rx
+0x6d85 uarta_prepare_tx
+0x6d89 uarta_prepare_rx
+0x6d8d uarta_send
+0x6d8f uarta_rxdone
+0x6d91 uarta_clear_current_rx
+0x6d95 uarta_prepare_tx_register_push
+0x6d97 uarta_send_register_pop
+0x6d99 uart_register_push
+0x6d9d uart_register_pop
+0x6da1 wait_uarttx
+0x6da4 uart_copy_tx_bytes_fast
+0x6da6 uart_copy_tx_bytes_fast_loop
+0x6dab uart_copy_tx_bytes_fast_loop_four
+0x6db1 uart_tx_8_bytes
+0x6db4 uart_tx_4_bytes
+0x6db7 uart_copy_tx_bytes
+0x6db9 uart_copy_tx_bytes_loop
+0x6dbd uart_copy_rx_bytes_fast
+0x6dbf uart_copy_rx_bytes_fast_loop
+0x6dc4 uart_copy_rx_bytes_fast_loop_four
+0x6dca uart_rx_8_bytes
+0x6dcd uart_rx_4_bytes
+0x6dd0 uart_copy_rx_bytes
+0x6dd2 uart_copy_rx_bytes_loop
+0x6dd6 app_store_nvram_event
+0x6dd8 check_51cmd_update_device_record
+0x6ddf write_device_record
+0x6de3 write_device_loop_find
+0x6def write_device_loop_find0
+0x6df3 set_index_finded_device
+0x6df8 set_index_find_device_master_addr
+0x6dfd store_rec_data_common
+0x6e00 set_index_finded_device_ble_mode
+0x6e04 set_index_finded_device_irk
+0x6e06 store_ble_rec_data_common
+0x6e08 set_index_finded_device_ediv
+0x6e0b nvram_find_addr_from_bd_list
+0x6e11 find_addr_from_bd_list_ble_mode
+0x6e19 find_addr_from_bd_list_static_addr
+0x6e1d find_addr_from_bd_list_static_addr_reconnect
+0x6e20 find_addr_from_bd_list_static_addr_sc_or_legacy
+0x6e20 find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy
+0x6e23 find_addr_from_bd_list_static_addr_sc
+0x6e23 find_addr_from_bd_list_random_non_resolvable_private_address_sc
+0x6e26 find_addr_from_bd_list_public_device_addr
+0x6e29 find_addr_from_bd_list_random_non_resolvable_private_address
+0x6e2b find_addr_from_bd_list_random_addr
+0x6e2d find_addr_from_bd_list_common
+0x6e35 nvram_find_addr_from_list
+0x6e45 nvram_find_addr_from_list_compare
+0x6e47 find_master_addr_from_list_compare
+0x6e4c find_addr_from_list_compare_ble_mode
+0x6e4f find_irk_form_list_compare
+0x6e61 genernate_master_macaddress
+0x6e6a find_ediv_form_list_compare
+0x6e79 check_nvram
+0x6e7f init_device_list
+0x6e83 init_device_list_loop
+0x6e88 load_device_list_mode_4
+0x6e93 clear_ltk_exists
+0x6e95 eeprom_store_le_reconn_info
+0x6e97 eeprom_store_reconn_info
+0x6e9c get_gpio_wakeup_index
+0x6ea5 gpio_set_wake_by_current_state
+0x6eac gpio_set_wake
+0x6eb3 gpio_set_wake_high
+0x6eb7 gpio_set_wake_low4bit
+0x6ebc gpio_set_qdec_mode
+0x6ec0 gpio_set_low_pullup
+0x6ec8 gpio_set_low_pullup_low4bit
+0x6ecd gpio_clr_wake
+0x6ed5 gpio_config_input_nowake
+0x6ed7 gpio_config_input
+0x6eda gpio_config_input_without_wake
+0x6ee0 gpio_get_bit
+0x6eeb gpio_get_bit_reverse
+0x6eed gpio_out_inactive
+0x6ef1 gpio_config_output
+0x6ef1 gpio_out_active
+0x6ef4 gpio_out_flag
+0x6ef7 gpio_out
+0x6efc gpio_check_active
+0x6f03 gpio_check_active_high
+0x6f05 gpio_set_analog
+0x6f09 gpio_write
+0x6f0b gpio_set_high_impedance
+0x6f10 gpio_addr
+0x6f14 gpio_addr_next
+0x6f16 gpio_addr_ext
+0x6f19 gpio_config_param
+0x6f1c gpio_config_function
+0x6f1d gpio_config_function_int
+0x6f22 gpio_config_function_int_next
+0x6f25 gpio_config_function_int_ext
+0x6f28 gpio_get_config
+0x6f2c gpio_get_config_next
+0x6f2f gpio_get_config_ext
+0x6f32 gpio_set_before_lpm
+0x6f34 setgpio_loop
+0x6f3e setgpio_loop_end
+0x6f42 gpio_set_before_lpm_ext
+0x6f45 setgpio_pullup
+0x6f48 setgpio_pulldown
+0x6f4b lpm_puchk_set_check
+0x6f4e lpm_config_puchk_disable
+0x6f4f lpm_config_puchk_set
+0x6f51 lpm_config_puchk_enable
+0x6f53 sadc_calibration
+0x6f5f sadc_cal_read
+0x6f62 sadc_cal_read_loop
+0x6f6b sadc_cal_write
+0x6f71 sadc_cal_write_loop
+0x6f7c adc_init_data
+0x6f8e vdd_calculate_by_mode
+0x6f93 vdd_reference_inter3v_calculate
+0x6f97 vdd_reference_inter3v_calculate_by_mode_vdcdc
+0x6f9e vdd_reference_inter3v_calculate_by_mode_gpio
+0x6fa4 mul1v_div1v_to_cal
+0x6fa9 enable_adc_init_config
+0x6fb2 enable_adc
+0x6fb7 enable_adc_reference_source_inter3v
+0x6fbe read_adc_inter1v
+0x6fd1 vdd_reference_inter1p8v_calculate
+0x6fd5 vdd_reference_inter1p8v_calculate_by_mode_vdcdc
+0x6fdb vdd_reference_inter1p8v_div2_calculate_by_mode_gpio
+0x6fe0 vdd_calculate00
+0x6fe8 vdd_calculate11
+0x6fee enable_adc_reference_source_inter1p8v
+0x6ff0 enable_adc_reference_source_inter1p8v_div2_gpio
+0x6ff8 enable_adc_reference_source_inter1p8v_vdcdc
+0x6fff enable_adc_reference_source_inter1p8v_common
+0x7007 sadc_channel
+0x700e sar_adc_read_wait
+0x7011 sadc_read
+0x7017 sadc_read_wait2
+0x701b sadc_dma
+0x702a vdd_calculate
+0x7030 vdd_calculate2
+0x7032 vdd_calculate1
+0x7039 vdd_calculate_common
+0x703e adc_bat_percent_lowpower_out
+0x704e adc_set_low_power_flag
+0x7051 adc_clear_low_power_flag
+0x7054 adc_set_no_power_flag
+0x7057 adc_clear_no_power_flag
+0x7059 adc_set_power_flag
+0x705b keyscan_key_init
+0x705d keyscan_key_init_next
+0x7062 keyscan_key_init_lp1
+0x7066 keyscan_key_init_end
+0x7067 keyscan_scan_key
+0x706d keyscan_scan_key_lp1
+0x7078 keyscan_scan_key_lp1_next
+0x707f keyscan_process_lpm_before
+0x7081 keyscan_process_lpm_before_next
+0x7086 keyscan_process_lpm_before_lp1
+0x708a keyscan_process_lpm_before_end
+0x708b keyscan_key_process
+0x7096 keyscan_key_process_next
+0x709f keyscan_key_lp1
+0x70ab keyscan_key_lp1_next
+0x70b4 keyscan_send_key_data
+0x70b9 pwm_init
+0x70bf delay_nop100
+0x70c1 pwm_clk_set
+0x70c4 pwm_12m_clk_set
+0x70c6 pwm_24m_clk_set
+0x70c8 pwm_33k_clk_set
+0x70ca pwm_out_set
+0x70de pwm_duty_cycle_set
+0x70e1 pwm_autoload_set
+0x70ea delay_1clk_of_33k
+0x70ec pwm_duty_cycle_set_without_autoload
+0x70f5 pwm_init_bit_set
+0x70f6 pwm_init_bit_set_process
+0x70fb pwm_gpio_select
+0x70fc pwm_gpio_select_process
+0x7100 pwm_enable
+0x7103 pwm_disable
+0x7106 pwm_set_select
+0x710b pwm_select_channel
+0x710e wdt_init_config
+0x711b wdt_set_enable
+0x711d wdt_set_disable
+0x711f wdt_init_set
+0x7123 nec_init_config
+0x7127 select_system_clk_12m_xtal
+0x7128 select_system_clk_12m_common
+0x712c select_system_clk_12m_dpll
+0x712e function_g2
+0x7145 function_f6_eb
+0x7155 get_r
+0x7159 function_f6_ea
+0x716c function_f5
+0x717e function_f5_common
+0x718f store_addr_common_b
+0x7194 store_addr_common_a
+0x7199 function_f4_ca
+0x71a4 function_f4_cb
+0x71af function_aes_cmac
+0x71b3 function_ceil16
+0x71c1 function_aes_cmac_set_flag_0_balnk
+0x71c4 function_aes_cmac_set_flag_0
+0x71c5 function_aes_cmac_set_flag_0_common
+0x71cf function_aes_cmac_aes
+0x71d2 function_aes_cmac_aes_loop
+0x71d8 function_aes_cmac_aes_loop_end
+0x71e0 load_inverse_result
+0x71e4 store_inverse_k
+0x71e6 inverse_k
+0x71e9 inverse_memdat
+0x71ed bn_lshift_0_inverse
+0x71f7 function_aes_cmac_k1_inverse
+0x71f8 function_aes_cmac_inverse_common
+0x71fc function_aes_cmac_k2_inverse
+0x71fe function_aes_cmac_generate_subkey
+0x7206 function_aes_cmac_k1
+0x720f function_aes_cmac_k1_0
+0x7210 function_aes_cmac_k2
+0x7219 function_aes_cmac_xor_rb
+0x721a function_aes_cmac_xor_rb_loop
+0x7220 function_aes_cmac_xor_loop_common
+0x7224 function_aes_cmac_padding
+0x7227 function_aes_cmac_padding_loop
+0x722c function_aes_cmac_padding_loop2
+0x722f function_aes_cmac_padding_beq_length
+0x7230 function_aes_cmac_padding_common
+0x7232 function_aes_cmac_padding_big_length
+0x7234 concatenate_temp24
+0x7235 concatenate_temp16
+0x7238 generate_stk
+0x723c authenticate_rconfirm
+0x723f authenticate_mconfirm
+0x7244 generate_confirm
+0x7247 generate_mrand
+0x724a generate_sk
+0x7253 ccm_b0
+0x7256 first_block_counter
+0x7258 first_block_data
+0x7259 first_block
+0x725a iv_common
+0x726b generate_mic
+0x727a generate_mic_loop
+0x727f generate_mic_end
+0x7283 aes_crypt_data
+0x728d le_encrypt_new_start
+0x72a6 ccm_wait_enc
+0x72ab ccm_check_enc_done
+0x72ad ccm_enc_done
+0x72b2 ccm_init_common
+0x72b9 wait_ccm_done
+0x72bb ccm_ctrl_clr
+0x72bd wait_aes
+0x72bf do_aes_ocb
+0x72c2 do_aes_cbc
+0x72c5 do_aes_ctr
+0x72c8 aes_init
+0x72cb wait_keyinit_done
+0x72ce dec_key_initial
+0x72d2 do_aes_ecb_dec
+0x72d9 ecb_dec_generate
+0x72dc ecb_dec_generate_loop
+0x72e1 aes_ecb_dec_loop
+0x72e8 do_aes_cbc_dec
+0x72f4 function_s1
+0x7309 function_c1
+0x730f function_c1_master
+0x731f function_c1_irat
+0x7324 function_c1_loop1
+0x7337 padding_data
+0x733c padding_loop
+0x7341 aes_load_data
+0x7342 load_data_loop
+0x7346 load_data_padding
+0x734b aes_load_xor
+0x734d load_key
+0x734f load_data128
+0x7350 load_regext
+0x7351 load_regext_loop
+0x7356 load_sk
+0x7358 clear_hidata
+0x735a regext_clear
+0x735d aes_clear_data
+0x735e aes_clear
+0x735f clear_loop
+0x7360 clear_data_rest
+0x7363 store_aes_result
+0x7365 send_aes_result_loop
+0x736a store_enc_data
+0x7370 store_enc_loop
+0x7378 store_enc_byte
+0x737c compare_res
+0x737e compare_res_loop
+0x7384 enable_authrom
+0x7388 disable_authrom
+0x738c init_memp
+0x73e3 init_memp_256
+0x7435 publickey_init
+0x7436 sp_calc_sequence_256_check
+0x743e stop_publickey_calc_256
+0x7440 sp_clear_flags
+0x7449 sp_calc_check_publickey_256
+0x7464 sp_calc_b256
+0x747a random_generator
+0x747f compare4
+0x7489 compare4_failed
+0x748a compare4_success
+0x748b bn_testbit
+0x7491 bn_eq_zero
+0x7497 bn_eq_0
+0x74a0 bn_bigeq
+0x74a3 bn_bigeq_0
+0x74ad bn_add
+0x74af bn_add_0
+0x74bb bn_sub
+0x74bd bn_sub_0
+0x74c9 bn_rshift6
+0x74cb bn_rshift
+0x74cc bn_rshift_0
+0x74d7 bn_lshift
+0x74d9 bn_lshift_0
+0x74e4 bn_load
+0x74e5 bn_load_0
+0x74ea sp_initialize_256
+0x74ed sc_reset
+0x74f0 sp_wait_pubkey_calc_256_done
+0x74f6 sp_debug_private_256
+0x750b sp_pubkey_calc_256
+0x7524 sp_pubkey_generated_256
+0x752a sp_dhkey_calc_256
+0x753a sp_dhkey_generated_256
+0x7540 sp_calc_sequence_256
+0x754a sp_calc_sequence_done_256
+0x7550 eckp_calc_256
+0x7558 eckp_calc_init_256
+0x755b eckp_calc_init_256_1
+0x7565 ecunmapz_256
+0x7577 ecdbl_256
+0x75c8 ecadd_256
+0x7634 bn_invmod_256
+0x7642 bn_invmod_256_2
+0x765d bn_invmod_256_1
+0x766b bn_invmod_256_0
+0x7672 bn_mulmod_256
+0x7680 bn_mulmod_256_1
+0x7686 bn_mulmod_256_0
+0x769b bn_p256mod
+0x7704 bn_load_mem
+0x7708 bn_load_256
+0x770a bn_sqrmod_256
+0x770c bn_add_256
+0x770e bn_addmod_256
+0x7711 bn_lshiftmod_256
+0x7712 bn_lshiftmod_ismod_256
+0x771b bn_lshiftmod_p_256
+0x7723 sub_p2_256
+0x7727 bn_submod_256
+0x7731 bn_submod_256_np
+0x773a bn_sub_256
+0x773c bn_rshift_256
+0x773f bn_lshift_256
+0x7742 bn_bigeq_256
+0x7746 bn_eq_zero_256
+0x7749 bn_rshifteven_256
+0x774a bn_rshifteven_256_1
+0x7759 bn_rshifteven_256_0
+0x775d ui_init
+0x7762 ui_dispatch
+0x7764 ui_button_init
+0x776e ui_button_polling
+0x7774 ui_button_down
+0x7780 ui_button_up
+0x778a ui_button_check_long_press
+0x7791 lpm_button_get_wake_lock
+0x7793 lpm_button_clean_wake_lock
+0x7795 calc_curr_struct_prt
+0x779a ui_led_init_global
+0x779f ui_led_init_loop
+0x77a5 ui_led_init_set
+0x77a8 ui_led_on_global
+0x77ad ui_led_blink_stop_global
+0x77ad ui_led_off_global
+0x77b2 ui_led_blink_start_global
+0x77b8 ui_led_set_style_global
+0x77bd ui_led_dispatch
+0x77c0 ui_led_blink_polling
+0x77c6 ui_led_off_static
+0x77c9 ui_led_on_static
+0x77cc ui_led_change_style_by_type
+0x77d5 ui_led_blink_state_lighting
+0x77e0 ui_led_blink_state_darking
+0x77ec ui_led_blink_infinite
+0x77f0 ui_led_blink_timer_start
+0x77f2 ui_led_stop_timer
+0x77f4 ui_timer_timeout
+0x77f8 ui_timer_check
+0x77ff ui_timer_check_loop
+0x7809 ui_timer_init
+0x780c ui_timer_check_end
+0x7812 ui_timer_check_send_evt
+0x7813 ui_ipc_get_lock
+0x7814 ui_ipc_get_lock_wait
+0x7817 ui_ipc_put_lock
+0x7819 ui_ipc_send_event
+0x7824 ui_ipc_send_cmd
+0x782d ui_ipc_clean_all_fifo
+0x7831 check_51cmd
+0x783c check_51cmd_once
+0x7850 check_51cmd_once_continue
+0x7859 check_51cmd_check_idle
+0x785e check_51cmd_restore
+0x7860 check_51cmd_adv
+0x7866 check_51cmd_stop_adv
+0x786b check_51cmd_direct_adv
+0x7871 check_51cmd_stop_direct_adv
+0x7876 check_51cmd_le_disconnect
+0x787a check_51cmd_ble_update_connect_param
+0x787b check_51cmd_led_off
+0x787d check_51cmd_led_on
+0x787f check_51cmd_led_start_blink
+0x7886 check_51cmd_led_start_blink_in_blink
+0x7889 check_51cmd_le_start_con
+0x788c check_51cmd_start_scan
+0x788e check_51cmd_stop_scan
+0x7891 check_51cmd_hibernate
+0x7897 check_51cmd_hibernate_btn_disabled
+0x7899 check_51cmd_le_smp_sec_req
+0x789a ui_check_paring_button
+0x789d queue_init
+0x78a2 queue_push
+0x78b2 calc_queue_next_ptr
+0x78ba queue_pop
+0x78cc queue_get_new_ele
+0x78db queue_store_new_ele
+0x78ea queue_empty
+0x78ee queue_full
+0x78f2 queue_get_size
+0x78f6 usb_isr
+0x7902 usb_init
+0x7905 usb_init_restart
+0x791a usb_offline_check_init
+0x791c usb_offline_state
+0x7922 usb_init_param
+0x7954 usb_config_cb
+0x7956 usb_tx_interval_config
+0x795b usb_nak_state
+0x7963 usb_nak_state_judge
+0x7966 usb_nak_state_timer_init
+0x796b usb0_attached_state_judge
+0x7970 usb_clear_halt_dispose
+0x7976 usb_rx_no_data
+0x7979 usb_rx_len
+0x7983 usb_rx_data
+0x7986 usb_rx_read
+0x798b usb_rx_ep13
+0x7994 usb_rx
+0x79a1 usb_class_type
+0x79a8 usb_out_one_byte
+0x79ac usb_in_device
+0x79b4 usb_out_device
+0x79bc usb_in_standard_req
+0x79c2 usb_in_class_req
+0x79c7 usb_in_manufacturer_req
+0x79c8 usb_out_standard_req
+0x79d0 usb_out_class_req
+0x79d5 usb_out_manufacturer_req
+0x79d6 usb0_force_stall
+0x79db usb0_reply_zerolen
+0x79dd usb0_request_get_configuration
+0x79ef usb0_request_get_cfg_dev_cfg
+0x79f1 usb0_request_get_cfg_dev_addr
+0x79f3 usb0_request_get_descriptor
+0x79fb dsc_hid_info
+0x7a00 dsc_hid_info_interface0
+0x7a03 dsc_hid_info_interface1
+0x7a06 dsc_device_info
+0x7a0a dsc_info_set_data_len
+0x7a0f dsc_info_set_initial_data_len
+0x7a10 dsc_info_set_data_size_completed
+0x7a15 dsc_info_set_current_data_len
+0x7a17 usb_set_high_addr
+0x7a1b usb0_set_addr
+0x7a1f dsc_config_info
+0x7a22 dsc_string_info
+0x7a30 dsc_hid_report_info
+0x7a34 dsc_hid_report_info0
+0x7a38 usb0_request_get_interface
+0x7a4a usb0_request_get_status
+0x7a5b usb0_sdsystem_dispose
+0x7a5d usb0_get_status_in_device
+0x7a62 usb_send_zero_packet
+0x7a64 usb_send_ones_packet
+0x7a66 usb_send_two_packet
+0x7a68 usb0_get_status_in_interface
+0x7a6c usb0_get_status_in_endpoint
+0x7a75 usb0_get_status_in_ep_in_ep0
+0x7a76 usb0_get_status_in_ep_in_ack
+0x7a79 usb0_get_status_in_ep_in_ep1
+0x7a7b usb0_get_status_in_ep_in_ep2
+0x7a7d usb0_get_status_in_ep_in_ep3
+0x7a7f usb_get_idle
+0x7a83 usb_get_report
+0x7a88 usb_get_report_dispose
+0x7a8b usb_get_report_send_data
+0x7a8f usb_get_report_data_release
+0x7a92 usb_get_report_data_success
+0x7a95 usb_get_protocol_req
+0x7a9d usb_get_report_protocol
+0x7a9e usb_get_boot_protocol
+0x7a9f usb0_request_clear_feature
+0x7aae usb0_request_clear_feature_out_device
+0x7abc usb0_request_clear_feature_out_interface
+0x7abd usb0_request_clear_feature_out_endpoint
+0x7ac6 usb0_force_stall_ep0_in_off
+0x7ac8 usb0_force_stall_ep1_in_off
+0x7ac9 usb0_force_stall_ep1_in_off_reply
+0x7acb usb0_force_stall_ep2_in_off
+0x7acd usb0_force_stall_ep3_in_off
+0x7acf usb0_request_set_feature
+0x7ad8 usb0_request_set_feature_out_device
+0x7ae3 usb_wakeup_timer_reinit
+0x7ae7 usb0_request_set_feature_out_interface
+0x7ae8 usb0_request_set_feature_out_endpoint
+0x7af3 usb0_force_stall_ep0_in_on
+0x7af5 usb0_force_stall_ep1_in_on
+0x7af7 usb0_force_stall_ep2_in_on
+0x7af9 usb0_force_stall_ep3_in_on
+0x7afb usb0_request_set_address
+0x7b0c usb_usb0_state_set_dev_default
+0x7b0d usb0_request_set_wait_address
+0x7b12 usb_usb0_state_set_dev_addr
+0x7b14 usb0_request_set_configuration
+0x7b29 usb0_request_set_cfg_addr_state
+0x7b29 usb0_request_set_cfg_cfg_state
+0x7b2d usb0_request_set_cfg_stay_addr_state
+0x7b2f usb0_request_set_interface
+0x7b40 usb_set_idle
+0x7b4e usb_clear_remote_wakeup_set0
+0x7b52 usb_set_report
+0x7b5e usb_get_led_status
+0x7b62 usb_set_report_resume_judge
+0x7b70 usb_set_protocol_req
+0x7b76 usb_set_boot_protocol
+0x7b79 usb_set_report_protocol
+0x7b7d usb0_respond_length
+0x7b7f usb0_respond
+0x7b84 usb0_respond_nostr
+0x7b88 usb_no_respond_data
+0x7b8a usb0_tx
+0x7b98 usb0_tx_short
+0x7b9c usb0_tx_info
+0x7bae usb0_tx_nostr
+0x7bb0 usb0_tx0
+0x7bb5 usb0_tx1
+0x7bc3 usb_tx_ep1
+0x7bc6 usb_tx_buf
+0x7bc8 usb_tx_loop
+0x7bcb usb_trig
+0x7bcf usb_tx_ep2
+0x7bd3 usb_tx
+0x7be2 usb_tx_data_ep1
+0x7bee usb_tx_data_ep2
+0x7bfe usb_tx_fifo_release
+0x7c01 usb_tx_ms_data
+0x7c09 usb_tx_ms_data_mac_boot_mode
+0x7c0a usb_tx_ms_data_mac_boot_regroup
+0x7c18 usb_tx_ms_data_normal_mode
+0x7c19 usb_tx_mac_boot_ms_regroup_r_or_lrkey
+0x7c1c usb_tx_kb_multikey_data
+0x7c20 usb_tx_kb_normal_data
+0x7c26 usb_tx_kb_systemkey_data
+0x7c2a usb_tx_kb_bit_consumer_data
+0x7c2e usb_tx_kb_n_key_rollover_data
+0x7c32 usb_inwake_state_tx_dispose
+0x7c35 usb_mac_wakeup_trig
+0x7c3a usb_mac_wakeup_judge
+0x7c3e usb_mac_wakeup
+0x7c42 usb_windows_wakeup
+0x7c45 usb_wakeup
+0x7c4b push_stack
+0x7c53 push_stack_rega_b_c
+0x7c57 pop_stack
+0x7c62 pop_stack_rega_b_c
+0x7c66 get_contw
+0x7c67 get_contw_end
+0x7c69 get_contr
+0x7c6a get_contr_end
+0x7c6c store_contw
+0x7c6f store_contr
+0x7c72 save_cont_pointers
+0x7c77 load_cont_pointers
+0x7c7c get_diff
+0x7c82 memcpy96
+0x7c83 memcpy64
+0x7c85 memcpy12
+0x7c86 memcpy4
+0x7c88 memcpy3
+0x7c8b memcpy8
+0x7c8e memcpy48
+0x7c8f memcpy32
+0x7c90 memcpy24
+0x7c91 memcpy16
+0x7c93 delay
+0x7c97 delay_10ms
+0x7c98 delay_ms_wait
+0x7c9b memset0_16
+0x7c9c memset0_8
+0x7c9d memset0_4
+0x7c9f clear_mem_256
+0x7ca1 clear_mem_512
+0x7ca3 clear_mem
+0x7ca5 memset0
+0x7ca8 clear_temp_block
+0x7cab xor_loop
+0x7cb3 inverse_data
+0x7cba inverse_loop
+0x7cc2 le2be_6byte
+0x7cc2 inverse_data_6byte
+0x7cc8 le2be_4byte
+0x7cc8 inverse_data_4byte
+0x7cce memcpy_fast
+0x7cd1 memcpy_fast_loop
+0x7cd6 memcpy_fast_loop_four
+0x7cdc memcpy
+0x7cde memcpy_loop
+0x7ce2 timer_stop
+0x7ce3 timer_init
+0x7cec timer_check_timeout
+0x7cf0 timer_reinit
+0x7cf1 timer_check
+0x7cfc timer_loop
+0x7d00 timer_counting
+0x7d07 clk_add
+0x7d12 clk_diff_rt
+0x7d14 clk_diff
+0x7d19 clk_diff_pos
+0x7d21 clk2rt
+0x7d27 clk2lpo
+0x7d2e clk2bt
+0x7d35 string2dec_from_uart
+0x7d36 string2dec_from_uart_done
+0x7d41 uchar2dialog
+0x7d4a uchar2dialog_number
+0x7d4d uchar2dialog_a2f
+0x7d50 right_shift_n
+0x7d52 right_shift_n_loop
+0x7d55 left_shift_n
+0x7d58 left_shift_n_loop
+0x7d5b calc_average
+0x7d5d calc_average_loop
+0x7d61 get_div_result
+0x7d64 wait_div_end
+0x7d66 compare_loop
+0x7d66 string_compare
+0x7d6e ceiling
+0x7d72 swap
+0x7d76 clean_smem
+0x7d78 clean_xmem
+0x7d79 clean_mem
+0x7d7b callback_func
+0x7d7d ice_break_disable_wdt
+0x7d7e ice_break
+0x7d80 ice_setbp
+0x7d85 ice_setbp2
+0x7d8a ice_set_write_bp
+0x7d8d fifo_in
+0x7d93 fifo_in_push
+0x7d99 fifo_out
+0x7d9d fifo_out_loop
+0x7da2 fifo_out_end
+0x7da5 fifo_is_empty
+0x7da7 fifo_is_full
+0x7da9 fifo_is_near_full
+0x7dab fifo_content_count
+0x7dac fifo_content_count_loop
+0x7db2 not_greater_than
+0x7db4 copy_temp2pdata
+0x7db6 disable_positive
+0x7db8 enable_positive
+0x7db8 disable_zero
+0x7dba enable_zero
+0x7dbc enable_user
+0x7dbe disable_user
+0x7dc0 enable_user2
+0x7dc2 disable_user2
+0x7dc4 enable_user7
+0x7dc6 disable_true
+0x7dc8 enable_true
+0x7dca disable_blank
+0x7dcc enable_blank
+0x7dcc set_pdata_0
+0x7dce istore_1_contw_rtn
+0x7dd0 cal_sum
+0x7dd2 cal_sum_loop
+0x7dd6 reverse_byte
+0x7ddc reverse_loop
+0x7de1 lshift14
+0x7de2 rshift2
+0x7de4 lshift6
+0x7de6 clear_wake
+0x7ded generate_random
+0x7dee generate_random_loop
+
+
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ 
+format
+  ! 15 pulse   
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      
+  % reg             
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      
+  % reg             
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      
+  [2] 0
+  [6] 0    
+  [2] 0            
+  [4] dest        
+  [9] immediate   
+end
+
+format
+  ! 1 inject      
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination 
+  [9] immediate   
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       
+  [6] 3
+  [2] 0
+  [4] destination 
+  [9] 0 
+end
+
+format
+  ! 1 stuff  
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    
+  [6] regw  
+  [9] immediate
+end
+
+format    
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    
+  [6] regw  
+  [9] 0
+end
+
+format    
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  
+  [6] 1   
+  [6] -1  
+  [9] immediate
+end
+
+format    
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    
+  [6] regw
+  [9] 0
+end
+  
+
+format    
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   
+  [6] -1  
+  [9] 0
+end
+
+format
+  ! 3 icopy     
+  % regw
+  [5] opcode
+  [6] -1  
+  [6]  4  
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 add
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 iadd       
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 flip
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 iflip  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 xor
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 3 xor_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 ixor  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 invert
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 8
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 pinvert    
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 idiv48           
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 17                   
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 quotient             
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 15
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 6
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 22
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 18
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 35
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 25
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 34
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift32
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 30
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 7
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 23
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 26
+  [6] regw
+  [9] 0
+end
+
+  
+format
+  ! 3 lshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 19
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 36
+  [6] regw
+  [9] 0
+end
+  
+
+format
+  ! 3 lshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 32
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 bcrc         // calculate regr's byte crc value into pdata
+  % regr
+  [5] opcode
+  [6] regr
+  [6] 24
+  [6] 63
+  [9] 0
+end
+
+
+format
+  ! 3 random               
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   
+  % section    
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  
+  ! 10 ialigned   
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format  
+  ! 10 aligned
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 4 branch
+  % addr
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 call
+  % addr
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 rtn
+  % flag
+  [5] opcode
+  [6] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d fetcht          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetch         
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 63
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x1d ifetcht         
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 2
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x0c store          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c storet          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c istoret        
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 2            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d crc         // read from memory, count from loopcnt, put crc result into pdata 
+  % addr
+  [5] opcode
+  [6] 63
+  [6] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         
+  % reg
+  [5] opcode
+  [6] 63
+  [15] 0
+  [6] reg
+end
+
+
+format
+  ! 0x0c storer          
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+
+format
+  ! 0x1c istorer        
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x1c lstorer        
+  % regr
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstore        
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstorew        
+  % regaddr
+  [5] opcode
+  [6] 63
+  [6] 42
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d fetchr          
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetchr        
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [16] addr
+  [8] immediate
+end
+
+format			
+  ! 4 nbranch
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 ncall
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 nrtn
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 4 nop
+  % addr  
+  [5] opcode
+  [6] 0     
+  [6] 0      
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   
+  % reg          
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           
+  [9] 0           
+end
+
+format
+  ! 5 compare   
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   
+  ! 5 iverify
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 2
+  [18] 0
+end
+
+format
+  ! 0x15 qisolate1
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] -1
+end
+
+format
+  ! 0x15 qisolate0
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] 0
+end
+
+	
+format
+  ! 5 isolate1
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] -1
+  [9] addr
+end
+
+format
+  ! 5 isolate0
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] 0
+  [9] addr
+end
+
+format
+  ! 11 setarg
+  % immediate
+  [5] opcode
+  [27] immediate
+end
+
+format
+  ! 0x1b arg
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [21] immediate
+end
+
+  
+format
+  ! 0 sleep
+  [5] opcode
+  [27] 0
+end
+
+format
+  ! 0 snooze
+  [5] opcode
+  [6] -1
+  [21] 0
+end
+
+format
+  ! 0 revision
+  % rev_num
+  [5] opcode
+  [27] rev_num
+end
+
+format
+  ! 0x18 loop   
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   
+  % imme
+  [5] opcode
+  [4] 8
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 8	bpatch
+  % imme
+  % addr
+  [5] opcode
+  [4] 9
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 8	bpatchx
+  % imme
+  % addr
+  [5] opcode
+  [4] 14
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark1   
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 3 mul32                   
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32             
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 imults             
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 16
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 adpcm         // encode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 43
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 pcm         // decode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 44
+  [6] regw
+  [9] 0
+end
+
+
Index: output/bt_program23.icode
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_program23.icode	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_program23.icode	(working copy)
@@ -0,0 +1,1033 @@
+ 00000000  0x00000013 bbit1  0x00000008 , 0x0000001d 
+ 00000001  0x00000014 beq  0x00000000 , 0x00000038 
+ 00000002  0x00000015 beq  0x0000001a , 0x0000006c 
+ 00000003  0x00000016 beq  0x00000025 , 0x00000046 
+ 00000004  0x00000017 beq  0x00000028 , 0x000000ad 
+ 00000005  0x00000018 beq  0x0000003e , 0x000002a0 
+ 00000006  0x00000019 beq  0x0000003f , 0x000002a3 
+ 00000007  0x0000001a beq  0x00000040 , 0x000000f1 
+ 00000008  0x0000001c beq  0x00000043 , 0x000001fa 
+ 00000009  0x0000001d beq  0x00000044 , 0x000003e4 
+ 00000010  0x0000001e beq  0x00000049 , 0x0000039d 
+ 00000011  0x0000001f beq  0x0000004b , 0x000000fc 
+ 00000012  0x00000020 beq  0x0000004c , 0x00000100 
+ 00000013  0x00000021 beq  0x0000004e , 0x00000229 
+ 00000014  0x00000022 beq  0x00000051 , 0x00000273 
+ 00000015  0x00000023 beq  0x00000056 , 0x0000029a 
+ 00000016  0x00000024 beq  0x00000057 , 0x000003c8 
+ 00000017  0x00000025 beq  0x00000059 , 0x000002ff 
+ 00000018  0x00000026 beq  0x0000005c , 0x00000302 
+ 00000019  0x00000027 beq  0x0000005e , 0x00000176 
+ 00000020  0x00000028 beq  0x0000006a , 0x000002ae 
+ 00000021  0x00000029 beq  0x0000007c , 0x00000395 
+ 00000022  0x0000002a beq  0x00000082 , 0x000003ee 
+ 00000023  0x0000002b beq  0x000000a3 , 0x000047fb 
+ 00000024  0x0000002c beq  0x000000e9 , 0x00000077 
+ 00000025  0x0000002d beq  0x000000ea , 0x00000074 
+ 00000026  0x0000002e beq  0x000000cf , 0x000000bc 
+ 00000027  0x0000002f beq  0x000000fa , 0x000000a9 
+ 00000028  0x00000030 branch  0x0000233e 
+ 00000029  0x00000033 rtneq  0x000000ff 
+ 00000030  0x00000034 beq  0x000000ad , 0x00000054 
+ 00000031  0x00000035 beq  0x000000bd , 0x00000057 
+ 00000032  0x00000036 beq  0x000000c2 , 0x000003c7 
+ 00000033  0x00000037 beq  0x000000f3 , 0x00000023 
+ 00000034  0x00000038 branch  0x0000233e 
+ 00000035  0x0000003b until  0x0000003e , 0x00000033 
+ 00000036  0x0000003c jam  0x00000060 , 0x00008a86 
+ 00000037  0x0000003d jam  0x0000003b , 0x00008a8b 
+ 00000038  0x0000003f call  0x0000229d 
+ 00000039  0x00000040 jam  0x00000000 , 0x00008043 
+ 00000040  0x00000041 jam  0x00000005 , 0x00008042 
+ 00000041  0x00000042 setarg  0x00557474 
+ 00000042  0x00000043 store  0x00000003 , 0x00008968 
+ 00000043  0x00000044 jam  0x0000006e , 0x00008960 
+ 00000044  0x00000045 call  0x00002135 
+ 00000045  0x00000046 call  0x00002287 
+ 00000046  0x00000047 call  0x00002281 
+ 00000047  0x00000048 jam  0x0000000c , 0x00004148 
+ 00000048  0x00000049 jam  0x00000006 , 0x00008a30 
+ 00000049  0x0000004a jam  0x000000dd , 0x00008a32 
+ 00000050  0x0000004b jam  0x000000e0 , 0x00008a88 
+ 00000051  0x0000004c jam  0x0000002d , 0x00008a8c 
+ 00000052  0x0000004d jam  0x00000078 , 0x00008a31 
+ 00000053  0x0000004e call  0x00006f53 
+ 00000054  0x0000004f call  0x000022cb 
+ 00000055  0x00000050 branch  0x00006ac9 
+ 00000056  0x00000053 nbranch  0x0000003b , 0x0000002b 
+ 00000057  0x00000054 until  0x0000003e , 0x00000033 
+ 00000058  0x00000055 until  0x0000003e , 0x00000033 
+ 00000059  0x00000057 call  0x00003e9a 
+ 00000060  0x00000058 nbranch  0x00002002 , 0x00000028 
+ 00000061  0x00000059 fetch  0x00000001 , 0x0000488d 
+ 00000062  0x0000005a branch  0x00002002 , 0x00000034 
+ 00000063  0x0000005b fetch  0x00000001 , 0x0000490f 
+ 00000064  0x0000005c beq  0x000000ff , 0x00002002 
+ 00000065  0x0000005d copy  0x0000003f , 0x00000007 
+ 00000066  0x0000005e fetch  0x00000004 , 0x0000067b 
+ 00000067  0x0000005f qisolate0  0x0000003f 
+ 00000068  0x00000060 call  0x0000469b , 0x00000001 
+ 00000069  0x00000061 branch  0x00002002 
+ 00000070  0x00000065 fetch  0x00000002 , 0x000043f2 
+ 00000071  0x00000066 call  0x00007d7b 
+ 00000072  0x00000068 fetch  0x00000004 , 0x000040ad 
+ 00000073  0x00000069 iadd  0x00000002 , 0x0000003f 
+ 00000074  0x0000006a store  0x00000004 , 0x000040ad 
+ 00000075  0x0000006b call  0x000023d7 
+ 00000076  0x0000006c fetch  0x00000001 , 0x000040cb 
+ 00000077  0x0000006d set1  0x00000004 , 0x0000003f 
+ 00000078  0x0000006e call  0x000023c3 
+ 00000079  0x0000006f ncall  0x000023ad , 0x0000002b 
+ 00000080  0x00000070 until  0x0000003e , 0x00000033 
+ 00000081  0x00000071 copy  0x00000019 , 0x0000003f 
+ 00000082  0x00000072 store  0x00000006 , 0x000040b1 
+ 00000083  0x00000073 branch  0x00002413 
+ 00000084  0x00000075 fetch  0x00000004 , 0x00004576 
+ 00000085  0x00000076 rtn  0x00000034 
+ 00000086  0x00000077 branch  0x000032ad 
+ 00000087  0x0000007a fetch  0x00000002 , 0x000045f7 
+ 00000088  0x0000007b and_into  0x000000e0 , 0x0000003f 
+ 00000089  0x0000007c branch  0x0000005e , 0x00000034 
+ 00000090  0x0000007d fetch  0x00000002 , 0x000045f7 
+ 00000091  0x0000007e increase  0x00000001 , 0x0000003f 
+ 00000092  0x0000007f store  0x00000002 , 0x000045f7 
+ 00000093  0x00000080 rtn 
+ 00000094  0x00000083 call  0x00003557 
+ 00000095  0x00000084 call  0x0000362a 
+ 00000096  0x00000085 nbranch  0x0000355e , 0x00000018 
+ 00000097  0x00000086 nbranch  0x0000355e , 0x0000002f 
+ 00000098  0x00000087 call  0x00000064 
+ 00000099  0x00000088 branch  0x00003540 
+ 00000100  0x0000008b call  0x00003647 
+ 00000101  0x0000008c fetch  0x00000001 , 0x0000450f 
+ 00000102  0x0000008d compare  0x00000008 , 0x0000003f , 0x000000f8 
+ 00000103  0x0000008e nrtn  0x00000001 
+ 00000104  0x0000008f fetch  0x00000001 , 0x00004510 
+ 00000105  0x00000090 beq  0x000000ff , 0x000047fb 
+ 00000106  0x00000091 store  0x00000001 , 0x0000470d 
+ 00000107  0x00000092 rtn 
+ 00000108  0x00000095 until  0x0000003e , 0x00000033 
+ 00000109  0x00000096 jam  0x0000000d , 0x00008946 
+ 00000110  0x00000097 jam  0x00000010 , 0x0000896f 
+ 00000111  0x00000098 jam  0x000000cd , 0x00008a13 
+ 00000112  0x0000009a fetch  0x00000001 , 0x00008a06 
+ 00000113  0x0000009b and  0x0000003f , 0x000000fc , 0x0000003f 
+ 00000114  0x0000009c store  0x00000001 , 0x00008a06 
+ 00000115  0x0000009d branch  0x00002255 
+ 00000116  0x000000a0 call  0x00006b28 
+ 00000117  0x000000a1 call  0x00006b63 
+ 00000118  0x000000a2 branch  0x00006b26 
+ 00000119  0x000000a7 call  0x00006b22 
+ 00000120  0x000000a8 call  0x00006b2f 
+ 00000121  0x000000a9 call  0x00006b29 
+ 00000122  0x000000ab ifetcht  0x00000001 , 0x00000011 
+ 00000123  0x000000ac increase  0x00000001 , 0x00000011 
+ 00000124  0x000000ad force  0x00000000 , 0x00000007 
+ 00000125  0x000000af set0  0x00000022 , 0x00000000 
+ 00000126  0x000000b1 qisolate0  0x00000002 
+ 00000127  0x000000b2 branch  0x000000a1 , 0x00000001 
+ 00000128  0x000000b3 fetch  0x00000001 , 0x00008046 
+ 00000129  0x000000b4 set1  0x00000006 , 0x0000003f 
+ 00000130  0x000000b5 set1  0x00000007 , 0x0000003f 
+ 00000131  0x000000b6 store  0x00000001 , 0x00008046 
+ 00000132  0x000000b7 jam  0x00000002 , 0x00008047 
+ 00000133  0x000000b8 jam  0x00000082 , 0x00008047 
+ 00000134  0x000000b9 set0  0x00000007 , 0x0000003f 
+ 00000135  0x000000ba store  0x00000001 , 0x00008046 
+ 00000136  0x000000bb jam  0x0000008a , 0x00008047 
+ 00000137  0x000000bc nop  0x0000000b 
+ 00000138  0x000000bd jam  0x000000ca , 0x00008047 
+ 00000139  0x000000be nop  0x00000021 
+ 00000140  0x000000bf jam  0x0000004a , 0x00008047 
+ 00000141  0x000000c0 nop  0x0000002c 
+ 00000142  0x000000c1 jam  0x000000ca , 0x00008047 
+ 00000143  0x000000c2 nop  0x00000016 
+ 00000144  0x000000c3 jam  0x0000008a , 0x00008047 
+ 00000145  0x000000c4 nop  0x00000021 
+ 00000146  0x000000c5 jam  0x00000082 , 0x00008047 
+ 00000147  0x000000c6 nop  0x00000001 
+ 00000148  0x000000c7 jam  0x00000092 , 0x00008047 
+ 00000149  0x000000c8 nop  0x0000000a 
+ 00000150  0x000000c9 jam  0x000000b2 , 0x00008047 
+ 00000151  0x000000ca fetch  0x00000001 , 0x00008007 
+ 00000152  0x000000cb jam  0x00000092 , 0x00008047 
+ 00000153  0x000000cc nop  0x00000001 
+ 00000154  0x000000cd jam  0x00000082 , 0x00008047 
+ 00000155  0x000000ce nop  0x00000001 
+ 00000156  0x000000cf qisolate0  0x0000003f 
+ 00000157  0x000000d0 branch  0x0000007d , 0x00000001 
+ 00000158  0x000000d1 bmark1  0x00000022 , 0x000000a1 
+ 00000159  0x000000d2 set1  0x00000022 , 0x00000000 
+ 00000160  0x000000d3 branch  0x0000007e 
+ 00000161  0x000000d6 fetch  0x00000002 , 0x00008044 
+ 00000162  0x000000d7 increase  0x00000001 , 0x0000003f 
+ 00000163  0x000000d8 store  0x00000002 , 0x00008044 
+ 00000164  0x000000d9 increase  0x00000001 , 0x00000007 
+ 00000165  0x000000da compare  0x00000008 , 0x00000007 , 0x0000000f 
+ 00000166  0x000000db nbranch  0x0000007d , 0x00000001 
+ 00000167  0x000000dc loop  0x0000007a 
+ 00000168  0x000000dd branch  0x00006b26 
+ 00000169  0x000000e0 set1  0x00000007 , 0x00000002 
+ 00000170  0x000000e1 call  0x00006ee0 
+ 00000171  0x000000e2 nsetflag  0x00000001 , 0x00000007 , 0x00000002 
+ 00000172  0x000000e3 branch  0x00006eac 
+ 00000173  0x000000e7 call  0x000023f0 
+ 00000174  0x000000e8 fetch  0x00000003 , 0x000040bd 
+ 00000175  0x000000e9 rtn  0x00000034 
+ 00000176  0x000000ea rtn 
+ 00000177  0x000000eb fetch  0x00000001 , 0x00004a7a 
+ 00000178  0x000000ec nrtn  0x00000034 
+ 00000179  0x000000ed fetch  0x00000001 , 0x00004a7b 
+ 00000180  0x000000ee nrtn  0x00000034 
+ 00000181  0x000000ef fetch  0x00000001 , 0x00004720 
+ 00000182  0x000000f0 nrtn  0x00000034 
+ 00000183  0x000000f1 fetch  0x00000002 , 0x00004750 
+ 00000184  0x000000f2 nrtn  0x00000034 
+ 00000185  0x000000f3 fetch  0x00000001 , 0x00004a9f 
+ 00000186  0x000000f4 nrtn  0x00000034 
+ 00000187  0x000000f5 branch  0x00002467 
+ 00000188  0x000000f9 call  0x00003717 
+ 00000189  0x000000fa call  0x00007384 
+ 00000190  0x000000fb call  0x000000cc 
+ 00000191  0x000000fc call  0x000001a2 
+ 00000192  0x000000fd call  0x000000c2 
+ 00000193  0x000000fe branch  0x00003eb2 
+ 00000194  0x00000101 fetch  0x00000001 , 0x00004678 
+ 00000195  0x00000102 bne  0x00000000 , 0x000000c6 
+ 00000196  0x00000103 call  0x000035d3 
+ 00000197  0x00000104 branch  0x000058fc 
+ 00000198  0x00000106 setarg  0x000000a0 
+ 00000199  0x00000107 call  0x000040f9 
+ 00000200  0x00000108 fetch  0x00000001 , 0x00004422 
+ 00000201  0x00000109 rtnbit0  0x00000000 
+ 00000202  0x0000010a setarg  0x00000050 
+ 00000203  0x0000010b branch  0x000040f9 
+ 00000204  0x0000010e call  0x000000d4 
+ 00000205  0x0000010f rtn  0x0000002b 
+ 00000206  0x00000110 call  0x000035c8 
+ 00000207  0x00000111 call  0x0000323a 
+ 00000208  0x00000112 call  0x000000de 
+ 00000209  0x00000113 jam  0x0000000a , 0x000040a6 
+ 00000210  0x00000114 call  0x000000dc 
+ 00000211  0x00000115 branch  0x00003ec2 
+ 00000212  0x00000117 fetch  0x00000002 , 0x00004948 
+ 00000213  0x00000118 copy  0x0000003f , 0x00000012 
+ 00000214  0x00000119 arg  0x00000008 , 0x00000039 
+ 00000215  0x0000011b ifetcht  0x00000001 , 0x00000012 
+ 00000216  0x0000011c call  0x00000400 
+ 00000217  0x0000011d increase  0x00000001 , 0x00000012 
+ 00000218  0x0000011e loop  0x000000d7 
+ 00000219  0x0000011f rtn 
+ 00000220  0x00000121 call  0x00004184 
+ 00000221  0x00000122 branch  0x00004162 
+ 00000222  0x00000125 call  0x00003ef4 
+ 00000223  0x00000126 call  0x000000e1 
+ 00000224  0x00000127 branch  0x00003edd 
+ 00000225  0x0000012a setarg  0x00009000 
+ 00000226  0x0000012b store  0x00000002 , 0x000042f9 
+ 00000227  0x0000012c fetch  0x00000008 , 0x0000488e 
+ 00000228  0x0000012d bbit1  0x00000023 , 0x0000680c 
+ 00000229  0x0000012e setarg  0x000095b8 
+ 00000230  0x0000012f store  0x00000002 , 0x000048d6 
+ 00000231  0x00000130 fetch  0x00000008 , 0x0000488e 
+ 00000232  0x00000131 bbit1  0x00000020 , 0x0000680c 
+ 00000233  0x00000132 bbit1  0x00000021 , 0x0000680c 
+ 00000234  0x00000133 setarg  0x000094fc 
+ 00000235  0x00000134 store  0x00000002 , 0x000048d6 
+ 00000236  0x00000135 fetch  0x00000008 , 0x0000488e 
+ 00000237  0x00000136 bbit1  0x00000022 , 0x0000680c 
+ 00000238  0x00000137 setarg  0x00004ae8 
+ 00000239  0x00000138 store  0x00000002 , 0x000048d6 
+ 00000240  0x00000139 branch  0x0000680c 
+ 00000241  0x0000013c fetch  0x00000008 , 0x0000488e 
+ 00000242  0x0000013d bbit1  0x0000000f , 0x000000f4 
+ 00000243  0x0000013e branch  0x00003fd8 
+ 00000244  0x00000141 fetch  0x00000002 , 0x00004abd 
+ 00000245  0x00000143 fetcht  0x00000002 , 0x00004abf 
+ 00000246  0x00000144 isub  0x00000002 , 0x0000003e 
+ 00000247  0x00000145 rtn  0x00000002 
+ 00000248  0x00000146 fetch  0x00000001 , 0x00004678 
+ 00000249  0x00000147 beq  0x00000000 , 0x00003fe1 
+ 00000250  0x00000148 beq  0x00000001 , 0x00003feb 
+ 00000251  0x00000149 rtn 
+ 00000252  0x0000014c setarg  0x00000100 
+ 00000253  0x0000014d store  0x00000002 , 0x000040a4 
+ 00000254  0x0000014e jam  0x0000000c , 0x000040a6 
+ 00000255  0x0000014f branch  0x0000430f 
+ 00000256  0x00000152 call  0x00000103 
+ 00000257  0x00000153 call  0x00000397 
+ 00000258  0x00000154 branch  0x00004333 
+ 00000259  0x00000157 call  0x000001a2 
+ 00000260  0x00000158 setarg  0x00000000 
+ 00000261  0x00000159 store  0x00000002 , 0x0000499e 
+ 00000262  0x0000015a arg  0x0000494e , 0x00000006 
+ 00000263  0x0000015b arg  0x00004963 , 0x00000005 
+ 00000264  0x0000015c arg  0x00000014 , 0x00000039 
+ 00000265  0x0000015d call  0x00007cdc 
+ 00000266  0x0000015e call  0x000043af 
+ 00000267  0x0000015f setarg  0x0000494e 
+ 00000268  0x00000160 store  0x00000002 , 0x00004998 
+ 00000269  0x00000161 setarg  0x00004ada 
+ 00000270  0x00000162 store  0x00000002 , 0x0000499a 
+ 00000271  0x00000163 call  0x000043ad 
+ 00000272  0x00000164 call  0x000043ab 
+ 00000273  0x00000166 fetch  0x00000002 , 0x0000499e 
+ 00000274  0x00000167 increase  0x00000001 , 0x0000003f 
+ 00000275  0x00000168 store  0x00000002 , 0x0000499e 
+ 00000276  0x00000169 bbit1  0x00000009 , 0x00000103 
+ 00000277  0x0000016a fetcht  0x00000001 , 0x00004911 
+ 00000278  0x0000016b call  0x00006ee0 
+ 00000279  0x0000016c nbranch  0x00000111 , 0x00000001 
+ 00000280  0x0000016d call  0x000043af 
+ 00000281  0x0000016f fetcht  0x00000001 , 0x00004911 
+ 00000282  0x00000170 call  0x00006ee0 
+ 00000283  0x00000171 branch  0x00000119 , 0x00000001 
+ 00000284  0x00000172 call  0x00000151 
+ 00000285  0x00000173 call  0x00000140 
+ 00000286  0x00000174 call  0x000043ab 
+ 00000287  0x00000175 call  0x000043ad 
+ 00000288  0x00000177 fetch  0x00000002 , 0x0000494c 
+ 00000289  0x00000178 copy  0x0000003f , 0x00000012 
+ 00000290  0x00000179 jam  0x00000000 , 0x0000499d 
+ 00000291  0x0000017b ifetcht  0x00000001 , 0x00000012 
+ 00000292  0x0000017c fetch  0x00000002 , 0x0000494a 
+ 00000293  0x0000017d copy  0x0000003f , 0x00000011 
+ 00000294  0x0000017e copy  0x00000011 , 0x00000013 
+ 00000295  0x0000017f arg  0x00000014 , 0x00000039 
+ 00000296  0x00000181 ifetch  0x00000001 , 0x00000011 
+ 00000297  0x00000182 isub  0x00000002 , 0x0000003e 
+ 00000298  0x00000183 branch  0x00004366 , 0x00000005 
+ 00000299  0x00000184 increase  0x00000001 , 0x00000011 
+ 00000300  0x00000185 loop  0x00000128 
+ 00000301  0x00000187 increase  0x00000001 , 0x00000012 
+ 00000302  0x00000188 fetch  0x00000001 , 0x0000499d 
+ 00000303  0x00000189 increase  0x00000001 , 0x0000003f 
+ 00000304  0x0000018a store  0x00000001 , 0x0000499d 
+ 00000305  0x0000018b sub  0x0000003f , 0x0000000b , 0x0000003e 
+ 00000306  0x0000018c branch  0x00000123 , 0x00000002 
+ 00000307  0x0000018e branch  0x000001b9 
+ 00000308  0x00000191 fetch  0x00000002 , 0x00004998 
+ 00000309  0x00000192 copy  0x0000003f , 0x00000005 
+ 00000310  0x00000193 copy  0x00000011 , 0x0000003f 
+ 00000311  0x00000194 isub  0x00000013 , 0x0000003f 
+ 00000312  0x00000195 iadd  0x00000005 , 0x00000005 
+ 00000313  0x00000196 fetch  0x00000002 , 0x0000499a 
+ 00000314  0x00000197 copy  0x0000003f , 0x00000013 
+ 00000315  0x00000198 fetch  0x00000001 , 0x0000499d 
+ 00000316  0x00000199 iadd  0x00000013 , 0x00000013 
+ 00000317  0x0000019a ifetch  0x00000001 , 0x00000013 
+ 00000318  0x0000019b istore  0x00000001 , 0x00000005 
+ 00000319  0x0000019c branch  0x0000012d 
+ 00000320  0x000001a1 fetch  0x00000002 , 0x0000494a 
+ 00000321  0x000001a2 copy  0x0000003f , 0x00000012 
+ 00000322  0x000001a3 jam  0x00000000 , 0x0000499d 
+ 00000323  0x000001a5 jam  0x00000000 , 0x0000499c 
+ 00000324  0x000001a6 ifetcht  0x00000001 , 0x00000012 
+ 00000325  0x000001a7 isolate1  0x00000007 , 0x00000002 
+ 00000326  0x000001a8 branch  0x0000014b , 0x00000001 
+ 00000327  0x000001a9 call  0x00006ef1 
+ 00000328  0x000001aa call  0x00000165 
+ 00000329  0x000001ab ifetcht  0x00000001 , 0x00000012 
+ 00000330  0x000001ac call  0x00006f0b 
+ 00000331  0x000001af increase  0x00000001 , 0x00000012 
+ 00000332  0x000001b0 fetch  0x00000002 , 0x00004998 
+ 00000333  0x000001b1 call  0x0000437d 
+ 00000334  0x000001b2 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00000335  0x000001b3 branch  0x00000143 , 0x00000002 
+ 00000336  0x000001b4 rtn 
+ 00000337  0x000001b6 jam  0x00000000 , 0x0000499d 
+ 00000338  0x000001b8 call  0x000043a9 
+ 00000339  0x000001ba call  0x00000159 
+ 00000340  0x000001bb call  0x000043a7 
+ 00000341  0x000001bd call  0x00000159 
+ 00000342  0x000001be sub  0x0000003f , 0x0000000b , 0x0000003e 
+ 00000343  0x000001bf branch  0x00000152 , 0x00000002 
+ 00000344  0x000001c0 branch  0x000043a9 
+ 00000345  0x000001c3 jam  0x00000000 , 0x0000499c 
+ 00000346  0x000001c4 call  0x00000165 
+ 00000347  0x000001c5 fetch  0x00000002 , 0x0000499a 
+ 00000348  0x000001c7 copy  0x0000003f , 0x00000005 
+ 00000349  0x000001c8 fetch  0x00000001 , 0x0000499d 
+ 00000350  0x000001c9 iadd  0x00000005 , 0x00000005 
+ 00000351  0x000001ca fetch  0x00000001 , 0x0000499c 
+ 00000352  0x000001cb istore  0x00000001 , 0x00000005 
+ 00000353  0x000001cc fetch  0x00000001 , 0x0000499d 
+ 00000354  0x000001cd increase  0x00000001 , 0x0000003f 
+ 00000355  0x000001ce store  0x00000001 , 0x0000499d 
+ 00000356  0x000001cf rtn 
+ 00000357  0x000001d1 fetch  0x00000002 , 0x00004948 
+ 00000358  0x000001d2 copy  0x0000003f , 0x00000013 
+ 00000359  0x000001d3 arg  0x00000008 , 0x00000039 
+ 00000360  0x000001d5 ifetcht  0x00000001 , 0x00000013 
+ 00000361  0x000001d6 call  0x00006eed 
+ 00000362  0x000001d7 ifetcht  0x00000001 , 0x00000013 
+ 00000363  0x000001d8 call  0x00006f0b 
+ 00000364  0x000001d9 nop  0x000000f0 
+ 00000365  0x000001da ifetcht  0x00000001 , 0x00000013 
+ 00000366  0x000001db call  0x00006ee0 
+ 00000367  0x000001dc fetch  0x00000001 , 0x0000499c 
+ 00000368  0x000001dd rshift  0x0000003f , 0x0000003f 
+ 00000369  0x000001de setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00000370  0x000001df store  0x00000001 , 0x0000499c 
+ 00000371  0x000001e0 increase  0x00000001 , 0x00000013 
+ 00000372  0x000001e1 loop  0x00000168 
+ 00000373  0x000001e2 rtn 
+ 00000374  0x000001e5 call  0x00007de6 
+ 00000375  0x000001e7 fetcht  0x00000001 , 0x0000490f 
+ 00000376  0x000001e8 call  0x00006eac 
+ 00000377  0x000001ea fetch  0x00000002 , 0x0000494a 
+ 00000378  0x000001eb copy  0x0000003f , 0x00000012 
+ 00000379  0x000001ec arg  0x00000014 , 0x00000039 
+ 00000380  0x000001ee ifetcht  0x00000001 , 0x00000012 
+ 00000381  0x000001ef isolate1  0x00000007 , 0x00000002 
+ 00000382  0x000001f0 ncall  0x00006ef1 , 0x00000001 
+ 00000383  0x000001f1 increase  0x00000001 , 0x00000012 
+ 00000384  0x000001f2 loop  0x0000017c 
+ 00000385  0x000001f4 call  0x00003f1b 
+ 00000386  0x000001f5 jam  0x00000000 , 0x0000488c 
+ 00000387  0x000001f7 fetch  0x00000002 , 0x00004948 
+ 00000388  0x000001f8 copy  0x0000003f , 0x00000012 
+ 00000389  0x000001f9 arg  0x00000008 , 0x00000039 
+ 00000390  0x000001fb ifetcht  0x00000001 , 0x00000012 
+ 00000391  0x000001fc sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00000392  0x000001fd ncall  0x00000193 , 0x00000005 
+ 00000393  0x000001fe ifetcht  0x00000001 , 0x00000012 
+ 00000394  0x000001ff call  0x00006f0b 
+ 00000395  0x00000200 increase  0x00000001 , 0x00000012 
+ 00000396  0x00000201 loop  0x00000186 
+ 00000397  0x00000203 call  0x00006f4b 
+ 00000398  0x00000204 call  0x000023e1 
+ 00000399  0x00000205 fetcht  0x00000001 , 0x00004666 
+ 00000400  0x00000206 call  0x00004f0a 
+ 00000401  0x00000207 call  0x00004f0e 
+ 00000402  0x00000208 branch  0x000040dd 
+ 00000403  0x0000020b fetch  0x00000001 , 0x000049a0 
+ 00000404  0x0000020c branch  0x00006eac , 0x00000034 
+ 00000405  0x0000020e branch  0x00006ea5 
+ 00000406  0x00000211 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00000407  0x00000212 rtn  0x00000005 
+ 00000408  0x00000213 arg  0x00000003 , 0x00000008 
+ 00000409  0x00000214 call  0x00006e9c 
+ 00000410  0x00000215 isolate0  0x00000000 , 0x00000002 
+ 00000411  0x00000216 branch  0x0000019d , 0x00000001 
+ 00000412  0x00000217 lshift4  0x00000008 , 0x00000008 
+ 00000413  0x00000219 ifetch  0x00000001 , 0x00000005 
+ 00000414  0x0000021a iand  0x00000030 , 0x0000003f 
+ 00000415  0x0000021b ior  0x00000008 , 0x0000003f 
+ 00000416  0x0000021c istore  0x00000001 , 0x00000005 
+ 00000417  0x0000021d rtn 
+ 00000418  0x0000021f call  0x00007de6 
+ 00000419  0x00000220 fetcht  0x00000001 , 0x0000490f 
+ 00000420  0x00000221 call  0x00004f0a 
+ 00000421  0x00000223 fetch  0x00000008 , 0x0000488e 
+ 00000422  0x00000224 isolate1  0x0000000a , 0x0000003f 
+ 00000423  0x00000225 call  0x000001cf , 0x00000001 
+ 00000424  0x00000227 setarg  0x0000491f 
+ 00000425  0x00000228 store  0x00000002 , 0x00004948 
+ 00000426  0x0000022a setarg  0x00004927 
+ 00000427  0x0000022b store  0x00000002 , 0x0000494a 
+ 00000428  0x0000022d setarg  0x0000493c 
+ 00000429  0x0000022e store  0x00000002 , 0x0000494c 
+ 00000430  0x0000022f call  0x000001b9 
+ 00000431  0x00000230 call  0x000023e1 
+ 00000432  0x00000231 fetch  0x00000002 , 0x0000494a 
+ 00000433  0x00000232 copy  0x0000003f , 0x00000012 
+ 00000434  0x00000233 arg  0x00000014 , 0x00000039 
+ 00000435  0x00000235 ifetcht  0x00000001 , 0x00000012 
+ 00000436  0x00000236 isolate1  0x00000007 , 0x00000002 
+ 00000437  0x00000237 ncall  0x00006f0b , 0x00000001 
+ 00000438  0x00000238 increase  0x00000001 , 0x00000012 
+ 00000439  0x00000239 loop  0x00003f09 
+ 00000440  0x0000023a rtn 
+ 00000441  0x0000023d fetch  0x00000002 , 0x00004948 
+ 00000442  0x0000023e copy  0x0000003f , 0x00000012 
+ 00000443  0x0000023f arg  0x00000008 , 0x00000039 
+ 00000444  0x00000241 ifetcht  0x00000001 , 0x00000012 
+ 00000445  0x00000242 call  0x00006f0b 
+ 00000446  0x00000243 call  0x000001c2 
+ 00000447  0x00000244 increase  0x00000001 , 0x00000012 
+ 00000448  0x00000245 loop  0x000001bc 
+ 00000449  0x00000246 rtn 
+ 00000450  0x00000249 call  0x00006ec0 
+ 00000451  0x0000024a sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00000452  0x0000024b rtn  0x00000005 
+ 00000453  0x0000024c arg  0x00000000 , 0x00000008 
+ 00000454  0x0000024d call  0x00006e9c 
+ 00000455  0x0000024e isolate0  0x00000000 , 0x00000002 
+ 00000456  0x0000024f branch  0x000001ca , 0x00000001 
+ 00000457  0x00000250 lshift4  0x00000008 , 0x00000008 
+ 00000458  0x00000252 ifetch  0x00000001 , 0x00000005 
+ 00000459  0x00000253 iand  0x00000030 , 0x0000003f 
+ 00000460  0x00000254 ior  0x00000008 , 0x0000003f 
+ 00000461  0x00000255 istore  0x00000001 , 0x00000005 
+ 00000462  0x00000256 rtn 
+ 00000463  0x00000259 fetch  0x00000001 , 0x00008142 
+ 00000464  0x0000025a set0  0x00000003 , 0x0000003f 
+ 00000465  0x0000025b store  0x00000001 , 0x00008142 
+ 00000466  0x0000025c rtn 
+ 00000467  0x0000025f fetch  0x00000001 , 0x00004ac2 
+ 00000468  0x00000260 rtn  0x00000034 
+ 00000469  0x00000261 increase  0xffffffff , 0x0000003f 
+ 00000470  0x00000262 store  0x00000001 , 0x00004ac2 
+ 00000471  0x00000263 fetch  0x00000008 , 0x0000488e 
+ 00000472  0x00000264 bbit1  0x00000028 , 0x000001dc 
+ 00000473  0x00000265 fetch  0x00000001 , 0x00004ac2 
+ 00000474  0x00000266 branch  0x00004166 , 0x00000034 
+ 00000475  0x00000267 branch  0x0000416c 
+ 00000476  0x0000026a fetch  0x00000001 , 0x00004ac2 
+ 00000477  0x0000026b branch  0x0000413c , 0x00000034 
+ 00000478  0x0000026c branch  0x0000413a 
+ 00000479  0x00000271 fetch  0x00000001 , 0x00004678 
+ 00000480  0x00000272 beq  0x00000000 , 0x000001e3 
+ 00000481  0x00000273 fetch  0x00000001 , 0x00004753 
+ 00000482  0x00000274 rtneq  0x00000000 
+ 00000483  0x00000276 fetch  0x00000001 , 0x00004ac5 
+ 00000484  0x00000277 rtnne  0x00000000 
+ 00000485  0x00000278 fetch  0x00000001 , 0x00004ace 
+ 00000486  0x00000279 beq  0x0000005a , 0x00004193 
+ 00000487  0x0000027a fetch  0x00000002 , 0x00004741 
+ 00000488  0x0000027b rtn  0x00000034 
+ 00000489  0x0000027c fetch  0x00000002 , 0x0000471e 
+ 00000490  0x0000027d fetcht  0x00000002 , 0x00004741 
+ 00000491  0x0000027e isub  0x00000002 , 0x00000002 
+ 00000492  0x0000027f fetch  0x00000002 , 0x00004ac3 
+ 00000493  0x00000280 isub  0x00000002 , 0x0000003f 
+ 00000494  0x00000281 branch  0x000001f2 , 0x00000002 
+ 00000495  0x00000282 call  0x0000419d 
+ 00000496  0x00000283 call  0x000041a9 
+ 00000497  0x00000284 branch  0x000041a3 
+ 00000498  0x00000287 call  0x00004199 
+ 00000499  0x00000288 call  0x000041a5 
+ 00000500  0x00000289 branch  0x000001f5 
+ 00000501  0x0000028b fetch  0x00000001 , 0x0000470d 
+ 00000502  0x0000028c bbit0  0x00000001 , 0x000041a3 
+ 00000503  0x0000028d jam  0x00000000 , 0x00004ac2 
+ 00000504  0x0000028e fetcht  0x00000001 , 0x00004914 
+ 00000505  0x0000028f branch  0x00006ef1 
+ 00000506  0x00000292 call  0x000040e0 
+ 00000507  0x00000293 call  0x000040cc 
+ 00000508  0x00000294 call  0x000040dd 
+ 00000509  0x00000297 call  0x00004100 
+ 00000510  0x00000298 call  0x000001df 
+ 00000511  0x00000299 call  0x000041ab 
+ 00000512  0x0000029a call  0x000001d3 
+ 00000513  0x0000029b call  0x0000413e 
+ 00000514  0x0000029c call  0x000003d6 
+ 00000515  0x0000029e call  0x00000217 
+ 00000516  0x0000029f call  0x0000428f 
+ 00000517  0x000002a0 call  0x000042c4 
+ 00000518  0x000002a3 call  0x0000326c 
+ 00000519  0x000002a4 call  0x00003507 
+ 00000520  0x000002a5 call  0x000058f6 
+ 00000521  0x000002a6 call  0x000042b5 
+ 00000522  0x000002a7 call  0x000042bf 
+ 00000523  0x000002aa call  0x00004299 
+ 00000524  0x000002ab call  0x000042a4 
+ 00000525  0x000002ac call  0x0000550d 
+ 00000526  0x000002ad call  0x000042ad 
+ 00000527  0x000002ae call  0x00005510 
+ 00000528  0x000002af call  0x000042b2 
+ 00000529  0x000002b0 call  0x000042a1 
+ 00000530  0x000002b2 call  0x00005527 
+ 00000531  0x000002b3 call  0x0000429e 
+ 00000532  0x000002b4 call  0x000042c9 
+ 00000533  0x000002b5 call  0x000042cc 
+ 00000534  0x000002b6 branch  0x000042d5 
+ 00000535  0x000002bb call  0x00000219 
+ 00000536  0x000002be branch  0x0000021f 
+ 00000537  0x000002c2 jam  0x00000000 , 0x000048a9 
+ 00000538  0x000002c3 fetch  0x00000001 , 0x000048a7 
+ 00000539  0x000002c4 rtn  0x00000034 
+ 00000540  0x000002c5 jam  0x00000000 , 0x000048a7 
+ 00000541  0x000002c6 call  0x00000225 
+ 00000542  0x000002c7 branch  0x00006c99 
+ 00000543  0x000002ca jam  0x00000000 , 0x000048aa 
+ 00000544  0x000002cb fetch  0x00000001 , 0x000048a8 
+ 00000545  0x000002cc rtn  0x00000034 
+ 00000546  0x000002cd jam  0x00000000 , 0x000048a8 
+ 00000547  0x000002ce call  0x00004045 
+ 00000548  0x000002cf branch  0x00006c99 
+ 00000549  0x000002d2 fetch  0x00000008 , 0x0000488e 
+ 00000550  0x000002d3 bbit1  0x0000000f , 0x00005594 
+ 00000551  0x000002d4 bbit1  0x0000000e , 0x00004045 
+ 00000552  0x000002d5 rtn 
+ 00000553  0x000002d7 call  0x0000442e 
+ 00000554  0x000002d9 call  0x00000249 
+ 00000555  0x000002da call  0x0000022d 
+ 00000556  0x000002db branch  0x000043dd 
+ 00000557  0x000002de fetch  0x00000001 , 0x000049aa 
+ 00000558  0x000002df beq  0x00000046 , 0x000044f2 
+ 00000559  0x000002e0 beq  0x0000004b , 0x000044f8 
+ 00000560  0x000002e1 beq  0x0000004e , 0x000044fe 
+ 00000561  0x000002e2 beq  0x0000004a , 0x00004500 
+ 00000562  0x000002e3 beq  0x0000004d , 0x00004502 
+ 00000563  0x000002e4 beq  0x000000a5 , 0x00004504 
+ 00000564  0x000002e5 beq  0x000000a6 , 0x0000450b 
+ 00000565  0x000002e6 beq  0x000000a7 , 0x0000450d 
+ 00000566  0x000002e7 beq  0x000000a8 , 0x0000450f 
+ 00000567  0x000002e8 beq  0x000000a9 , 0x00004511 
+ 00000568  0x000002e9 beq  0x000000aa , 0x0000451c 
+ 00000569  0x000002ea beq  0x000000ad , 0x00004523 
+ 00000570  0x000002eb beq  0x000000ab , 0x0000452a 
+ 00000571  0x000002ec beq  0x000000ac , 0x00004535 
+ 00000572  0x000002ed beq  0x000000af , 0x0000023e 
+ 00000573  0x000002ee rtn 
+ 00000574  0x000002f1 fetch  0x00000001 , 0x00004aa1 
+ 00000575  0x000002f2 beq  0x00000003 , 0x00000246 
+ 00000576  0x000002f3 fetch  0x00000001 , 0x00004678 
+ 00000577  0x000002f4 bne  0x00000000 , 0x00000244 
+ 00000578  0x000002f5 fetch  0x00000001 , 0x00004aa1 
+ 00000579  0x000002f6 beq  0x00000002 , 0x00000246 
+ 00000580  0x000002f8 setarg  0x000000f0 
+ 00000581  0x000002f9 branch  0x000044aa 
+ 00000582  0x000002fb jam  0x00000008 , 0x00004a9d 
+ 00000583  0x000002fc jam  0x0000000b , 0x00004a9e 
+ 00000584  0x000002fd branch  0x0000453e 
+ 00000585  0x00000300 fetch  0x00000001 , 0x000049ab 
+ 00000586  0x00000301 isolate1  0x00000000 , 0x0000003f 
+ 00000587  0x00000302 call  0x000044f0 , 0x00000001 
+ 00000588  0x00000303 call  0x00000269 
+ 00000589  0x00000304 fetch  0x00000001 , 0x00004a7a 
+ 00000590  0x00000305 ncall  0x0000445b , 0x00000034 
+ 00000591  0x00000306 fetch  0x00000001 , 0x0000474f 
+ 00000592  0x00000307 rtneq  0x000000ff 
+ 00000593  0x00000308 fetch  0x00000008 , 0x0000488e 
+ 00000594  0x00000309 bbit0  0x00000034 , 0x00000255 
+ 00000595  0x0000030a fetch  0x00000001 , 0x00004a93 
+ 00000596  0x0000030b branch  0x00000256 
+ 00000597  0x0000030e fetch  0x00000001 , 0x00004a84 
+ 00000598  0x0000030f fetcht  0x00000001 , 0x00004a7a 
+ 00000599  0x00000310 ixor  0x00000002 , 0x0000003f 
+ 00000600  0x00000314 rtn  0x00000005 
+ 00000601  0x00000316 fetch  0x00000001 , 0x000049aa 
+ 00000602  0x00000317 beq  0x00000029 , 0x00004451 
+ 00000603  0x00000318 beq  0x0000004c , 0x00004459 
+ 00000604  0x00000319 beq  0x0000003a , 0x0000027d 
+ 00000605  0x0000031a beq  0x0000003b , 0x00000283 
+ 00000606  0x0000031b beq  0x0000003c , 0x00000289 
+ 00000607  0x0000031c beq  0x0000003d , 0x00000293 
+ 00000608  0x0000031d sub  0x0000003f , 0x00000045 , 0x0000003e 
+ 00000609  0x0000031e nrtn  0x00000002 
+ 00000610  0x0000031f arg  0x0000003a , 0x00000002 
+ 00000611  0x00000320 isub  0x00000002 , 0x0000003f 
+ 00000612  0x00000321 nrtn  0x00000002 
+ 00000613  0x00000322 arg  0x00004a86 , 0x00000006 
+ 00000614  0x00000323 iadd  0x00000006 , 0x00000006 
+ 00000615  0x00000324 ifetch  0x00000001 , 0x00000006 
+ 00000616  0x00000325 branch  0x000044aa 
+ 00000617  0x00000328 fetch  0x00000001 , 0x00004aa1 
+ 00000618  0x00000329 rtnne  0x00000002 
+ 00000619  0x0000032a fetch  0x00000001 , 0x000049aa 
+ 00000620  0x0000032b beq  0x00000035 , 0x0000026e 
+ 00000621  0x0000032c rtn 
+ 00000622  0x0000032e fetch  0x00000001 , 0x00004a7d 
+ 00000623  0x0000032f rtneq  0x00000001 
+ 00000624  0x00000330 jam  0x00000040 , 0x00004a9d 
+ 00000625  0x00000331 jam  0x00000035 , 0x00004a9e 
+ 00000626  0x00000332 branch  0x0000453e 
+ 00000627  0x00000335 call  0x00004468 
+ 00000628  0x00000336 fetch  0x00000001 , 0x000049aa 
+ 00000629  0x00000337 beq  0x00000052 , 0x0000448d 
+ 00000630  0x00000338 beq  0x00000051 , 0x00004491 
+ 00000631  0x00000339 beq  0x00000050 , 0x00004495 
+ 00000632  0x0000033a beq  0x0000004f , 0x00004499 
+ 00000633  0x0000033d beq  0x0000001a , 0x000044ac 
+ 00000634  0x0000033e beq  0x00000008 , 0x000044bc 
+ 00000635  0x0000033f beq  0x00000014 , 0x000044c3 
+ 00000636  0x00000340 rtn 
+ 00000637  0x00000343 fetch  0x00000001 , 0x00004aa1 
+ 00000638  0x00000344 beq  0x00000002 , 0x00000281 
+ 00000639  0x00000345 setarg  0x000000f6 
+ 00000640  0x00000346 branch  0x000044aa 
+ 00000641  0x00000348 setarg  0x000000f8 
+ 00000642  0x00000349 branch  0x000044aa 
+ 00000643  0x0000034b fetch  0x00000001 , 0x00004aa1 
+ 00000644  0x0000034c beq  0x00000002 , 0x00000287 
+ 00000645  0x0000034d setarg  0x000000f1 
+ 00000646  0x0000034e branch  0x000044aa 
+ 00000647  0x00000350 setarg  0x000000f9 
+ 00000648  0x00000351 branch  0x000044aa 
+ 00000649  0x00000353 fetch  0x00000001 , 0x00004aa1 
+ 00000650  0x00000354 beq  0x00000002 , 0x0000028f 
+ 00000651  0x00000355 beq  0x00000001 , 0x00000291 
+ 00000652  0x00000356 jam  0x00000008 , 0x00004a9d 
+ 00000653  0x00000357 jam  0x0000000c , 0x00004a9e 
+ 00000654  0x00000358 branch  0x0000453e 
+ 00000655  0x0000035a setarg  0x000000f7 
+ 00000656  0x0000035b branch  0x000044aa 
+ 00000657  0x0000035d setarg  0x000000fe 
+ 00000658  0x0000035e branch  0x000044aa 
+ 00000659  0x00000360 fetch  0x00000001 , 0x00004aa1 
+ 00000660  0x00000361 beq  0x00000002 , 0x00000297 
+ 00000661  0x00000362 setarg  0x000000e8 
+ 00000662  0x00000363 branch  0x000044aa 
+ 00000663  0x00000365 jam  0x0000000a , 0x00004a9d 
+ 00000664  0x00000366 jam  0x00000020 , 0x00004a9e 
+ 00000665  0x00000367 branch  0x0000453e 
+ 00000666  0x0000036a fetch  0x00000001 , 0x00004750 
+ 00000667  0x0000036b rtnne  0x00000000 
+ 00000668  0x0000036c jam  0x00000000 , 0x0000470d 
+ 00000669  0x0000036d call  0x000041a3 
+ 00000670  0x0000036e call  0x00004184 
+ 00000671  0x0000036f branch  0x00004677 
+ 00000672  0x00000373 fetch  0x00000008 , 0x0000488e 
+ 00000673  0x00000374 bbit1  0x0000000f , 0x00003f31 
+ 00000674  0x00000375 branch  0x00003ec8 
+ 00000675  0x00000378 call  0x000002a5 
+ 00000676  0x00000379 branch  0x00003fa4 
+ 00000677  0x0000037c fetch  0x00000001 , 0x00004678 
+ 00000678  0x0000037d arg  0x000000ff , 0x00000002 
+ 00000679  0x0000037e isub  0x00000002 , 0x0000003e 
+ 00000680  0x0000037f branch  0x00003fca , 0x00000005 
+ 00000681  0x00000380 fetch  0x00000002 , 0x000046a0 
+ 00000682  0x00000381 arg  0x0000aa55 , 0x00000002 
+ 00000683  0x00000382 isub  0x00000002 , 0x0000003e 
+ 00000684  0x00000383 branch  0x000067cf , 0x00000005 
+ 00000685  0x00000384 branch  0x00003fca 
+ 00000686  0x00000388 copy  0x00000011 , 0x00000006 
+ 00000687  0x00000389 ifetch  0x00000003 , 0x00000006 
+ 00000688  0x0000038a store  0x00000003 , 0x0000439b 
+ 00000689  0x0000038b beq  0x00000001 , 0x00004919 
+ 00000690  0x0000038c beq  0x00000007 , 0x0000495c 
+ 00000691  0x0000038d beq  0x00000009 , 0x00004938 
+ 00000692  0x0000038e beq  0x0000000b , 0x00004952 
+ 00000693  0x0000038f beq  0x00000008 , 0x00004971 
+ 00000694  0x00000390 beq  0x0000000c , 0x000002bb 
+ 00000695  0x00000391 beq  0x0000000a , 0x0000499f 
+ 00000696  0x00000392 beq  0x00000012 , 0x000049c5 
+ 00000697  0x00000393 beq  0x00000052 , 0x000049cb 
+ 00000698  0x00000394 branch  0x00002b76 
+ 00000699  0x00000397 ifetch  0x00000002 , 0x00000006 
+ 00000700  0x00000398 store  0x00000002 , 0x00000693 
+ 00000701  0x00000399 iforce  0x00000011 
+ 00000702  0x0000039a fetcht  0x00000002 , 0x0000439c 
+ 00000703  0x0000039b fetch  0x00000002 , 0x00004334 
+ 00000704  0x0000039c isub  0x00000002 , 0x0000003e 
+ 00000705  0x0000039d nbranch  0x00002d2e , 0x00000005 
+ 00000706  0x0000039e branch  0x00004999 
+ 00000707  0x000003a0 fetcht  0x00000002 , 0x0000439c 
+ 00000708  0x000003a1 fetch  0x00000001 , 0x00004323 
+ 00000709  0x000003a2 bbit1  0x00000003 , 0x000002f9 
+ 00000710  0x000003a5 fetch  0x00000008 , 0x0000488e 
+ 00000711  0x000003a6 bbit0  0x0000000b , 0x000002c9 
+ 00000712  0x000003a7 bbit0  0x00000019 , 0x000002cb 
+ 00000713  0x000003a8 fetch  0x00000002 , 0x0000439c 
+ 00000714  0x000003a9 beq  0x00000030 , 0x00002de1 
+ 00000715  0x000003ab fetch  0x00000002 , 0x0000439c 
+ 00000716  0x000003ac beq  0x00000005 , 0x000049b7 
+ 00000717  0x000003ad beq  0x00000010 , 0x000049ba 
+ 00000718  0x000003af fetcht  0x00000002 , 0x0000439c 
+ 00000719  0x000003b0 fetch  0x00000008 , 0x0000488e 
+ 00000720  0x000003b1 bbit1  0x00000023 , 0x000002db 
+ 00000721  0x000003b2 fetch  0x00000002 , 0x00004334 
+ 00000722  0x000003b3 isub  0x00000002 , 0x0000003e 
+ 00000723  0x000003b4 nbranch  0x000002db , 0x00000005 
+ 00000724  0x000003b5 call  0x00002e24 
+ 00000725  0x000003b6 fetcht  0x00000002 , 0x000048d6 
+ 00000726  0x000003b7 copy  0x00000002 , 0x00000006 
+ 00000727  0x000003b8 ifetcht  0x00000002 , 0x00000006 
+ 00000728  0x000003b9 increase  0x00000001 , 0x00000002 
+ 00000729  0x000003ba call  0x00007db2 
+ 00000730  0x000003bb branch  0x000002eb 
+ 00000731  0x000003bf call  0x00002cb0 
+ 00000732  0x000003c0 nbranch  0x00002de1 , 0x00000005 
+ 00000733  0x000003c1 call  0x00002d26 , 0x00000028 
+ 00000734  0x000003c2 rtn  0x00000028 
+ 00000735  0x000003c3 call  0x00002cbb 
+ 00000736  0x000003c4 increase  0xfffffffe , 0x00000006 
+ 00000737  0x000003c5 ifetch  0x00000002 , 0x00000006 
+ 00000738  0x000003c6 arg  0x00002a00 , 0x00000002 
+ 00000739  0x000003c7 isub  0x00000002 , 0x0000003e 
+ 00000740  0x000003c8 branch  0x00002d14 , 0x00000005 
+ 00000741  0x000003c9 copy  0x00000006 , 0x00000013 
+ 00000742  0x000003ca call  0x00002e24 
+ 00000743  0x000003cb copy  0x00000013 , 0x00000006 
+ 00000744  0x000003cc ifetcht  0x00000001 , 0x00000006 
+ 00000745  0x000003cd increase  0x00000001 , 0x00000002 
+ 00000746  0x000003ce call  0x00007db2 
+ 00000747  0x000003d0 copy  0x0000003f , 0x00000013 
+ 00000748  0x000003d1 copy  0x0000003f , 0x00000011 
+ 00000749  0x000003d2 call  0x00007c6f 
+ 00000750  0x000003d3 call  0x00002dee 
+ 00000751  0x000003d4 setarg  0x0000000b 
+ 00000752  0x000003d5 istore  0x00000001 , 0x00000005 
+ 00000753  0x000003d6 fetch  0x00000002 , 0x0000439c 
+ 00000754  0x000003d7 beq  0x0000001f , 0x000002f6 
+ 00000755  0x000003d8 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00000756  0x000003d9 call  0x00007c69 
+ 00000757  0x000003da branch  0x00007cdc 
+ 00000758  0x000003dd add  0x00000013 , 0xffffffff , 0x00000039 
+ 00000759  0x000003de arg  0x00004ae6 , 0x00000006 
+ 00000760  0x000003df branch  0x00007cdc 
+ 00000761  0x000003e3 fetch  0x00000002 , 0x00004334 
+ 00000762  0x000003e4 isub  0x00000002 , 0x0000003e 
+ 00000763  0x000003e5 nbranch  0x000002c6 , 0x00000005 
+ 00000764  0x000003e6 call  0x00002da5 
+ 00000765  0x000003e7 nbranch  0x000002cb , 0x00000028 
+ 00000766  0x000003e8 branch  0x00002d24 
+ 00000767  0x000003ec fetch  0x00000001 , 0x00004aa0 
+ 00000768  0x000003ed beq  0x00000002 , 0x00000320 
+ 00000769  0x000003ee branch  0x000046cd 
+ 00000770  0x000003f0 copy  0x00000002 , 0x0000003f 
+ 00000771  0x000003f1 jam  0x00000005 , 0x00004a6f 
+ 00000772  0x000003f2 fetcht  0x00000001 , 0x000049a6 
+ 00000773  0x000003f3 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00000774  0x000003f4 branch  0x00000320 , 0x00000005 
+ 00000775  0x000003f5 beq  0x000000e8 , 0x0000032c 
+ 00000776  0x000003f6 beq  0x000000e9 , 0x00000332 
+ 00000777  0x000003f7 beq  0x000000ea , 0x00000336 
+ 00000778  0x000003f8 beq  0x000000eb , 0x0000033a 
+ 00000779  0x000003f9 beq  0x000000ec , 0x0000033e 
+ 00000780  0x000003fa beq  0x000000ed , 0x00000342 
+ 00000781  0x000003fb beq  0x000000ee , 0x00000346 
+ 00000782  0x000003fc beq  0x000000ef , 0x0000034a 
+ 00000783  0x000003fe beq  0x000000f0 , 0x0000034e 
+ 00000784  0x000003ff beq  0x000000f1 , 0x00000352 
+ 00000785  0x00000400 beq  0x000000f2 , 0x00000356 
+ 00000786  0x00000401 beq  0x000000f3 , 0x0000035a 
+ 00000787  0x00000402 beq  0x000000f4 , 0x0000035e 
+ 00000788  0x00000403 beq  0x000000f5 , 0x00000362 
+ 00000789  0x00000404 beq  0x000000f6 , 0x00000366 
+ 00000790  0x00000405 beq  0x000000f7 , 0x0000036a 
+ 00000791  0x00000407 beq  0x000000f8 , 0x00000372 
+ 00000792  0x00000408 beq  0x000000f9 , 0x00000376 
+ 00000793  0x00000409 beq  0x000000fa , 0x0000037a 
+ 00000794  0x0000040b beq  0x000000fb , 0x0000037e 
+ 00000795  0x0000040c beq  0x000000fc , 0x00000382 
+ 00000796  0x0000040d beq  0x000000fd , 0x00000386 
+ 00000797  0x0000040f beq  0x000000fe , 0x0000038a 
+ 00000798  0x00000411 beq  0x000000ff , 0x0000038e 
+ 00000799  0x00000412 branch  0x000046e6 
+ 00000800  0x00000416 jam  0x00000002 , 0x000049a9 
+ 00000801  0x00000417 fetch  0x00000001 , 0x000049a6 
+ 00000802  0x00000418 call  0x000046ef , 0x00000034 
+ 00000803  0x00000419 jam  0x00000000 , 0x00004aa0 
+ 00000804  0x0000041a fetch  0x00000001 , 0x00004678 
+ 00000805  0x0000041b beq  0x00000000 , 0x00000329 
+ 00000806  0x0000041c setarg  0x00000005 
+ 00000807  0x0000041d store  0x00000003 , 0x00004a6f 
+ 00000808  0x0000041e branch  0x000046e6 
+ 00000809  0x00000421 setarg  0x00000003 
+ 00000810  0x00000422 store  0x00000003 , 0x00004a6f 
+ 00000811  0x00000423 branch  0x000046e6 
+ 00000812  0x00000426 fetch  0x00000001 , 0x00004678 
+ 00000813  0x00000427 bne  0x00000000 , 0x00004715 
+ 00000814  0x00000428 setarg  0x00000183 
+ 00000815  0x0000042b store  0x00000002 , 0x00004a70 
+ 00000816  0x0000042c jam  0x00000003 , 0x00004a6f 
+ 00000817  0x0000042d branch  0x000046e6 
+ 00000818  0x00000430 fetch  0x00000001 , 0x00004678 
+ 00000819  0x00000431 bne  0x00000000 , 0x00004718 
+ 00000820  0x00000432 setarg  0x000000ea 
+ 00000821  0x00000433 branch  0x0000032f 
+ 00000822  0x00000436 fetch  0x00000001 , 0x00004678 
+ 00000823  0x00000437 bne  0x00000000 , 0x0000471a 
+ 00000824  0x00000438 setarg  0x000000e9 
+ 00000825  0x00000439 branch  0x0000032f 
+ 00000826  0x0000043c fetch  0x00000001 , 0x00004678 
+ 00000827  0x0000043d bne  0x00000000 , 0x0000471c 
+ 00000828  0x0000043e setarg  0x000000e2 
+ 00000829  0x0000043f branch  0x0000032f 
+ 00000830  0x00000442 fetch  0x00000001 , 0x00004678 
+ 00000831  0x00000443 bne  0x00000000 , 0x0000471e 
+ 00000832  0x00000444 setarg  0x000000b6 
+ 00000833  0x00000445 branch  0x0000032f 
+ 00000834  0x00000448 fetch  0x00000001 , 0x00004678 
+ 00000835  0x00000449 bne  0x00000000 , 0x00004720 
+ 00000836  0x0000044a setarg  0x000000b5 
+ 00000837  0x0000044b branch  0x0000032f 
+ 00000838  0x0000044e fetch  0x00000001 , 0x00004678 
+ 00000839  0x0000044f bne  0x00000000 , 0x00004722 
+ 00000840  0x00000450 setarg  0x000000cd 
+ 00000841  0x00000451 branch  0x0000032f 
+ 00000842  0x00000454 fetch  0x00000001 , 0x00004678 
+ 00000843  0x00000455 bne  0x00000000 , 0x00004724 
+ 00000844  0x00000456 setarg  0x000000b7 
+ 00000845  0x00000457 branch  0x0000032f 
+ 00000846  0x0000045a fetch  0x00000001 , 0x00004678 
+ 00000847  0x0000045b bne  0x00000000 , 0x00004726 
+ 00000848  0x0000045c setarg  0x00000223 
+ 00000849  0x0000045d branch  0x0000032f 
+ 00000850  0x00000460 fetch  0x00000001 , 0x00004678 
+ 00000851  0x00000461 bne  0x00000000 , 0x00004728 
+ 00000852  0x00000462 setarg  0x0000018a 
+ 00000853  0x00000463 branch  0x0000032f 
+ 00000854  0x00000466 fetch  0x00000001 , 0x00004678 
+ 00000855  0x00000467 bne  0x00000000 , 0x0000472a 
+ 00000856  0x00000468 setarg  0x00000194 
+ 00000857  0x00000469 branch  0x0000032f 
+ 00000858  0x0000046c fetch  0x00000001 , 0x00004678 
+ 00000859  0x0000046d bne  0x00000000 , 0x0000472c 
+ 00000860  0x0000046e setarg  0x0000022a 
+ 00000861  0x0000046f branch  0x0000032f 
+ 00000862  0x00000472 fetch  0x00000001 , 0x00004678 
+ 00000863  0x00000473 bne  0x00000000 , 0x0000472e 
+ 00000864  0x00000474 setarg  0x00000192 
+ 00000865  0x00000475 branch  0x0000032f 
+ 00000866  0x00000478 fetch  0x00000001 , 0x00004678 
+ 00000867  0x00000479 bne  0x00000000 , 0x00004730 
+ 00000868  0x0000047a setarg  0x00000221 
+ 00000869  0x0000047b branch  0x0000032f 
+ 00000870  0x0000047e fetch  0x00000001 , 0x00004678 
+ 00000871  0x0000047f bne  0x00000000 , 0x00004732 
+ 00000872  0x00000480 setarg  0x00000224 
+ 00000873  0x00000481 branch  0x0000032f 
+ 00000874  0x00000484 fetch  0x00000001 , 0x00004678 
+ 00000875  0x00000485 bne  0x00000000 , 0x00004737 
+ 00000876  0x00000486 fetch  0x00000001 , 0x00004aa1 
+ 00000877  0x00000487 beq  0x00000001 , 0x00000370 
+ 00000878  0x00000488 setarg  0x000001ae 
+ 00000879  0x00000489 branch  0x0000032f 
+ 00000880  0x0000048c setarg  0x00000307 
+ 00000881  0x0000048d branch  0x0000032f 
+ 00000882  0x00000490 fetch  0x00000001 , 0x00004678 
+ 00000883  0x00000491 bne  0x00000000 , 0x0000473d 
+ 00000884  0x00000492 setarg  0x00000070 
+ 00000885  0x00000493 branch  0x0000032f 
+ 00000886  0x00000496 fetch  0x00000001 , 0x00004678 
+ 00000887  0x00000497 bne  0x00000000 , 0x0000473f 
+ 00000888  0x00000498 setarg  0x0000006f 
+ 00000889  0x00000499 branch  0x0000032f 
+ 00000890  0x0000049c fetch  0x00000001 , 0x00004678 
+ 00000891  0x0000049d bne  0x00000000 , 0x00004741 
+ 00000892  0x0000049e setarg  0x00000030 
+ 00000893  0x0000049f branch  0x0000032f 
+ 00000894  0x000004a2 fetch  0x00000001 , 0x00004678 
+ 00000895  0x000004a3 bne  0x00000000 , 0x00004743 
+ 00000896  0x000004a4 setarg  0x000000b8 
+ 00000897  0x000004a5 branch  0x0000032f 
+ 00000898  0x000004a8 fetch  0x00000001 , 0x00004678 
+ 00000899  0x000004a9 bne  0x00000000 , 0x00004745 
+ 00000900  0x000004aa setarg  0x00000225 
+ 00000901  0x000004ab branch  0x0000032f 
+ 00000902  0x000004ae fetch  0x00000001 , 0x00004678 
+ 00000903  0x000004af bne  0x00000000 , 0x00004747 
+ 00000904  0x000004b0 setarg  0x00000226 
+ 00000905  0x000004b1 branch  0x0000032f 
+ 00000906  0x000004b4 fetch  0x00000001 , 0x00004678 
+ 00000907  0x000004b5 bne  0x00000000 , 0x00004749 
+ 00000908  0x000004b6 setarg  0x00000306 
+ 00000909  0x000004b7 branch  0x0000032f 
+ 00000910  0x000004ba fetch  0x00000001 , 0x00004678 
+ 00000911  0x000004bb bne  0x00000000 , 0x00004752 
+ 00000912  0x000004bc jam  0x00000002 , 0x00004a6f 
+ 00000913  0x000004bd setarg  0x00000002 
+ 00000914  0x000004be store  0x00000001 , 0x00004a70 
+ 00000915  0x000004bf branch  0x000046e6 
+ 00000916  0x000004c0 beq  0x000000ed , 0x00004720 
+ 00000917  0x000004c4 call  0x000047b3 
+ 00000918  0x000004c5 branch  0x0000379c 
+ 00000919  0x000004c8 arg  0x0000494e , 0x00000011 
+ 00000920  0x000004c9 arg  0x00004963 , 0x00000012 
+ 00000921  0x000004ca arg  0x00000014 , 0x00000039 
+ 00000922  0x000004cb call  0x00007d66 
+ 00000923  0x000004cc nbranch  0x000003c4 , 0x00000005 
+ 00000924  0x000004cd branch  0x000043ba 
+ 00000925  0x000004d0 call  0x0000039f 
+ 00000926  0x000004d1 branch  0x000042de 
+ 00000927  0x000004d4 arg  0x00000000 , 0x00000011 
+ 00000928  0x000004d5 fetcht  0x00000004 , 0x00004b9a 
+ 00000929  0x000004d6 copy  0x00000022 , 0x00000012 
+ 00000930  0x000004d7 copy  0x00000012 , 0x0000003f 
+ 00000931  0x000004d8 isub  0x00000002 , 0x0000003e 
+ 00000932  0x000004d9 ncall  0x000077f4 , 0x00000002 
+ 00000933  0x000004db copy  0x00000012 , 0x0000003f 
+ 00000934  0x000004dc increase  0x00000028 , 0x00000002 
+ 00000935  0x000004dd isub  0x00000002 , 0x0000003e 
+ 00000936  0x000004de nbranch  0x000003b1 , 0x00000002 
+ 00000937  0x000004df increase  0x00000001 , 0x00000011 
+ 00000938  0x000004e0 and  0x00000011 , 0x0000000f , 0x0000003f 
+ 00000939  0x000004e1 nbranch  0x000003a5 , 0x00000034 
+ 00000940  0x000004e2 arg  0x00000000 , 0x00000011 
+ 00000941  0x000004e3 call  0x000003b6 
+ 00000942  0x000004e5 copy  0x00000022 , 0x0000003f 
+ 00000943  0x000004e6 store  0x00000004 , 0x00004b9a 
+ 00000944  0x000004e7 rtn 
+ 00000945  0x000004eb copy  0x00000011 , 0x0000003f 
+ 00000946  0x000004ec rtn  0x00000034 
+ 00000947  0x000004ed increase  0xffffffd8 , 0x00000002 
+ 00000948  0x000004ee set0  0x0000001c , 0x00000002 
+ 00000949  0x000004ef storet  0x00000004 , 0x00004b9a 
+ 00000950  0x000004f1 store  0x00000001 , 0x00004b9e 
+ 00000951  0x000004f3 fetch  0x00000001 , 0x00004b9e 
+ 00000952  0x000004f4 rtn  0x00000034 
+ 00000953  0x000004f5 increase  0xffffffff , 0x0000003f 
+ 00000954  0x000004f6 store  0x00000001 , 0x00004b9e 
+ 00000955  0x000004f7 call  0x000003bd 
+ 00000956  0x000004f8 branch  0x000003b7 
+ 00000957  0x000004fb fetch  0x00000001 , 0x00004b99 
+ 00000958  0x000004fc rtn  0x00000034 
+ 00000959  0x000004fd fetch  0x00000001 , 0x0000474f 
+ 00000960  0x000004fe beq  0x000000ff , 0x000003c2 
+ 00000961  0x000004ff jam  0x00000001 , 0x00004094 
+ 00000962  0x00000501 jam  0x00000000 , 0x00004b99 
+ 00000963  0x00000502 rtn 
+ 00000964  0x00000505 jam  0x00000000 , 0x00004094 
+ 00000965  0x00000506 jam  0x00000001 , 0x00004b99 
+ 00000966  0x00000507 branch  0x000043b1 
+ 00000967  0x0000050a branch  0x00004815 
+ 00000968  0x00000513 call  0x00004184 
+ 00000969  0x00000514 call  0x00003f2c 
+ 00000970  0x00000515 jam  0x00000000 , 0x000049a9 
+ 00000971  0x00000516 fetch  0x00000002 , 0x000045ef 
+ 00000972  0x00000517 nrtn  0x00000034 
+ 00000973  0x00000518 setarg  0x00000000 
+ 00000974  0x00000519 store  0x00000002 , 0x00004741 
+ 00000975  0x0000051a store  0x00000002 , 0x000045f5 
+ 00000976  0x0000051b store  0x00000001 , 0x000045f9 
+ 00000977  0x0000051c arg  0x00000000 , 0x00000007 
+ 00000978  0x0000051d call  0x00004a25 
+ 00000979  0x0000051e call  0x000048e9 
+ 00000980  0x0000051f jam  0x00000002 , 0x000045a0 
+ 00000981  0x00000520 branch  0x0000326f 
+ 00000982  0x00000524 fetch  0x00000001 , 0x00004678 
+ 00000983  0x00000525 beq  0x00000000 , 0x000003d9 
+ 00000984  0x00000526 branch  0x00004148 
+ 00000985  0x00000529 fetch  0x00000002 , 0x000045ef 
+ 00000986  0x0000052a branch  0x000003dc , 0x00000034 
+ 00000987  0x0000052b branch  0x0000414d 
+ 00000988  0x0000052e fetch  0x00000001 , 0x00004ac5 
+ 00000989  0x0000052f nrtn  0x00000034 
+ 00000990  0x00000532 fetch  0x00000001 , 0x00004ac2 
+ 00000991  0x00000533 nbranch  0x000003e3 , 0x00000034 
+ 00000992  0x00000534 fetch  0x00000001 , 0x0000470d 
+ 00000993  0x00000535 bbit1  0x00000001 , 0x000003e3 
+ 00000994  0x00000536 branch  0x00004172 
+ 00000995  0x00000538 rtn 
+ 00000996  0x0000053b fetch  0x00000001 , 0x000048b1 
+ 00000997  0x0000053c beq  0x00000000 , 0x00004098 
+ 00000998  0x0000053d beq  0x00000001 , 0x000003e9 
+ 00000999  0x0000053e beq  0x00000002 , 0x000040a2 
+ 00001000  0x0000053f branch  0x00004098 
+ 00001001  0x00000542 setarg  0x00be0122 
+ 00001002  0x00000543 store  0x00000003 , 0x000048ab 
+ 00001003  0x00000544 setarg  0x0000dc00 
+ 00001004  0x00000545 istore  0x00000003 , 0x00000005 
+ 00001005  0x00000546 rtn 
+ 00001006  0x00000548 ifetch  0x00000008 , 0x00000011 
+ 00001007  0x00000549 store  0x00000008 , 0x0000064e 
+ 00001008  0x0000054b call  0x00007057 
+ 00001009  0x0000054c call  0x000003fa 
+ 00001010  0x0000054d fetch  0x00000002 , 0x00000654 
+ 00001011  0x0000054e fetcht  0x00000002 , 0x00000650 
+ 00001012  0x0000054f isub  0x00000002 , 0x0000003e 
+ 00001013  0x00000550 ncall  0x00007054 , 0x00000002 
+ 00001014  0x00000551 fetcht  0x00000002 , 0x00000652 
+ 00001015  0x00000552 isub  0x00000002 , 0x0000003e 
+ 00001016  0x00000553 ncall  0x000003fd , 0x00000002 
+ 00001017  0x00000554 branch  0x00004ed0 
+ 00001018  0x00000557 fetcht  0x00000001 , 0x00004422 
+ 00001019  0x00000558 set0  0x00000000 , 0x00000002 
+ 00001020  0x00000559 branch  0x00007059 
+ 00001021  0x0000055c fetcht  0x00000001 , 0x00004422 
+ 00001022  0x0000055d set1  0x00000000 , 0x00000002 
+ 00001023  0x0000055e branch  0x00007059 
+ 00001024  0x00000561 arg  0x00008049 , 0x00000005 
+ 00001025  0x00000562 and  0x00000002 , 0x00000007 , 0x00000007 
+ 00001026  0x00000563 rshift3  0x00000002 , 0x0000003f 
+ 00001027  0x00000564 and_into  0x00000003 , 0x0000003f 
+ 00001028  0x00000565 iadd  0x00000005 , 0x00000005 
+ 00001029  0x00000566 ifetch  0x00000001 , 0x00000005 
+ 00001030  0x00000567 qset1  0x0000003f 
+ 00001031  0x00000568 istore  0x00000001 , 0x00000005 
+ 00001032  0x00000569 rtn 
Index: output/bt_program23.list
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_program23.list	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_program23.list	(working copy)
@@ -0,0 +1,1196 @@
+              include "bt_format "
+              org 0x0000
+0x0 000019 bbit1 8 ,pf_patch_ext 
+0x1 000020 beq patch00_0 ,p_soft_reset 
+0x2 000021 beq patch03_2 ,p_initialize_radio_cont 
+0x3 000022 beq patch04_5 ,p_lpm_sleep 
+0x4 000023 beq patch05_0 ,p_lpm_dispatch 
+0x5 000024 beq patch07_6 ,p_keyboard_setting_config_next 
+0x6 000025 beq patch07_7 ,p_keyboard_load_info_check 
+0x7 000026 beq patch08_0 ,p_keyboard_store_device_info 
+0x8 000028 beq patch08_3 ,p_keyboard_bb_event_timer 
+0x9 000029 beq patch08_4 ,p_keyboard_adc_vol_init 
+0xa 000030 beq patch09_1 ,p_keyboard_idle 
+0xb 000031 beq patch09_3 ,p_keyboard_work_start 
+0xc 000032 beq patch09_4 ,p_kscan_dispatch 
+0xd 000033 beq patch09_6 ,p_keyboard_keyvalue_chang 
+0xe 000034 beq patch0a_1 ,p_keyboard_keyvalue_fn_replace_press 
+0xf 000035 beq patch0a_6 ,p_keyboard_long_button_bt_discovery 
+0x10 000036 beq patch0a_7 ,p_keyboard_24g_start_pair_mode 
+0x11 000037 beq patch0b_1 ,p_keyboard_motion_data_check 
+0x12 000038 beq patch0b_4 ,p_keyboard_value_tpye_consumer_set 
+0x13 000039 beq patch0b_6 ,p_keyboard_lpm_before_common 
+0x14 000040 beq patch0d_2 ,p_keyboard_le_parse_att 
+0x15 000041 beq patch0f_4 ,p_keyboard_app_enter_hibernate 
+0x16 000042 beq patch10_2 ,p_mouse_adc_bat_percent_lowpower_out 
+0x17 000043 beq patch14_3 ,keyboard_24g_hibernate_set 
+0x18 000044 beq patch1d_1 ,p_otp_write 
+0x19 000045 beq patch1d_2 ,p_otp_read_data 
+0x1a 000046 beq patch19_7 ,p_keyboard_init 
+0x1b 000047 beq patch1f_2 ,p_gpio_set_wake_by_current_state 
+0x1c 000048 branch assert 
+:      000050 pf_patch_ext:
+0x1d 000051 rtneq patch3f_7 
+0x1e 000052 beq patch35_5 ,p_g24_pair_sm_common 
+0x1f 000053 beq patch37_5 ,p_g24_reconn_dispatch_next 
+0x20 000054 beq patch38_2 ,p_g24_transmit_no_interrupt 
+0x21 000055 beq patch3e_3 ,p_initialize_radio2 
+0x22 000056 branch assert 
+:      000057 p_initialize_radio2:
+0x23 000059 until null ,lpo_edge 
+0x24 000060 jam 0x60 ,0x8a86 
+0x25 000061 jam 0x3b ,0x8a8b 
+0x26 000063 call dpll_on 
+0x27 000064 jam 0 ,core_config 
+0x28 000065 jam clksel_dpll ,core_clksel 
+0x29 000066 setarg 0x557474 
+0x2a 000067 store 3 ,0x8968 
+0x2b 000068 jam 0x6e ,0x8960 
+0x2c 000069 call rx_dcoc 
+0x2d 000070 call rfpll_aac_ghpc 
+0x2e 000071 call set_xtal_cap 
+0x2f 000072 jam system_clk_12m ,mem_system_clk 
+0x30 000073 jam 0x06 ,0x8a30 
+0x31 000074 jam 0xdd ,0x8a32 
+0x32 000075 jam 0xe0 ,0x8a88 
+0x33 000076 jam 0x2d ,0x8a8c 
+0x34 000077 jam 0x78 ,0x8a31 
+0x35 000078 call sadc_calibration 
+0x36 000079 call dpll_ring_ibias_calc 
+0x37 000080 branch set_bistfix_save_patchram 
+:      000082 p_soft_reset:
+0x38 000083 nbranch p_soft_reset_next ,wake 
+0x39 000084 until null ,lpo_edge 
+0x3a 000085 until null ,lpo_edge 
+:      000086 p_soft_reset_next:
+0x3b 000087 call keyboard_wakeup_from_power_check 
+0x3c 000088 nbranch soft_reset + 1 ,user 
+0x3d 000089 fetch 1 ,mem_power_on_flag 
+0x3e 000090 branch soft_reset + 1 ,blank 
+0x3f 000091 fetch 1 ,mem_keyboard_pb_button_gpio 
+0x40 000092 beq ui_button_gpio_disable ,soft_reset + 1 
+0x41 000093 copy pdata ,queue 
+0x42 000094 fetch 4 ,mem_saved_gpio_in 
+0x43 000095 qisolate0 pdata 
+0x44 000096 call keyboard_pb_set ,true 
+0x45 000097 branch soft_reset + 1 
+:      000099 p_lpm_sleep:
+0x46 000101 fetch 2 ,mem_cb_before_lpm_sleep 
+0x47 000102 call callback_func 
+0x48 000104 fetch 4 ,mem_sleep_counter_all 
+0x49 000105 iadd temp ,pdata 
+0x4a 000106 store 4 ,mem_sleep_counter_all 
+0x4b 000107 call lpm_save_context 
+0x4c 000108 fetch 1 ,mem_lpm_hv_sel 
+0x4d 000109 set1 lpm_doze_en_bit ,pdata 
+0x4e 000110 call lpm_write_sel_hv 
+0x4f 000111 ncall lpm_preon_counter ,wake 
+0x50 000112 until null ,lpo_edge 
+0x51 000113 copy clkn ,pdata 
+0x52 000114 store 6 ,mem_sleep_clkn 
+0x53 000115 branch lpm_sleep_skip_cb_function + 10 
+:      000116 p_g24_pair_sm_common:
+0x54 000117 fetch 4 ,mem_24g_rxpayload + 2 
+0x55 000118 rtn blank 
+0x56 000119 branch g24_pair_sm_common + 12 
+:      000121 p_g24_reconn_dispatch_next:
+0x57 000122 fetch 2 ,mem_24g_reconn_count 
+0x58 000123 and_into 0xe0 ,pdata 
+0x59 000124 branch p_keyboard_g24_reconn_dispatch_next ,blank 
+0x5a 000125 fetch 2 ,mem_24g_reconn_count 
+0x5b 000126 increase 1 ,pdata 
+0x5c 000127 store 2 ,mem_24g_reconn_count 
+0x5d 000128 rtn 
+:      000130 p_keyboard_g24_reconn_dispatch_next:
+0x5e 000131 call g24_reconn_data_prep 
+0x5f 000132 call g24_transmit_receive_ack 
+0x60 000133 nbranch g24_reconn_device_fail ,sync 
+0x61 000134 nbranch g24_reconn_device_fail ,user3 
+0x62 000135 call p_keyboard_g24_ackpayload_parse 
+0x63 000136 branch g24_reconn_dispatch_next + 5 
+:      000138 p_keyboard_g24_ackpayload_parse:
+0x64 000139 call g24_ackpayload_parse 
+0x65 000140 fetch 1 ,mem_24g_rxbuf + 1 
+0x66 000141 compare 0x08 ,pdata ,0xf8 
+0x67 000142 nrtn true 
+0x68 000143 fetch 1 ,mem_24g_rxbuf + 2 
+0x69 000144 beq 0xff ,keyboard_24g_hibernate_set 
+0x6a 000145 store 1 ,mem_keyboard_led_status 
+0x6b 000146 rtn 
+:      000148 p_initialize_radio_cont:
+0x6c 000149 until null ,lpo_edge 
+0x6d 000150 jam 0x0d ,0x8946 
+0x6e 000151 jam 0x10 ,0x896f 
+0x6f 000152 jam 0xcd ,0x8a13 
+0x70 000154 fetch 1 ,0x8a06 
+0x71 000155 and pdata ,0xfc ,pdata 
+0x72 000156 store 1 ,0x8a06 
+0x73 000157 branch initialize_radio_cont + 6 
+:      000159 p_otp_read_data:
+0x74 000160 call enable_otp_read 
+0x75 000161 call otp_read_data1 
+0x76 000162 branch otp_disable_chgpump 
+:      000165 p_otp_write:
+0x77 000167 call otp_enable_chgpump65 
+0x78 000168 call otp_set_addr 
+0x79 000169 call otp_reset 
+:      000170 p_otp_program:
+0x7a 000171 ifetcht 1 ,rega 
+0x7b 000172 increase 1 ,rega 
+0x7c 000173 force 0 ,queue 
+:      000174 p_otp_program_bit:
+0x7d 000175 set0 mark_otp_write ,mark 
+:      000176 p_otp_program_bit2:
+0x7e 000177 qisolate0 temp 
+0x7f 000178 branch p_otp_skip_0 ,true 
+0x80 000179 fetch 1 ,core_otp_din 
+0x81 000180 set1 6 ,pdata 
+0x82 000181 set1 7 ,pdata 
+0x83 000182 store 1 ,core_otp_din 
+0x84 000183 jam 0x02 ,core_otp_ctrl 
+0x85 000184 jam 0x82 ,core_otp_ctrl 
+0x86 000185 set0 7 ,pdata 
+0x87 000186 store 1 ,core_otp_din 
+0x88 000187 jam 0x8a ,core_otp_ctrl 
+0x89 000188 nop 11 
+0x8a 000189 jam 0xca ,core_otp_ctrl 
+0x8b 000190 nop 33 
+0x8c 000191 jam 0x4a ,core_otp_ctrl 
+0x8d 000192 nop 44 
+0x8e 000193 jam 0xca ,core_otp_ctrl 
+0x8f 000194 nop 22 
+0x90 000195 jam 0x8a ,core_otp_ctrl 
+0x91 000196 nop 33 
+0x92 000197 jam 0x82 ,core_otp_ctrl 
+0x93 000198 nop 1 
+0x94 000199 jam 0x92 ,core_otp_ctrl 
+0x95 000200 nop 10 
+0x96 000201 jam 0xb2 ,core_otp_ctrl 
+0x97 000202 fetch 1 ,core_otp_rdata 
+0x98 000203 jam 0x92 ,core_otp_ctrl 
+0x99 000204 nop 1 
+0x9a 000205 jam 0x82 ,core_otp_ctrl 
+0x9b 000206 nop 1 
+0x9c 000207 qisolate0 pdata 
+0x9d 000208 branch p_otp_program_bit ,true 
+0x9e 000209 bmark1 mark_otp_write ,p_otp_skip_0 
+0x9f 000210 set1 mark_otp_write ,mark 
+0xa0 000211 branch p_otp_program_bit2 
+:      000213 p_otp_skip_0:
+0xa1 000214 fetch 2 ,core_otp_addr 
+0xa2 000215 increase 1 ,pdata 
+0xa3 000216 store 2 ,core_otp_addr 
+0xa4 000217 increase 1 ,queue 
+0xa5 000218 compare 8 ,queue ,0xf 
+0xa6 000219 nbranch p_otp_program_bit ,true 
+0xa7 000220 loop p_otp_program 
+0xa8 000221 branch otp_disable_chgpump 
+:      000223 p_gpio_set_wake_by_current_state:
+0xa9 000224 set1 gpio_active_bit ,temp 
+0xaa 000225 call gpio_get_bit 
+0xab 000226 nsetflag true ,gpio_active_bit ,temp 
+0xac 000227 branch gpio_set_wake 
+:      000230 p_lpm_dispatch:
+0xad 000231 call lpo_calibration 
+0xae 000232 fetch 3 ,mem_clks_per_lpo 
+0xaf 000233 rtn blank 
+0xb0 000234 rtn 
+0xb1 000235 fetch 1 ,mem_keyboard_fn_flag 
+0xb2 000236 nrtn blank 
+0xb3 000237 fetch 1 ,mem_keyboard_control_key_flag 
+0xb4 000238 nrtn blank 
+0xb5 000239 fetch 1 ,mem_device_direct_timer 
+0xb6 000240 nrtn blank 
+0xb7 000241 fetch 2 ,mem_device_discovery_timer 
+0xb8 000242 nrtn blank 
+0xb9 000243 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0xba 000244 nrtn blank 
+0xbb 000245 branch lpm_dispatch + 4 
+:      000247 p_keyboard_init:
+0xbc 000249 call app_param_init 
+0xbd 000250 call enable_authrom 
+0xbe 000251 call p_keyboard_setting_config 
+0xbf 000252 call p_keyboard_gpio_init 
+0xc0 000253 call p_keyboard_low_vol_mult_set 
+0xc1 000254 branch keyboard_init + 4 
+:      000256 p_keyboard_low_vol_mult_set:
+0xc2 000257 fetch 1 ,mem_device_flag 
+0xc3 000258 bne mode_24g_device ,p_keyboard_low_vol_mult_ble_set 
+0xc4 000259 call g24_interval_param_8ms 
+0xc5 000260 branch mouse_24g_long_sleep_set 
+:      000261 p_keyboard_low_vol_mult_ble_set:
+0xc6 000262 setarg 160 
+0xc7 000263 call keyboard_mult_auto_get 
+0xc8 000264 fetch 1 ,mem_adc_power_flag 
+0xc9 000265 rtnbit0 0 
+0xca 000266 setarg 80 
+0xcb 000267 branch keyboard_mult_auto_get 
+:      000269 p_keyboard_setting_config:
+0xcc 000270 call p_keyboard_gpio_drive_strength_init 
+0xcd 000271 rtn wake 
+0xce 000272 call g24_transmit_init 
+0xcf 000273 call g24_chmap_param_init 
+0xd0 000274 call p_keyboard_param_init 
+0xd1 000275 jam 0x0a ,mem_lpm_overhead 
+0xd2 000276 call p_keyboard_device_led_all_off 
+0xd3 000277 branch keyboard_setting_config + 5 
+:      000278 p_keyboard_gpio_drive_strength_init:
+0xd4 000279 fetch 2 ,mem_kb_row_ptr 
+0xd5 000280 copy pdata ,regb 
+0xd6 000281 arg 8 ,loopcnt 
+:      000282 p_keyboard_gpio_drive_strength_loop:
+0xd7 000283 ifetcht 1 ,regb 
+0xd8 000284 call p_gpio_set_ds_bit 
+0xd9 000285 increase 1 ,regb 
+0xda 000286 loop p_keyboard_gpio_drive_strength_loop 
+0xdb 000287 rtn 
+:      000288 p_keyboard_device_led_all_off:
+0xdc 000289 call keyboard_low_voltage_led_off 
+0xdd 000290 branch keyboard_device_led_all_off + 1 
+:      000292 p_keyboard_param_init:
+0xde 000293 call keyboard_compare_addr_init 
+0xdf 000294 call p_keyboard_param_common_init 
+0xe0 000295 branch keyboard_param_init + 2 
+:      000297 p_keyboard_param_common_init:
+0xe1 000298 setarg mouse_ble_att_list_addr 
+0xe2 000299 store 2 ,mem_ui_le_uuid_table 
+0xe3 000300 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xe4 000301 bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
+0xe5 000302 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
+0xe6 000303 store 2 ,mem_keyboard_le_hid_map 
+0xe7 000304 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xe8 000305 bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
+0xe9 000306 bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
+0xea 000307 setarg keyboard_ble_hid_map_magic_keyboard_addr 
+0xeb 000308 store 2 ,mem_keyboard_le_hid_map 
+0xec 000309 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xed 000310 bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
+0xee 000311 setarg mem_keyboard_le_table 
+0xef 000312 store 2 ,mem_keyboard_le_hid_map 
+0xf0 000313 branch hid_device_param_common_init 
+:      000315 p_keyboard_store_device_info:
+0xf1 000316 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xf2 000317 bbit1 keyboard_enable_otp ,p_keyboard_store_otp_device_info 
+0xf3 000318 branch keyboard_store_device_info + 1 
+:      000320 p_keyboard_store_otp_device_info:
+0xf4 000321 fetch 2 ,mem_otp_read_retention_offset 
+0xf5 000323 fetcht 2 ,mem_otp_read_retention_max_size 
+0xf6 000324 isub temp ,null 
+0xf7 000325 rtn positive 
+0xf8 000326 fetch 1 ,mem_device_flag 
+0xf9 000327 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+0xfa 000328 beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+0xfb 000329 rtn 
+:      000331 p_keyboard_work_start:
+0xfc 000332 setarg 0x0100 
+0xfd 000333 store 2 ,mem_lpm_interval 
+0xfe 000334 jam 0x0c ,mem_lpm_overhead 
+0xff 000335 branch keyboard_start_work + 1 
+:      000337 p_kscan_dispatch:
+0x100 000338 call p_keyboard_keyscan 
+0x101 000339 call p_keyboard_key_process 
+0x102 000340 branch kscan_dispatch + 3 
+:      000342 p_keyboard_keyscan:
+0x103 000343 call p_keyboard_gpio_init 
+0x104 000344 setarg 0 
+0x105 000345 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x106 000346 arg mem_keyscan_value_current ,contr 
+0x107 000347 arg mem_keyscan_value_check ,contw 
+0x108 000348 arg 20 ,loopcnt 
+0x109 000349 call memcpy 
+0x10a 000350 call keyboard_stb_state_low 
+0x10b 000351 setarg mem_keyscan_value_current 
+0x10c 000352 store 2 ,mem_keyscan_value_ptr 
+0x10d 000353 setarg mem_keyscan_exmcu_value_new 
+0x10e 000354 store 2 ,mem_keyscan_exmcu_value_ptr 
+0x10f 000355 call keyboard_stb_state_high 
+0x110 000356 call keyboard_clk_input 
+:      000357 p_keyboard_keyscan_exmcu_start_check:
+0x111 000358 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x112 000359 increase 1 ,pdata 
+0x113 000360 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x114 000361 bbit1 9 ,p_keyboard_keyscan 
+0x115 000362 fetcht 1 ,mem_mcu_clk_gpio 
+0x116 000363 call gpio_get_bit 
+0x117 000364 nbranch p_keyboard_keyscan_exmcu_start_check ,true 
+0x118 000365 call keyboard_stb_state_low 
+:      000366 p_keyboard_keyscan_wait_wake_next:
+0x119 000367 fetcht 1 ,mem_mcu_clk_gpio 
+0x11a 000368 call gpio_get_bit 
+0x11b 000369 branch p_keyboard_keyscan_wait_wake_next ,true 
+0x11c 000370 call p_keyboard_keyscan_get_exmcu_value 
+0x11d 000371 call p_keyboard_keyscan_get_mcu_value 
+0x11e 000372 call keyboard_clk_input 
+0x11f 000373 call keyboard_stb_state_high 
+:      000374 p_keyboard_keyscan_copy_value:
+0x120 000375 fetch 2 ,mem_kb_excol_ptr 
+0x121 000376 copy pdata ,regb 
+0x122 000377 jam 0 ,mem_keyscan_col_loop_count 
+:      000378 p_keyboard_compare_col_excol_gpio_loop:
+0x123 000379 ifetcht 1 ,regb 
+0x124 000380 fetch 2 ,mem_kb_col_ptr 
+0x125 000381 copy pdata ,rega 
+0x126 000382 copy rega ,regc 
+0x127 000383 arg 20 ,loopcnt 
+:      000384 p_keyboard_compare_col_gpio_loop:
+0x128 000385 ifetch 1 ,rega 
+0x129 000386 isub temp ,null 
+0x12a 000387 branch keyboard_copy_value_exmcu_to_mcu ,zero 
+0x12b 000388 increase 1 ,rega 
+0x12c 000389 loop p_keyboard_compare_col_gpio_loop 
+:      000390 p_keyboard_compare_col_excol_gpio_loop_next:
+0x12d 000391 increase 1 ,regb 
+0x12e 000392 fetch 1 ,mem_keyscan_col_loop_count 
+0x12f 000393 increase 1 ,pdata 
+0x130 000394 store 1 ,mem_keyscan_col_loop_count 
+0x131 000395 sub pdata ,11 ,null 
+0x132 000396 branch p_keyboard_compare_col_excol_gpio_loop ,positive 
+0x133 000398 branch p_keyboard_key_row_init 
+:      000400 p_keyboard_copy_value_exmcu_to_mcu:
+0x134 000401 fetch 2 ,mem_keyscan_value_ptr 
+0x135 000402 copy pdata ,contw 
+0x136 000403 copy rega ,pdata 
+0x137 000404 isub regc ,pdata 
+0x138 000405 iadd contw ,contw 
+0x139 000406 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+0x13a 000407 copy pdata ,regc 
+0x13b 000408 fetch 1 ,mem_keyscan_col_loop_count 
+0x13c 000409 iadd regc ,regc 
+0x13d 000410 ifetch 1 ,regc 
+0x13e 000411 istore 1 ,contw 
+0x13f 000412 branch p_keyboard_compare_col_excol_gpio_loop_next 
+:      000416 p_keyboard_keyscan_get_mcu_value:
+0x140 000417 fetch 2 ,mem_kb_col_ptr 
+0x141 000418 copy pdata ,regb 
+0x142 000419 jam 0 ,mem_keyscan_col_loop_count 
+:      000420 p_keyboard_keyscan_mcu_start:
+0x143 000421 jam 0 ,mem_keyscan_value_temp 
+0x144 000422 ifetcht 1 ,regb 
+0x145 000423 isolate1 7 ,temp 
+0x146 000424 branch p_keyboard_keyscan_mcu_start_loop ,true 
+0x147 000425 call gpio_out_active 
+0x148 000426 call p_keyboard_keyscan_get_col_value 
+0x149 000427 ifetcht 1 ,regb 
+0x14a 000428 call gpio_set_high_impedance 
+:      000430 p_keyboard_keyscan_mcu_start_loop:
+0x14b 000431 increase 1 ,regb 
+0x14c 000432 fetch 2 ,mem_keyscan_value_ptr 
+0x14d 000433 call keyboard_keyscan_value_store 
+0x14e 000434 sub pdata ,19 ,null 
+0x14f 000435 branch p_keyboard_keyscan_mcu_start ,positive 
+0x150 000436 rtn 
+:      000437 p_keyboard_keyscan_get_exmcu_value:
+0x151 000438 jam 0 ,mem_keyscan_col_loop_count 
+:      000439 p_keyboard_keyscan_exmcu_start_loop:
+0x152 000440 call keyboard_clk_state_low 
+0x153 000442 call p_keyboard_keyscan_exmcu_get_col_value 
+0x154 000443 call keyboard_clk_state_high 
+0x155 000445 call p_keyboard_keyscan_exmcu_get_col_value 
+0x156 000446 sub pdata ,11 ,null 
+0x157 000447 branch p_keyboard_keyscan_exmcu_start_loop ,positive 
+0x158 000448 branch keyboard_clk_state_low 
+:      000450 p_keyboard_keyscan_exmcu_get_col_value:
+0x159 000451 jam 0 ,mem_keyscan_value_temp 
+0x15a 000452 call p_keyboard_keyscan_get_col_value 
+0x15b 000453 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+:      000454 p_keyboard_keyscan_value_store:
+0x15c 000455 copy pdata ,contw 
+0x15d 000456 fetch 1 ,mem_keyscan_col_loop_count 
+0x15e 000457 iadd contw ,contw 
+0x15f 000458 fetch 1 ,mem_keyscan_value_temp 
+0x160 000459 istore 1 ,contw 
+0x161 000460 fetch 1 ,mem_keyscan_col_loop_count 
+0x162 000461 increase 1 ,pdata 
+0x163 000462 store 1 ,mem_keyscan_col_loop_count 
+0x164 000463 rtn 
+:      000464 p_keyboard_keyscan_get_col_value:
+0x165 000465 fetch 2 ,mem_kb_row_ptr 
+0x166 000466 copy pdata ,regc 
+0x167 000467 arg 8 ,loopcnt 
+:      000468 p_keyboard_keyscan_get_col_value_loop:
+0x168 000469 ifetcht 1 ,regc 
+0x169 000470 call gpio_out_inactive 
+0x16a 000471 ifetcht 1 ,regc 
+0x16b 000472 call gpio_set_high_impedance 
+0x16c 000473 nop 240 
+0x16d 000474 ifetcht 1 ,regc 
+0x16e 000475 call gpio_get_bit 
+0x16f 000476 fetch 1 ,mem_keyscan_value_temp 
+0x170 000477 rshift pdata ,pdata 
+0x171 000478 setflag true ,7 ,pdata 
+0x172 000479 store 1 ,mem_keyscan_value_temp 
+0x173 000480 increase 1 ,regc 
+0x174 000481 loop p_keyboard_keyscan_get_col_value_loop 
+0x175 000482 rtn 
+:      000484 p_keyboard_lpm_before_common:
+0x176 000485 call clear_wake 
+0x177 000487 fetcht 1 ,mem_keyboard_pb_button_gpio 
+0x178 000488 call gpio_set_wake 
+0x179 000490 fetch 2 ,mem_kb_col_ptr 
+0x17a 000491 copy pdata ,regb 
+0x17b 000492 arg 20 ,loopcnt 
+:      000493 p_keyboard_key_col_wake_init:
+0x17c 000494 ifetcht 1 ,regb 
+0x17d 000495 isolate1 7 ,temp 
+0x17e 000496 ncall gpio_out_active ,true 
+0x17f 000497 increase 1 ,regb 
+0x180 000498 loop p_keyboard_key_col_wake_init 
+0x181 000500 call keyboard_gpio_pu_idle 
+0x182 000501 jam 0 ,mem_qdec_set_flag 
+0x183 000503 fetch 2 ,mem_kb_row_ptr 
+0x184 000504 copy pdata ,regb 
+0x185 000505 arg 8 ,loopcnt 
+:      000506 p_keyboard_key_row_wake_init:
+0x186 000507 ifetcht 1 ,regb 
+0x187 000508 sub temp ,ui_button_gpio_disable ,null 
+0x188 000509 ncall p_keyboard_key_row_wake_set ,zero 
+0x189 000510 ifetcht 1 ,regb 
+0x18a 000511 call gpio_set_high_impedance 
+0x18b 000512 increase 1 ,regb 
+0x18c 000513 loop p_keyboard_key_row_wake_init 
+0x18d 000515 call lpm_puchk_set_check 
+0x18e 000516 call lpm_write_gpio_wakeup 
+0x18f 000517 fetcht 1 ,mem_device_reuse_2ice_gpio 
+0x190 000518 call device_gpio_config_input_pu 
+0x191 000519 call mouse_gpio_set_analog 
+0x192 000520 branch keyboard_adc_gpio_set_before_hibernate 
+:      000522 p_keyboard_key_row_wake_set:
+0x193 000523 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0x194 000524 branch gpio_set_wake ,blank 
+0x195 000526 branch gpio_set_wake_by_current_state 
+:      000528 p_gpio_set_low_pullup_wakeup:
+0x196 000529 sub temp ,ui_button_gpio_disable ,null 
+0x197 000530 rtn zero 
+0x198 000531 arg 3 ,debug 
+0x199 000532 call get_gpio_wakeup_index 
+0x19a 000533 isolate0 0 ,temp 
+0x19b 000534 branch p_gpio_set_low_pullup_low4bit ,true 
+0x19c 000535 lshift4 debug ,debug 
+:      000536 p_gpio_set_low_pullup_low4bit:
+0x19d 000537 ifetch 1 ,contw 
+0x19e 000538 iand alarm ,pdata 
+0x19f 000539 ior debug ,pdata 
+0x1a0 000540 istore 1 ,contw 
+0x1a1 000541 rtn 
+:      000542 p_keyboard_gpio_init:
+0x1a2 000543 call clear_wake 
+0x1a3 000544 fetcht 1 ,mem_keyboard_pb_button_gpio 
+0x1a4 000545 call device_gpio_config_input_pu 
+0x1a5 000547 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x1a6 000548 isolate1 keyboard_disable_ice ,pdata 
+0x1a7 000549 call p_lpm_write_ice_disable ,true 
+0x1a8 000551 setarg mem_key_row_gpio 
+0x1a9 000552 store 2 ,mem_kb_row_ptr 
+0x1aa 000554 setarg mem_key_col_gpio 
+0x1ab 000555 store 2 ,mem_kb_col_ptr 
+0x1ac 000557 setarg mem_key_excol_gpio 
+0x1ad 000558 store 2 ,mem_kb_excol_ptr 
+0x1ae 000559 call p_keyboard_key_row_init 
+0x1af 000560 call lpm_write_gpio_wakeup 
+0x1b0 000561 fetch 2 ,mem_kb_col_ptr 
+0x1b1 000562 copy pdata ,regb 
+0x1b2 000563 arg 20 ,loopcnt 
+:      000564 p_keyboard_key_cow_init:
+0x1b3 000565 ifetcht 1 ,regb 
+0x1b4 000566 isolate1 7 ,temp 
+0x1b5 000567 ncall gpio_set_high_impedance ,true 
+0x1b6 000568 increase 1 ,regb 
+0x1b7 000569 loop keyboard_key_cow_init 
+0x1b8 000570 rtn 
+:      000572 p_keyboard_key_row_init:
+0x1b9 000573 fetch 2 ,mem_kb_row_ptr 
+0x1ba 000574 copy pdata ,regb 
+0x1bb 000575 arg 8 ,loopcnt 
+:      000576 p_keyboard_key_row_init_loop:
+0x1bc 000577 ifetcht 1 ,regb 
+0x1bd 000578 call gpio_set_high_impedance 
+0x1be 000579 call p_gpio_clear_low_pullup 
+0x1bf 000580 increase 1 ,regb 
+0x1c0 000581 loop p_keyboard_key_row_init_loop 
+0x1c1 000582 rtn 
+:      000584 p_gpio_clear_low_pullup:
+0x1c2 000585 call gpio_set_low_pullup 
+0x1c3 000586 sub temp ,ui_button_gpio_disable ,null 
+0x1c4 000587 rtn zero 
+0x1c5 000588 arg 0 ,debug 
+0x1c6 000589 call get_gpio_wakeup_index 
+0x1c7 000590 isolate0 0 ,temp 
+0x1c8 000591 branch gpio_clear_low_pullup_low4bit ,true 
+0x1c9 000592 lshift4 debug ,debug 
+:      000593 gpio_clear_low_pullup_low4bit:
+0x1ca 000594 ifetch 1 ,contw 
+0x1cb 000595 iand alarm ,pdata 
+0x1cc 000596 ior debug ,pdata 
+0x1cd 000597 istore 1 ,contw 
+0x1ce 000598 rtn 
+:      000600 p_lpm_write_ice_disable:
+0x1cf 000601 fetch 1 ,core_lpm_sysctl 
+0x1d0 000602 set0 ice_mode ,pdata 
+0x1d1 000603 store 1 ,core_lpm_sysctl 
+0x1d2 000604 rtn 
+:      000606 p_keyboard_device_poweron_timer:
+0x1d3 000607 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x1d4 000608 rtn blank 
+0x1d5 000609 increase -1 ,pdata 
+0x1d6 000610 store 1 ,mem_keyboard_device_poweron_timer 
+0x1d7 000611 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x1d8 000612 bbit1 keyboard_enable_030_power_led ,p_keyboard_device_poweron_030_led 
+0x1d9 000613 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x1da 000614 branch keyboard_device_led_off ,blank 
+0x1db 000615 branch keyboard_device_led_on 
+:      000617 p_keyboard_device_poweron_030_led:
+0x1dc 000618 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x1dd 000619 branch keyboard_power_led_off ,blank 
+0x1de 000620 branch keyboard_power_led_on 
+:      000622 p_keyboard_num_capslock_led_on_timer:
+0x1df 000625 fetch 1 ,mem_device_flag 
+0x1e0 000626 beq mode_24g_device ,p_keyboard_num_capslock_led_on_timer_next 
+0x1e1 000627 fetch 1 ,mem_device_le_bb_connected_flag 
+0x1e2 000628 rtneq 0 
+:      000629 p_keyboard_num_capslock_led_on_timer_next:
+0x1e3 000630 fetch 1 ,mem_keyboard_mode_led_on_timer 
+0x1e4 000631 rtnne 0 
+0x1e5 000632 fetch 1 ,mem_usb_vdd_status_current 
+0x1e6 000633 beq usb_interface_insert ,keyboard_usb_led_check 
+0x1e7 000634 fetch 2 ,mem_device_no_data_timer 
+0x1e8 000635 rtn blank 
+0x1e9 000636 fetch 2 ,mem_device_no_data_timeout 
+0x1ea 000637 fetcht 2 ,mem_device_no_data_timer 
+0x1eb 000638 isub temp ,temp 
+0x1ec 000639 fetch 2 ,mem_keyboard_num_caps_scoll_led_on_timer 
+0x1ed 000640 isub temp ,pdata 
+0x1ee 000641 branch p_keyboard_num_cap_scoll_led_check ,positive 
+0x1ef 000642 call keyboard_numlock_led_off 
+0x1f0 000643 call keyboard_scrolllock_led_off 
+0x1f1 000644 branch keyboard_capslock_led_off 
+:      000646 p_keyboard_num_cap_scoll_led_check:
+0x1f2 000647 call keyboard_numlock_led_check_on 
+0x1f3 000648 call keyboard_scrolllock_led_check_on 
+0x1f4 000649 branch p_keyboard_capslock_led_check_on 
+:      000650 p_keyboard_capslock_led_check_on:
+0x1f5 000651 fetch 1 ,mem_keyboard_led_status 
+0x1f6 000652 bbit0 kb_pc_keysel_capslock ,keyboard_capslock_led_off 
+0x1f7 000653 jam 0 ,mem_keyboard_device_poweron_timer 
+0x1f8 000654 fetcht 1 ,mem_keyboard_caps_led_gpio 
+0x1f9 000655 branch gpio_out_active 
+:      000657 p_keyboard_bb_event_timer:
+0x1fa 000658 call keyboard_low_voltage_param_set 
+0x1fb 000659 call keyboard_adc_read 
+0x1fc 000660 call keyboard_adc_gpio_set_before_hibernate 
+0x1fd 000663 call keyboard_low_voltage_led_timer 
+0x1fe 000664 call p_keyboard_num_capslock_led_on_timer 
+0x1ff 000665 call keyboard_rgb_on_timer 
+0x200 000666 call p_keyboard_device_poweron_timer 
+0x201 000667 call keyboard_mode_led_timer 
+0x202 000668 call p_keyboard_device_pair_led_timer 
+0x203 000670 call p_keyboard_key_press_timer 
+0x204 000671 call keyboard_commbination_key_process 
+0x205 000672 call keyboard_same_key_long_press_timer 
+0x206 000675 call g24_pair_timeout_timer 
+0x207 000676 call g24_reconn_timeout_timer 
+0x208 000677 call mouse_24g_long_sleep_param_update_timer 
+0x209 000678 call keyboard_24g_repeat_send_data 
+0x20a 000679 call keyboard_24g_led_status_get_timer 
+0x20b 000682 call keyboard_check_discovery_timeout_timer 
+0x20c 000683 call keyboard_check_direct_timeout_timer 
+0x20d 000684 call mouse_le_enable_att_list_timer 
+0x20e 000685 call keyboard_le_battery_updata_timer 
+0x20f 000686 call mouse_le_send_smp_security_request_timer 
+0x210 000687 call keyboard_le_send_conn_param_update_timer 
+0x211 000688 call keyboard_le_auto_recognize_timer 
+0x212 000690 call mouse_current_mult_update_timer 
+0x213 000691 call keyboard_store_information_delay_timer 
+0x214 000692 call keyboard_commbination_delay_release_timer 
+0x215 000693 call keyboard_usb_updata_timer 
+0x216 000694 branch keyboard_check_no_data_timeout_timer 
+:      000696 p_keyboard_key_press_timer:
+0x217 000699 call p_keyboard_device_select_g24_nopress_timer 
+0x218 000702 branch p_keyboard_device_select_bt_nopress_timer 
+:      000705 p_keyboard_device_select_g24_nopress_timer:
+0x219 000706 jam 0 ,mem_keyboard_switch_g24_press_timer 
+0x21a 000707 fetch 1 ,mem_keyboard_switch_g24_enable 
+0x21b 000708 rtn blank 
+0x21c 000709 jam 0 ,mem_keyboard_switch_g24_enable 
+0x21d 000710 call p_keyboard_store_device_number 
+0x21e 000711 branch soft_reset_chip 
+:      000713 p_keyboard_device_select_bt_nopress_timer:
+0x21f 000714 jam 0 ,mem_keyboard_switch_bt_press_timer 
+0x220 000715 fetch 1 ,mem_keyboard_switch_bt_enable 
+0x221 000716 rtn blank 
+0x222 000717 jam 0 ,mem_keyboard_switch_bt_enable 
+0x223 000718 call keyboard_store_device_number 
+0x224 000719 branch soft_reset_chip 
+:      000721 p_keyboard_store_device_number:
+0x225 000722 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x226 000723 bbit1 keyboard_enable_otp ,mouse_write_otp_device_flag 
+0x227 000724 bbit1 keyboard_enable_eeprom ,keyboard_store_device_number 
+0x228 000725 rtn 
+:      000726 p_keyboard_keyvalue_chang:
+0x229 000727 call keyboard_keyvalue_normal_replace 
+0x22a 000729 call p_keyboard_keyvalue_fn_replace 
+0x22b 000730 call p_keyboard_keyvalue_commbination_replace 
+0x22c 000731 branch keyboard_keyvalue_change + 14 
+:      000733 p_keyboard_keyvalue_commbination_replace:
+0x22d 000734 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x22e 000735 beq hid_key_print_screen ,keyboard_commination_screen_shot_replace 
+0x22f 000736 beq hid_key_page_up ,keyboard_commination_pageup_replace 
+0x230 000737 beq hid_key_page_down ,keyboard_commination_pagedown_replace 
+0x231 000738 beq hid_key_home ,keyboard_commination_home_replace 
+0x232 000739 beq hid_key_end ,keyboard_commination_end_replace 
+0x233 000740 beq hid_key_select_all ,keyboard_commination_select_all 
+0x234 000741 beq hid_key_copy ,keyboard_commbination_copy 
+0x235 000742 beq hid_key_paste ,keyboard_commbination_paste 
+0x236 000743 beq hid_key_cut ,keyboard_commbination_cut 
+0x237 000744 beq hid_key_all_os_lock ,keyboard_commination_os_lock 
+0x238 000745 beq hid_key_osk ,keyboard_commbination_osk 
+0x239 000746 beq hid_key_search ,keyboard_commbination_search 
+0x23a 000747 beq hid_key_language ,keyboard_commbination_language 
+0x23b 000748 beq hid_key_app_tiling ,keyboard_commbination_app_tiling 
+0x23c 000749 beq hid_key_all_os_home ,p_keyboard_commination_all_ac_home_replace 
+0x23d 000750 rtn 
+:      000752 p_keyboard_commination_all_ac_home_replace:
+0x23e 000753 fetch 1 ,mem_kb_computer_system 
+0x23f 000754 beq system_os_mac ,p_keyboard_value_mac_home 
+0x240 000755 fetch 1 ,mem_device_flag 
+0x241 000756 bne mode_24g_device ,p_keyboard_value_ac_home_key 
+0x242 000757 fetch 1 ,mem_kb_computer_system 
+0x243 000758 beq system_os_ios ,p_keyboard_value_mac_home 
+:      000759 p_keyboard_value_ac_home_key:
+0x244 000760 setarg hid_key_ac_home 
+0x245 000761 branch keyboard_keyvalue_store_temp 
+:      000762 p_keyboard_value_mac_home:
+0x246 000763 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x247 000764 jam hid_key_h ,mem_keyboard_commbination_standard_key_value 
+0x248 000765 branch keyboard_commbination_keypress 
+:      000767 p_keyboard_keyvalue_fn_replace:
+0x249 000768 fetch 1 ,mem_keyboard_press_flag_temp 
+0x24a 000769 isolate1 0 ,pdata 
+0x24b 000770 call keyboard_commbination_delay_release_clear ,true 
+0x24c 000771 call p_keyboard_keyvalue_nfn_replace 
+0x24d 000772 fetch 1 ,mem_keyboard_fn_flag 
+0x24e 000773 ncall keyboard_keyvalue_fn_replace_press ,blank 
+0x24f 000774 fetch 1 ,mem_device_fast_conn_flag 
+0x250 000775 rtneq 0xff 
+0x251 000776 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x252 000777 bbit0 keyboard_enable_fn_lock ,p_keyboard_fn_lock_check 
+0x253 000778 fetch 1 ,mem_keyboard_fn_lock_flag 
+0x254 000779 branch p_keyboard_fn_lock_check + 1 
+:      000781 p_keyboard_fn_lock_check:
+0x255 000782 fetch 1 ,mem_keyboard_fn_first 
+0x256 000783 fetcht 1 ,mem_keyboard_fn_flag 
+0x257 000784 ixor temp ,pdata 
+0x258 000788 rtn zero 
+0x259 000790 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x25a 000791 beq hid_key_esc ,keyboard_keyvalue_fn_esc 
+0x25b 000792 beq hid_key_delete ,keyboard_keyvalue_fn_delete 
+0x25c 000793 beq hid_key_f1 ,p_keyboard_keyvalue_f1 
+0x25d 000794 beq hid_key_f2 ,p_keyboard_keyvalue_f2 
+0x25e 000795 beq hid_key_f3 ,p_keyboard_keyvalue_f3 
+0x25f 000796 beq hid_key_f4 ,p_keyboard_keyvalue_f4 
+0x260 000797 sub pdata ,hid_key_f12 ,null 
+0x261 000798 nrtn positive 
+0x262 000799 arg hid_key_f1 ,temp 
+0x263 000800 isub temp ,pdata 
+0x264 000801 nrtn positive 
+0x265 000802 arg mem_keyboard_fn_f1 ,contr 
+0x266 000803 iadd contr ,contr 
+0x267 000804 ifetch 1 ,contr 
+0x268 000805 branch keyboard_keyvalue_store_temp 
+:      000807 p_keyboard_keyvalue_nfn_replace:
+0x269 000808 fetch 1 ,mem_kb_computer_system 
+0x26a 000809 rtnne system_os_ios 
+0x26b 000810 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x26c 000811 beq 0x35 ,p_keyboard_ios_0x35 
+0x26d 000812 rtn 
+:      000813 p_keyboard_ios_0x35:
+0x26e 000814 fetch 1 ,mem_keyboard_shift_flag 
+0x26f 000815 rtneq 1 
+0x270 000816 jam 0x40 ,mem_keyboard_commbination_control_key_value 
+0x271 000817 jam 0x35 ,mem_keyboard_commbination_standard_key_value 
+0x272 000818 branch keyboard_commbination_keypress 
+:      000820 p_keyboard_keyvalue_fn_replace_press:
+0x273 000821 call keyboard_keyvalue_fn_lock_replace 
+0x274 000822 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x275 000823 beq hid_key_up_arrow ,keyboard_keyvalue_fn_up_arrow 
+0x276 000824 beq hid_key_down_arrow ,keyboard_keyvalue_fn_down_arrow 
+0x277 000825 beq hid_key_left_arrow ,keyboard_keyvalue_fn_left_arrow 
+0x278 000826 beq hid_key_right_arrow ,keyboard_keyvalue_fn_right_arrow 
+0x279 000829 beq hid_key_w ,keyboard_keyvalue_os_android 
+0x27a 000830 beq hid_key_e ,keyboard_keyvalue_os_windows 
+0x27b 000831 beq hid_key_q ,keyboard_keyvalue_os_ios 
+0x27c 000832 rtn 
+:      000834 p_keyboard_keyvalue_f1:
+0x27d 000835 fetch 1 ,mem_kb_computer_system 
+0x27e 000836 beq system_os_ios ,p_keyboard_keyvalue_ios_back 
+0x27f 000837 setarg hid_key_ac_back 
+0x280 000838 branch keyboard_keyvalue_store_temp 
+:      000839 p_keyboard_keyvalue_ios_back:
+0x281 000840 setarg hid_key_light_down 
+0x282 000841 branch keyboard_keyvalue_store_temp 
+:      000842 p_keyboard_keyvalue_f2:
+0x283 000843 fetch 1 ,mem_kb_computer_system 
+0x284 000844 beq system_os_ios ,p_keyboard_keyvalue_ios_f2 
+0x285 000845 setarg hid_key_mail 
+0x286 000846 branch keyboard_keyvalue_store_temp 
+:      000847 p_keyboard_keyvalue_ios_f2:
+0x287 000848 setarg hid_key_light_up 
+0x288 000849 branch keyboard_keyvalue_store_temp 
+:      000850 p_keyboard_keyvalue_f3:
+0x289 000851 fetch 1 ,mem_kb_computer_system 
+0x28a 000852 beq system_os_ios ,p_keyboard_keyvalue_ios_f3 
+0x28b 000853 beq system_os_android ,p_keyboard_keyvalue_fn_android_f3 
+0x28c 000854 jam 0x08 ,mem_keyboard_commbination_control_key_value 
+0x28d 000855 jam hid_key_i ,mem_keyboard_commbination_standard_key_value 
+0x28e 000856 branch keyboard_commbination_keypress 
+:      000857 p_keyboard_keyvalue_ios_f3:
+0x28f 000858 setarg hid_key_os_soft_kb 
+0x290 000859 branch keyboard_keyvalue_store_temp 
+:      000860 p_keyboard_keyvalue_fn_android_f3:
+0x291 000861 setarg hid_key_android_set 
+0x292 000862 branch keyboard_keyvalue_store_temp 
+:      000863 p_keyboard_keyvalue_f4:
+0x293 000864 fetch 1 ,mem_kb_computer_system 
+0x294 000865 beq system_os_ios ,p_keyboard_keyvalue_ios_f4 
+0x295 000866 setarg hid_key_multikey_media 
+0x296 000867 branch keyboard_keyvalue_store_temp 
+:      000868 p_keyboard_keyvalue_ios_f4:
+0x297 000869 jam 0x0a ,mem_keyboard_commbination_control_key_value 
+0x298 000870 jam hid_key_3 ,mem_keyboard_commbination_standard_key_value 
+0x299 000871 branch keyboard_commbination_keypress 
+:      000873 p_keyboard_long_button_bt_discovery:
+0x29a 000874 fetch 1 ,mem_device_discovery_timer 
+0x29b 000875 rtnne 0 
+0x29c 000876 jam 0 ,mem_keyboard_led_status 
+0x29d 000877 call keyboard_capslock_led_off 
+0x29e 000878 call keyboard_low_voltage_led_off 
+0x29f 000879 branch keyboard_long_button_bt_discovery + 2 
+:      000882 p_keyboard_setting_config_next:
+0x2a0 000883 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x2a1 000884 bbit1 keyboard_enable_otp ,keyboard_load_otp_info 
+0x2a2 000885 branch keyboard_setting_config + 11 
+:      000887 p_keyboard_load_info_check:
+0x2a3 000888 call p_keyboard_app_initflag_check 
+0x2a4 000889 branch keyboard_load_info_check + 2 
+:      000891 p_keyboard_app_initflag_check:
+0x2a5 000892 fetch 1 ,mem_device_flag 
+0x2a6 000893 arg 0xff ,temp 
+0x2a7 000894 isub temp ,null 
+0x2a8 000895 branch keyboard_app_initflag_check + 4 ,zero 
+0x2a9 000896 fetch 2 ,mem_store_flag 
+0x2aa 000897 arg eeprom_init_flag ,temp 
+0x2ab 000898 isub temp ,null 
+0x2ac 000899 branch hid_device_load_device_info ,zero 
+0x2ad 000900 branch keyboard_app_initflag_check + 4 
+:      000903 p_keyboard_le_parse_att:
+0x2ae 000904 copy rega ,contr 
+0x2af 000905 ifetch 3 ,contr 
+0x2b0 000906 store 3 ,mem_le_att_opcode 
+0x2b1 000907 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+0x2b2 000908 beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+0x2b3 000909 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+0x2b4 000910 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+0x2b5 000911 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
+0x2b6 000912 beq attop_read_blob_request ,p_keyboard_le_parse_att_read_blob_request 
+0x2b7 000913 beq attop_read_request ,keyboard_le_parse_att_read_request 
+0x2b8 000914 beq attop_write_request ,keyboard_le_parse_att_write_request 
+0x2b9 000915 beq attop_write_command ,keyboard_le_parse_att_write_command 
+0x2ba 000916 branch le_parse_att2 
+:      000918 p_keyboard_le_parse_att_read_blob_request:
+0x2bb 000919 ifetch 2 ,contr 
+0x2bc 000920 store 2 ,mem_le_att_offset 
+0x2bd 000921 iforce rega 
+0x2be 000922 fetcht 2 ,mem_le_att_handle 
+0x2bf 000923 fetch 2 ,mem_le_pairing_handle 
+0x2c0 000924 isub temp ,null 
+0x2c1 000925 nbranch le_send_att_read_blob_response ,zero 
+0x2c2 000926 branch keyboard_le_send_att_read_blob_response 
+:      000927 p_keyboard_le_parse_att_read_request:
+0x2c3 000928 fetcht 2 ,mem_le_att_handle 
+0x2c4 000929 fetch 1 ,mem_le_configuration 
+0x2c5 000930 bbit1 bit_ble_read_auth ,p_keyboard_le_send_att_read_response_check_auth 
+:      000932 p_keyboard_le_send_att_read_response:
+0x2c6 000933 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x2c7 000934 bbit0 keyboard_enable_adc ,p_keyboard_le_send_att_read_response + 3 
+0x2c8 000935 bbit0 keyboard_enable_le_battery_service_cancel ,p_keyboard_le_send_att_read_response_next 
+0x2c9 000936 fetch 2 ,mem_le_att_handle 
+0x2ca 000937 beq 0x30 ,le_send_att_error_response_notfound 
+:      000938 p_keyboard_le_send_att_read_response_next:
+0x2cb 000939 fetch 2 ,mem_le_att_handle 
+0x2cc 000940 beq 0x05 ,keyboard_le_send_att_appearance 
+0x2cd 000941 beq 0x10 ,keyboard_le_send_att_pnp_id 
+:      000942 p_keyboard_le_send_att_read_response_next_1:
+0x2ce 000943 fetcht 2 ,mem_le_att_handle 
+0x2cf 000944 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x2d0 000945 bbit1 keyboard_enable_mouse ,p_le_send_att_read_response 
+0x2d1 000946 fetch 2 ,mem_le_pairing_handle 
+0x2d2 000947 isub temp ,null 
+0x2d3 000948 nbranch p_le_send_att_read_response ,zero 
+0x2d4 000949 call le_get_search_max_mtu_data 
+0x2d5 000950 fetcht 2 ,mem_keyboard_le_hid_map 
+0x2d6 000951 copy temp ,contr 
+0x2d7 000952 ifetcht 2 ,contr 
+0x2d8 000953 increase 1 ,temp 
+0x2d9 000954 call not_greater_than 
+0x2da 000955 branch p_le_send_att_read_response_less 
+:      000958 p_le_send_att_read_response:
+0x2db 000959 call le_att_get_handle_ptr2 
+0x2dc 000960 nbranch le_send_att_error_response_notfound ,zero 
+0x2dd 000961 call le_send_att_read_response_check_handle ,user 
+0x2de 000962 rtn user 
+0x2df 000963 call le_att_get_handle_ptr_found 
+0x2e0 000964 increase -2 ,contr 
+0x2e1 000965 ifetch 2 ,contr 
+0x2e2 000966 arg uuid_chrctr_device_name ,temp 
+0x2e3 000967 isub temp ,null 
+0x2e4 000968 branch le_send_device_name ,zero 
+0x2e5 000969 copy contr ,regc 
+0x2e6 000970 call le_get_search_max_mtu_data 
+0x2e7 000971 copy regc ,contr 
+0x2e8 000972 ifetcht 1 ,contr 
+0x2e9 000973 increase 1 ,temp 
+0x2ea 000974 call not_greater_than 
+:      000975 p_le_send_att_read_response_less:
+0x2eb 000976 copy pdata ,regc 
+0x2ec 000977 copy pdata ,rega 
+0x2ed 000978 call store_contr 
+0x2ee 000979 call le_fifo_malloc_tx_l2cap_gatt 
+0x2ef 000980 setarg attop_read_response 
+0x2f0 000981 istore 1 ,contw 
+0x2f1 000982 fetch 2 ,mem_le_att_handle 
+0x2f2 000983 beq 0x1f ,p_keyboard_reference_hid_report_fix 
+0x2f3 000984 add regc ,-1 ,loopcnt 
+0x2f4 000985 call get_contr 
+0x2f5 000986 branch memcpy 
+:      000988 p_keyboard_reference_hid_report_fix:
+0x2f6 000989 add regc ,-1 ,loopcnt 
+0x2f7 000990 arg mem_keyboard_hid_fix_handle ,contr 
+0x2f8 000991 branch memcpy 
+:      000994 p_keyboard_le_send_att_read_response_check_auth:
+0x2f9 000995 fetch 2 ,mem_le_pairing_handle 
+0x2fa 000996 isub temp ,null 
+0x2fb 000997 nbranch p_keyboard_le_send_att_read_response ,zero 
+0x2fc 000998 call le_check_encrypt_state 
+0x2fd 000999 nbranch p_keyboard_le_send_att_read_response_next ,user 
+0x2fe 001000 branch le_send_att_read_response_error_insufficient_auth 
+:      001003 p_keyboard_motion_data_check:
+0x2ff 001004 fetch 1 ,mem_keyboard_consumer_key_status 
+0x300 001005 beq keyboard_consumer_key_release ,p_keyboard_value_consumer_release 
+0x301 001006 branch keyboard_motion_data_check + 3 
+:      001007 p_keyboard_value_tpye_consumer_set:
+0x302 001008 copy temp ,pdata 
+0x303 001009 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
+0x304 001010 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x305 001011 sub temp ,hid_key_null ,null 
+0x306 001012 branch p_keyboard_value_consumer_all_key_release ,zero 
+0x307 001013 beq hid_key_multikey_media ,p_keyboard_value_media 
+0x308 001014 beq hid_key_multikey_vol_down ,p_keyboard_value_vol_down 
+0x309 001015 beq hid_key_multikey_vol_up ,p_keyboard_value_vol_up 
+0x30a 001016 beq hid_key_multikey_mute ,p_keyboard_value_mute 
+0x30b 001017 beq hid_key_multikey_pre_track ,p_keyboard_value_pre_track 
+0x30c 001018 beq hid_key_multikey_next_track ,p_keyboard_value_next_track 
+0x30d 001019 beq hid_key_multikey_paly ,p_keyboard_value_play 
+0x30e 001020 beq hid_key_multikey_stop ,p_keyboard_value_stop 
+0x30f 001022 beq hid_key_ac_home ,p_keyboard_value_ac_home 
+0x310 001023 beq hid_key_mail ,p_keyboard_value_mail 
+0x311 001024 beq hid_key_my_computer ,p_keyboard_value_my_computer 
+0x312 001025 beq hid_key_ac_favorites ,p_keyboard_value_ac_favorites 
+0x313 001026 beq hid_key_calculator ,p_keyboard_value_calculator 
+0x314 001027 beq hid_key_ac_search ,p_keyboard_value_ac_search 
+0x315 001028 beq hid_key_ac_back ,p_keyboard_value_ac_back 
+0x316 001029 beq hid_key_os_soft_kb ,p_keyboard_value_os_soft_kb 
+0x317 001031 beq hid_key_light_down ,p_keyboard_value_light_down 
+0x318 001032 beq hid_key_light_up ,p_keyboard_value_light_up 
+0x319 001033 beq hid_key_ios_android_os_lock ,p_keyboard_value_os_lock 
+0x31a 001035 beq hid_key_mac_eject ,p_keyboard_value_mac_eject 
+0x31b 001036 beq hid_key_ac_forward ,p_keyboard_value_ac_forward 
+0x31c 001037 beq hid_key_ac_stop ,p_keyboard_value_ac_stop 
+0x31d 001039 beq hid_key_android_set ,p_keyboard_value_android_set 
+0x31e 001041 beq hid_key_system_sleep ,p_keyboard_value_system_sleep 
+0x31f 001042 branch keyboard_motion_data_check_next 
+:      001044 p_keyboard_value_consumer_all_key_release:
+:      001045 p_keyboard_value_consumer_release:
+0x320 001046 jam 2 ,mem_keyboard_data_change_flag 
+0x321 001047 fetch 1 ,mem_keyboard_all_press_key_count 
+0x322 001048 call keyboard_value_release_all_key ,blank 
+0x323 001049 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+0x324 001050 fetch 1 ,mem_device_flag 
+0x325 001051 beq mode_24g_device ,p_keyboard_24g_consumer_release 
+0x326 001052 setarg hid_reportid_bit_consumer_key 
+0x327 001053 store 3 ,mem_keyboard_tx_data 
+0x328 001054 branch keyboard_motion_data_check_next 
+:      001056 p_keyboard_24g_consumer_release:
+0x329 001057 setarg hid_reportid_consumer_key 
+0x32a 001058 store 3 ,mem_keyboard_tx_data 
+0x32b 001059 branch keyboard_motion_data_check_next 
+:      001061 p_keyboard_value_media:
+0x32c 001062 fetch 1 ,mem_device_flag 
+0x32d 001063 bne mode_24g_device ,keyboard_value_media 
+0x32e 001064 setarg 0x0183 
+:      001066 p_keyboard_24g_standard_data_send:
+0x32f 001067 store 2 ,mem_keyboard_tx_data + 1 
+0x330 001068 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+0x331 001069 branch keyboard_motion_data_check_next 
+:      001071 p_keyboard_value_vol_down:
+0x332 001072 fetch 1 ,mem_device_flag 
+0x333 001073 bne mode_24g_device ,keyboard_value_vol_down 
+0x334 001074 setarg 0x00ea 
+0x335 001075 branch p_keyboard_24g_standard_data_send 
+:      001077 p_keyboard_value_vol_up:
+0x336 001078 fetch 1 ,mem_device_flag 
+0x337 001079 bne mode_24g_device ,keyboard_value_vol_up 
+0x338 001080 setarg 0x00e9 
+0x339 001081 branch p_keyboard_24g_standard_data_send 
+:      001083 p_keyboard_value_mute:
+0x33a 001084 fetch 1 ,mem_device_flag 
+0x33b 001085 bne mode_24g_device ,keyboard_value_mute 
+0x33c 001086 setarg 0x00e2 
+0x33d 001087 branch p_keyboard_24g_standard_data_send 
+:      001089 p_keyboard_value_pre_track:
+0x33e 001090 fetch 1 ,mem_device_flag 
+0x33f 001091 bne mode_24g_device ,keyboard_value_pre_track 
+0x340 001092 setarg 0x00b6 
+0x341 001093 branch p_keyboard_24g_standard_data_send 
+:      001095 p_keyboard_value_next_track:
+0x342 001096 fetch 1 ,mem_device_flag 
+0x343 001097 bne mode_24g_device ,keyboard_value_next_track 
+0x344 001098 setarg 0x00b5 
+0x345 001099 branch p_keyboard_24g_standard_data_send 
+:      001101 p_keyboard_value_play:
+0x346 001102 fetch 1 ,mem_device_flag 
+0x347 001103 bne mode_24g_device ,keyboard_value_play 
+0x348 001104 setarg 0x00cd 
+0x349 001105 branch p_keyboard_24g_standard_data_send 
+:      001107 p_keyboard_value_stop:
+0x34a 001108 fetch 1 ,mem_device_flag 
+0x34b 001109 bne mode_24g_device ,keyboard_value_stop 
+0x34c 001110 setarg 0x00b7 
+0x34d 001111 branch p_keyboard_24g_standard_data_send 
+:      001113 p_keyboard_value_ac_home:
+0x34e 001114 fetch 1 ,mem_device_flag 
+0x34f 001115 bne mode_24g_device ,keyboard_value_ac_home 
+0x350 001116 setarg 0x0223 
+0x351 001117 branch p_keyboard_24g_standard_data_send 
+:      001119 p_keyboard_value_mail:
+0x352 001120 fetch 1 ,mem_device_flag 
+0x353 001121 bne mode_24g_device ,keyboard_value_mail 
+0x354 001122 setarg 0x018a 
+0x355 001123 branch p_keyboard_24g_standard_data_send 
+:      001125 p_keyboard_value_my_computer:
+0x356 001126 fetch 1 ,mem_device_flag 
+0x357 001127 bne mode_24g_device ,keyboard_value_my_computer 
+0x358 001128 setarg 0x0194 
+0x359 001129 branch p_keyboard_24g_standard_data_send 
+:      001131 p_keyboard_value_ac_favorites:
+0x35a 001132 fetch 1 ,mem_device_flag 
+0x35b 001133 bne mode_24g_device ,keyboard_value_ac_favorites 
+0x35c 001134 setarg 0x022a 
+0x35d 001135 branch p_keyboard_24g_standard_data_send 
+:      001137 p_keyboard_value_calculator:
+0x35e 001138 fetch 1 ,mem_device_flag 
+0x35f 001139 bne mode_24g_device ,keyboard_value_calculator 
+0x360 001140 setarg 0x0192 
+0x361 001141 branch p_keyboard_24g_standard_data_send 
+:      001143 p_keyboard_value_ac_search:
+0x362 001144 fetch 1 ,mem_device_flag 
+0x363 001145 bne mode_24g_device ,keyboard_value_ac_search 
+0x364 001146 setarg 0x0221 
+0x365 001147 branch p_keyboard_24g_standard_data_send 
+:      001149 p_keyboard_value_ac_back:
+0x366 001150 fetch 1 ,mem_device_flag 
+0x367 001151 bne mode_24g_device ,keyboard_value_ac_back 
+0x368 001152 setarg 0x0224 
+0x369 001153 branch p_keyboard_24g_standard_data_send 
+:      001155 p_keyboard_value_os_soft_kb:
+0x36a 001156 fetch 1 ,mem_device_flag 
+0x36b 001157 bne mode_24g_device ,keyboard_value_os_soft_kb 
+0x36c 001158 fetch 1 ,mem_kb_computer_system 
+0x36d 001159 beq system_os_android ,p_keyboard_value_os_soft_kb_android 
+0x36e 001160 setarg 0x01ae 
+0x36f 001161 branch p_keyboard_24g_standard_data_send 
+:      001163 p_keyboard_value_os_soft_kb_android:
+0x370 001164 setarg 0x0307 
+0x371 001165 branch p_keyboard_24g_standard_data_send 
+:      001167 p_keyboard_value_light_down:
+0x372 001168 fetch 1 ,mem_device_flag 
+0x373 001169 bne mode_24g_device ,keyboard_value_light_down 
+0x374 001170 setarg 0x0070 
+0x375 001171 branch p_keyboard_24g_standard_data_send 
+:      001173 p_keyboard_value_light_up:
+0x376 001174 fetch 1 ,mem_device_flag 
+0x377 001175 bne mode_24g_device ,keyboard_value_light_up 
+0x378 001176 setarg 0x006f 
+0x379 001177 branch p_keyboard_24g_standard_data_send 
+:      001179 p_keyboard_value_os_lock:
+0x37a 001180 fetch 1 ,mem_device_flag 
+0x37b 001181 bne mode_24g_device ,keyboard_value_os_lock 
+0x37c 001182 setarg 0x0030 
+0x37d 001183 branch p_keyboard_24g_standard_data_send 
+:      001185 p_keyboard_value_mac_eject:
+0x37e 001186 fetch 1 ,mem_device_flag 
+0x37f 001187 bne mode_24g_device ,keyboard_value_mac_eject 
+0x380 001188 setarg 0x00b8 
+0x381 001189 branch p_keyboard_24g_standard_data_send 
+:      001191 p_keyboard_value_ac_forward:
+0x382 001192 fetch 1 ,mem_device_flag 
+0x383 001193 bne mode_24g_device ,keyboard_value_ac_forward 
+0x384 001194 setarg 0x0225 
+0x385 001195 branch p_keyboard_24g_standard_data_send 
+:      001197 p_keyboard_value_ac_stop:
+0x386 001198 fetch 1 ,mem_device_flag 
+0x387 001199 bne mode_24g_device ,keyboard_value_ac_stop 
+0x388 001200 setarg 0x0226 
+0x389 001201 branch p_keyboard_24g_standard_data_send 
+:      001203 p_keyboard_value_android_set:
+0x38a 001204 fetch 1 ,mem_device_flag 
+0x38b 001205 bne mode_24g_device ,keyboard_value_ac_refresh 
+0x38c 001206 setarg 0x0306 
+0x38d 001207 branch p_keyboard_24g_standard_data_send 
+:      001209 p_keyboard_value_system_sleep:
+0x38e 001210 fetch 1 ,mem_device_flag 
+0x38f 001211 bne mode_24g_device ,keyboard_value_system_sleep 
+0x390 001212 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+0x391 001213 setarg 0x02 
+0x392 001214 store 1 ,mem_keyboard_tx_data + 1 
+0x393 001215 branch keyboard_motion_data_check_next 
+0x394 001216 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+:      001219 p_keyboard_app_enter_hibernate:
+0x395 001220 call keyboard_setgpio_hibernate 
+0x396 001221 branch app_enter_hibernate 
+:      001223 p_keyboard_key_process:
+0x397 001224 arg mem_keyscan_value_current ,rega 
+0x398 001225 arg mem_keyscan_value_check ,regb 
+0x399 001226 arg 20 ,loopcnt 
+0x39a 001227 call string_compare 
+0x39b 001228 nbranch p_keyboard_press_change_or_no_key ,zero 
+0x39c 001229 branch keyboard_key_process + 5 
+:      001231 p_keyboard_idle:
+0x39d 001232 call p_keyboard_evt_ui_timer_check 
+0x39e 001233 branch keyboard_idle + 1 
+:      001235 p_keyboard_evt_ui_timer_check:
+0x39f 001236 arg 0 ,rega 
+0x3a0 001237 fetcht 4 ,mem_keyboard_evt_btclk 
+0x3a1 001238 copy clkn_bt ,regb 
+0x3a2 001239 copy regb ,pdata 
+0x3a3 001240 isub temp ,null 
+0x3a4 001241 ncall ui_timer_timeout ,positive 
+:      001242 p_keyboard_evt_ui_timer_check_loop:
+0x3a5 001243 copy regb ,pdata 
+0x3a6 001244 increase 40 ,temp 
+0x3a7 001245 isub temp ,null 
+0x3a8 001246 nbranch p_keyboard_evt_ui_timer_check_end ,positive 
+0x3a9 001247 increase 1 ,rega 
+0x3aa 001248 and rega ,0x0f ,pdata 
+0x3ab 001249 nbranch p_keyboard_evt_ui_timer_check_loop ,blank 
+0x3ac 001250 arg 0 ,rega 
+0x3ad 001251 call p_keyboard_evt_ui_timer_check_send_evt 
+:      001252 p_keyboard_evt_ui_timer_init:
+0x3ae 001253 copy clkn_bt ,pdata 
+0x3af 001254 store 4 ,mem_keyboard_evt_btclk 
+0x3b0 001255 rtn 
+:      001258 p_keyboard_evt_ui_timer_check_end:
+0x3b1 001259 copy rega ,pdata 
+0x3b2 001260 rtn blank 
+0x3b3 001261 increase -40 ,temp 
+0x3b4 001262 set0 28 ,temp 
+0x3b5 001263 storet 4 ,mem_keyboard_evt_btclk 
+:      001264 p_keyboard_evt_ui_timer_check_send_evt:
+0x3b6 001265 store 1 ,mem_keyboard_evt_timer_count 
+:      001266 p_keyboard_evt_50ms_loop:
+0x3b7 001267 fetch 1 ,mem_keyboard_evt_timer_count 
+0x3b8 001268 rtn blank 
+0x3b9 001269 increase -1 ,pdata 
+0x3ba 001270 store 1 ,mem_keyboard_evt_timer_count 
+0x3bb 001271 call p_keyboard_delay_lpm_timer 
+0x3bc 001272 branch p_keyboard_evt_50ms_loop 
+:      001274 p_keyboard_delay_lpm_timer:
+0x3bd 001275 fetch 1 ,mem_keyboard_delay_lpm_flag 
+0x3be 001276 rtn blank 
+0x3bf 001277 fetch 1 ,mem_device_fast_conn_flag 
+0x3c0 001278 beq 0xff ,p_keyboard_delay_lpm_timer_next 
+0x3c1 001279 jam 1 ,mem_lpm_mode 
+:      001280 p_keyboard_delay_lpm_timer_next:
+0x3c2 001281 jam 0 ,mem_keyboard_delay_lpm_flag 
+0x3c3 001282 rtn 
+:      001284 p_keyboard_press_change_or_no_key:
+0x3c4 001285 jam 0 ,mem_lpm_mode 
+0x3c5 001286 jam 1 ,mem_keyboard_delay_lpm_flag 
+0x3c6 001287 branch keyboard_press_change_or_no_key 
+:      001289 p_g24_transmit_no_interrupt:
+0x3c7 001290 branch keyboard_g24_transmit_no_interrupt 
+:      001293 p_keyboard_24g_start_pair_mode:
+0x3c8 001299 call keyboard_low_voltage_led_off 
+0x3c9 001300 call keyboard_pairing_check_otp_offset 
+0x3ca 001301 jam 0 ,mem_keyboard_data_change_flag 
+0x3cb 001302 fetch 2 ,mem_24g_pair_timeout 
+0x3cc 001303 nrtn blank 
+0x3cd 001304 setarg 0 
+0x3ce 001305 store 2 ,mem_device_no_data_timer 
+0x3cf 001306 store 2 ,mem_24g_reconn_timeout 
+0x3d0 001307 store 1 ,mem_24g_reconn_type 
+0x3d1 001308 arg keyboard_24g_pairing_flag ,queue 
+0x3d2 001309 call keyboard_enable_function_flag 
+0x3d3 001310 call keyboard_stop_discovery 
+0x3d4 001311 jam type_kb ,mem_24g_data_type 
+0x3d5 001312 branch g24_pair_start 
+:      001315 p_keyboard_device_pair_led_timer:
+0x3d6 001316 fetch 1 ,mem_device_flag 
+0x3d7 001317 beq mode_24g_device ,p_keyboard_device_24g_pair_led 
+0x3d8 001318 branch keyboard_device_pair_led_timer + 2 
+:      001320 p_keyboard_device_24g_pair_led:
+0x3d9 001321 fetch 2 ,mem_24g_pair_timeout 
+0x3da 001322 branch p_keyboard_pair_sucess_led_move ,blank 
+0x3db 001323 branch keyboard_device_pair_led 
+:      001325 p_keyboard_pair_sucess_led_move:
+0x3dc 001326 fetch 1 ,mem_keyboard_mode_led_on_timer 
+0x3dd 001327 nrtn blank 
+0x3de 001330 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x3df 001331 nbranch p_keyboard_pair_sucess_led_move_next ,blank 
+0x3e0 001332 fetch 1 ,mem_keyboard_led_status 
+0x3e1 001333 bbit1 kb_pc_keysel_capslock ,p_keyboard_pair_sucess_led_move_next 
+0x3e2 001334 branch keyboard_device_24g_led_off 
+:      001335 p_keyboard_pair_sucess_led_move_next:
+0x3e3 001336 rtn 
+:      001338 p_keyboard_adc_vol_init:
+0x3e4 001339 fetch 1 ,mem_keyboard_power_type 
+0x3e5 001340 beq keyboard_battary_1v5 ,keyboard_adc_vol_1v5_init 
+0x3e6 001341 beq keyboard_battary_3v0 ,p_keyboard_adc_vol_3v0_init 
+0x3e7 001342 beq keyboard_battary_4v2 ,keyboard_adc_vol_4v2_init 
+0x3e8 001343 branch keyboard_adc_vol_1v5_init 
+:      001345 p_keyboard_adc_vol_3v0_init:
+0x3e9 001346 setarg 0xbe0122 
+0x3ea 001347 store 3 ,mem_keyboard_vdd_full_vol 
+0x3eb 001348 setarg 0x00dc00 
+0x3ec 001349 istore 3 ,contw 
+0x3ed 001350 rtn 
+:      001351 p_mouse_adc_bat_percent_lowpower_out:
+0x3ee 001352 ifetch 8 ,rega 
+0x3ef 001353 store 8 ,mem_pdatatemp 
+:      001354 p_mouse_adc_bat_percent_lowpower_out_battery:
+0x3f0 001355 call adc_clear_no_power_flag 
+0x3f1 001356 call p_adc_clear_low_power_flag 
+0x3f2 001357 fetch 2 ,mem_pdatatemp + 6 
+0x3f3 001358 fetcht 2 ,mem_pdatatemp + 2 
+0x3f4 001359 isub temp ,null 
+0x3f5 001360 ncall adc_set_no_power_flag ,positive 
+0x3f6 001361 fetcht 2 ,mem_pdatatemp + 4 
+0x3f7 001362 isub temp ,null 
+0x3f8 001363 ncall p_adc_set_low_power_flag ,positive 
+0x3f9 001364 branch mouse_adc_bat_level_set 
+:      001366 p_adc_clear_low_power_flag:
+0x3fa 001367 fetcht 1 ,mem_adc_power_flag 
+0x3fb 001368 set0 0 ,temp 
+0x3fc 001369 branch adc_set_power_flag 
+:      001371 p_adc_set_low_power_flag:
+0x3fd 001372 fetcht 1 ,mem_adc_power_flag 
+0x3fe 001373 set1 0 ,temp 
+0x3ff 001374 branch adc_set_power_flag 
+:      001376 p_gpio_set_ds_bit:
+0x400 001377 arg core_gpio_ds ,contw 
+0x401 001378 and temp ,0x07 ,queue 
+0x402 001379 rshift3 temp ,pdata 
+0x403 001380 and_into 3 ,pdata 
+0x404 001381 iadd contw ,contw 
+0x405 001382 ifetch 1 ,contw 
+0x406 001383 qset1 pdata 
+0x407 001384 istore 1 ,contw 
+0x408 001385 rtn 
Index: output/bt_program23.meta
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_program23.meta	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_program23.meta	(working copy)
@@ -0,0 +1,1385 @@
+define SECURE_CONNECTION
+define NEC
+define DEBUG_RF_INIT
+define COMPILE_SHUTTER
+define COMPILE_MOUSE
+define COMPILE_MODULE
+define COMPILE_USB
+define COMPILE_DONGLE
+define COMPILE_LE
+define COMPILE_24G
+define COMPILE_CAR
+define COMPILE_REMOTE_CAR
+define COMPLIE_ADPCM
+define SDKCODE
+INCLUDE "bt_format"
+org 0x0000  // start from patch ram address start
+
+
+	bbit1 8,pf_patch_ext
+	beq patch00_0,p_soft_reset	
+	beq patch03_2,p_initialize_radio_cont
+	beq patch04_5,p_lpm_sleep
+	beq patch05_0,p_lpm_dispatch
+	beq patch07_6,p_keyboard_setting_config_next
+	beq patch07_7,p_keyboard_load_info_check
+	beq patch08_0,p_keyboard_store_device_info
+	//beq patch08_2,p_keyboard_priority_bb_event
+	beq patch08_3,p_keyboard_bb_event_timer
+	beq patch08_4,p_keyboard_adc_vol_init
+	beq patch09_1,p_keyboard_idle	
+	beq patch09_3,p_keyboard_work_start
+	beq patch09_4,p_kscan_dispatch
+	beq patch09_6,p_keyboard_keyvalue_chang
+	beq patch0a_1,p_keyboard_keyvalue_fn_replace_press
+	beq patch0a_6,p_keyboard_long_button_bt_discovery
+	beq patch0a_7,p_keyboard_24g_start_pair_mode
+	beq patch0b_1,p_keyboard_motion_data_check
+	beq patch0b_4,p_keyboard_value_tpye_consumer_set
+	beq patch0b_6,p_keyboard_lpm_before_common
+	beq patch0d_2,p_keyboard_le_parse_att
+	beq patch0f_4,p_keyboard_app_enter_hibernate
+	beq patch10_2,p_mouse_adc_bat_percent_lowpower_out
+	beq patch14_3,keyboard_24g_hibernate_set
+	beq patch1d_1,p_otp_write
+	beq patch1d_2,p_otp_read_data
+	beq patch19_7,p_keyboard_init
+	beq patch1f_2,p_gpio_set_wake_by_current_state
+	branch assert
+
+pf_patch_ext:
+	rtneq patch3f_7
+	beq patch35_5,p_g24_pair_sm_common
+	beq patch37_5,p_g24_reconn_dispatch_next
+	beq patch38_2,p_g24_transmit_no_interrupt
+	beq patch3e_3,p_initialize_radio2
+	branch assert
+p_initialize_radio2:
+//	bpatchx patch3e_3,mem_patch3e
+	until null,lpo_edge
+	jam 0x60,0x8a86
+	jam 0x3b,0x8a8b 
+
+	call dpll_on
+	jam 0,core_config
+	jam CLKSEL_DPLL,core_clksel
+	setarg 0x557474
+	store 3,0x8968
+	jam 0x6e,0x8960
+	call rx_dcoc
+	call rfpll_aac_ghpc
+	call set_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	jam 0x06,0x8a30
+	jam 0xdd,0x8a32
+	jam 0xe0,0x8a88
+	jam 0x2d,0x8a8c
+	jam 0x78,0x8a31
+	call sadc_calibration
+	call dpll_ring_ibias_calc
+	branch set_bistfix_save_patchram
+
+p_soft_reset:
+	nbranch p_soft_reset_next,wake
+	until null,lpo_edge
+	until null,lpo_edge
+p_soft_reset_next:	
+	call keyboard_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_keyboard_pb_button_gpio
+	beq UI_BUTTON_GPIO_DISABLE,soft_reset+1
+	copy pdata,queue
+	fetch 4,mem_saved_gpio_in
+	qisolate0 pdata					// bt button gpio num
+	call keyboard_pb_set,true
+	branch soft_reset+1
+	///////////////////
+p_lpm_sleep:
+	//call xtal_fast_wake
+	fetch 2,mem_cb_before_lpm_sleep
+	call callback_func
+	//jam 0x3f,0x8078
+	fetch 4,mem_sleep_counter_all	// sleep total time, 32k unit
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	call lpm_save_context
+	fetch 1,mem_lpm_hv_sel
+	set1 LPM_DOZE_EN_BIT, pdata
+	call lpm_write_sel_hv
+	ncall lpm_preon_counter,wake
+	until null,lpo_edge
+	copy clkn,pdata
+	store 6,mem_sleep_clkn
+	branch lpm_sleep_skip_cb_function+10	
+p_g24_pair_sm_common:
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	branch g24_pair_sm_common+12
+		
+p_g24_reconn_dispatch_next:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch p_keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+
+p_keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call p_keyboard_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+
+p_keyboard_g24_ackpayload_parse:
+	call g24_ackpayload_parse
+	fetch 1,mem_24g_rxbuf+1
+	compare 0x08,pdata,0xf8
+	nrtn true
+	fetch 1,mem_24g_rxbuf+2		// pc sleep mouse ackpayload: 01 08 ff
+	beq 0xff,keyboard_24g_hibernate_set
+	store 1,mem_keyboard_led_status
+	rtn
+
+p_initialize_radio_cont:
+	until null,lpo_edge
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	jam 0xcd,0x8a13
+//	jam 0x10,0x8a06
+	fetch 1,0x8a06
+	and pdata,0xfc,pdata
+	store 1,0x8a06
+	branch initialize_radio_cont+6
+
+p_otp_read_data:
+	call enable_otp_read
+	call otp_read_data1
+	branch otp_disable_chgpump
+
+
+p_otp_write:
+	//bpatch patch1d_1,mem_patch1d
+	call otp_enable_chgpump65
+	call otp_set_addr
+	call otp_reset
+p_otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+p_otp_program_bit:
+	set0 mark_otp_write,mark
+p_otp_program_bit2:
+	qisolate0 temp
+	branch p_otp_skip_0,true
+	fetch 1,core_otp_din
+	set1 6,pdata				
+	set1 7,pdata				
+	store 1,core_otp_din
+	jam 0x02,core_otp_ctrl	
+	jam 0x82,core_otp_ctrl
+	set0 7,pdata				
+	store 1,core_otp_din
+	jam 0x8a,core_otp_ctrl	
+	nop 11
+	jam 0xca,core_otp_ctrl	
+	nop 33
+	jam 0x4a,core_otp_ctrl	
+	nop 44
+	jam 0xca,core_otp_ctrl	
+	nop 22
+	jam 0x8a,core_otp_ctrl	
+	nop 33
+	jam 0x82,core_otp_ctrl	
+	nop 1
+	jam 0x92,core_otp_ctrl	
+	nop 10
+	jam 0xb2,core_otp_ctrl	
+	fetch 1,core_otp_rdata
+	jam 0x92,core_otp_ctrl	
+	nop 1
+	jam 0x82,core_otp_ctrl	
+	nop 1
+	qisolate0 pdata
+	branch p_otp_program_bit,true	
+	bmark1 mark_otp_write,p_otp_skip_0
+	set1 mark_otp_write,mark
+	branch p_otp_program_bit2
+
+p_otp_skip_0:
+	fetch 2,core_otp_addr
+	increase 1,pdata
+	store 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch p_otp_program_bit,true
+	loop p_otp_program
+	branch otp_disable_chgpump
+
+p_gpio_set_wake_by_current_state:
+	set1 gpio_active_bit,temp
+	call gpio_get_bit
+	nsetflag true,gpio_active_bit,temp
+	branch gpio_set_wake
+
+//
+p_lpm_dispatch:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	rtn
+	fetch 1,mem_keyboard_fn_flag
+	nrtn blank
+	fetch 1,mem_keyboard_control_key_flag
+	nrtn blank
+	fetch 1,mem_device_direct_timer
+	nrtn blank
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	branch lpm_dispatch+4
+
+p_keyboard_init:
+	//call ice_break
+	call app_param_init
+	call enable_authrom
+	call p_keyboard_setting_config
+	call p_keyboard_gpio_init
+	call p_keyboard_low_vol_mult_set
+	branch keyboard_init+4
+
+p_keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,p_keyboard_low_vol_mult_ble_set
+	call g24_interval_param_8ms
+	branch mouse_24g_long_sleep_set
+p_keyboard_low_vol_mult_ble_set:
+	setarg 160			// 320ms
+	call keyboard_mult_auto_get
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	setarg 80			// 100ms
+	branch keyboard_mult_auto_get
+
+p_keyboard_setting_config:
+	call p_keyboard_gpio_drive_strength_init
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call p_keyboard_param_init
+	jam 0x0a,mem_lpm_overhead
+	call p_keyboard_device_led_all_off
+	branch keyboard_setting_config+5
+p_keyboard_gpio_drive_strength_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_gpio_drive_strength_loop:
+	ifetcht 1,regb
+	call p_gpio_set_ds_bit
+	increase 1,regb
+	loop p_keyboard_gpio_drive_strength_loop
+	rtn
+p_keyboard_device_led_all_off:
+	call keyboard_low_voltage_led_off
+	branch keyboard_device_led_all_off+1
+
+p_keyboard_param_init:
+	call keyboard_compare_addr_init
+	call p_keyboard_param_common_init
+	branch	keyboard_param_init+2
+
+p_keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg mem_keyboard_le_table
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+p_keyboard_store_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,p_keyboard_store_otp_device_info
+	branch keyboard_store_device_info+1
+
+p_keyboard_store_otp_device_info:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	rtn positive
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+
+p_keyboard_work_start:
+	setarg 0x0100
+	store 2,mem_lpm_interval
+	jam 0x0c,mem_lpm_overhead
+	branch keyboard_start_work+1
+
+p_kscan_dispatch:
+	call p_keyboard_keyscan
+	call p_keyboard_key_process
+	branch kscan_dispatch+3
+
+p_keyboard_keyscan:
+	call p_keyboard_gpio_init
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value_new
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+	call keyboard_clk_input
+p_keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,p_keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch p_keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+p_keyboard_keyscan_wait_wake_next:
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
+	call gpio_get_bit
+	branch p_keyboard_keyscan_wait_wake_next,true
+	call p_keyboard_keyscan_get_exmcu_value
+	call p_keyboard_keyscan_get_mcu_value
+	call keyboard_clk_input
+	call keyboard_stb_state_high							// exmcu sleep
+p_keyboard_keyscan_copy_value:
+	fetch 2,mem_kb_excol_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_compare_col_excol_gpio_loop:		// loop 12 times
+	ifetcht 1,regb
+	fetch 2,mem_kb_col_ptr
+	copy pdata,rega
+	copy rega,regc
+	arg 20,loopcnt
+p_keyboard_compare_col_gpio_loop:
+	ifetch 1,rega
+	isub temp,null
+	branch keyboard_copy_value_exmcu_to_mcu,zero
+	increase 1,rega
+	loop p_keyboard_compare_col_gpio_loop
+p_keyboard_compare_col_excol_gpio_loop_next:
+	increase 1,regb
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,11,null
+	branch p_keyboard_compare_col_excol_gpio_loop,positive
+	// call keyboard_gpio_pu_idle
+	branch p_keyboard_key_row_init
+
+p_keyboard_copy_value_exmcu_to_mcu:
+	fetch 2,mem_keyscan_value_ptr
+	copy pdata,contw
+	copy rega,pdata
+	isub regc,pdata
+	iadd contw,contw							// offset = rega-regc
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	copy pdata,regc
+	fetch 1,mem_keyscan_col_loop_count
+	iadd regc,regc
+	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
+	istore 1,contw
+	branch p_keyboard_compare_col_excol_gpio_loop_next
+
+
+
+p_keyboard_keyscan_get_mcu_value:
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_keyscan_mcu_start:		// loop 20 times
+	jam 0,mem_keyscan_value_temp
+	ifetcht 1,regb
+	isolate1 7,temp								// exmcu gpio
+	branch p_keyboard_keyscan_mcu_start_loop,true
+	call gpio_out_active
+	call p_keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_set_high_impedance
+
+p_keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch p_keyboard_keyscan_mcu_start,positive
+	rtn
+p_keyboard_keyscan_get_exmcu_value:
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
+	call keyboard_clk_state_low
+
+	call p_keyboard_keyscan_exmcu_get_col_value
+	call keyboard_clk_state_high
+
+	call p_keyboard_keyscan_exmcu_get_col_value
+	sub pdata,11,null
+	branch p_keyboard_keyscan_exmcu_start_loop,positive
+	branch keyboard_clk_state_low
+	
+p_keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	call p_keyboard_keyscan_get_col_value
+	fetch 2,mem_keyscan_exmcu_value_ptr
+p_keyboard_keyscan_value_store:
+	copy  pdata,contw
+	fetch 1,mem_keyscan_col_loop_count
+	iadd contw,contw
+	fetch 1,mem_keyscan_value_temp
+	istore 1,contw
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	rtn
+p_keyboard_keyscan_get_col_value:        
+	fetch 2,mem_kb_row_ptr    
+	copy pdata,regc        
+	arg 8,loopcnt      
+p_keyboard_keyscan_get_col_value_loop:              	// loop 8 times
+	ifetcht 1,regc
+	call gpio_out_inactive
+	ifetcht 1,regc
+	call gpio_set_high_impedance
+	nop 240        
+	ifetcht 1,regc       
+	call gpio_get_bit    
+	fetch 1,mem_keyscan_value_temp    
+	rshift pdata,pdata      
+	setflag true,7,pdata       
+	store 1,mem_keyscan_value_temp 
+	increase 1,regc       
+	loop p_keyboard_keyscan_get_col_value_loop
+	rtn
+
+p_keyboard_lpm_before_common:
+	call clear_wake
+
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call gpio_set_wake
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+p_keyboard_key_col_wake_init:
+	ifetcht 1,regb
+	isolate1 7,temp				// exmcu gpio
+	ncall gpio_out_active,true
+	increase 1,regb
+	loop p_keyboard_key_col_wake_init
+
+	call keyboard_gpio_pu_idle
+	jam 0,mem_qdec_set_flag
+
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_key_row_wake_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall p_keyboard_key_row_wake_set,zero
+	ifetcht 1,regb
+	call gpio_set_high_impedance
+	increase 1,regb
+	loop p_keyboard_key_row_wake_init
+
+	call lpm_puchk_set_check
+	call lpm_write_gpio_wakeup
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	branch keyboard_adc_gpio_set_before_hibernate
+
+p_keyboard_key_row_wake_set:
+	fetch 1,mem_same_keyvalue_timerout_flag                                
+	branch gpio_set_wake,blank
+	// branch gpio_set_wake,blank
+	branch gpio_set_wake_by_current_state
+
+p_gpio_set_low_pullup_wakeup:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	arg 3,debug
+	call get_gpio_wakeup_index
+	isolate0 0,temp
+	branch p_gpio_set_low_pullup_low4bit,true
+	lshift4 debug,debug
+p_gpio_set_low_pullup_low4bit:
+	ifetch 1,contw
+	iand alarm,pdata
+	ior debug,pdata
+	istore 1,contw	
+	rtn		
+p_keyboard_gpio_init:
+	call clear_wake
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call device_gpio_config_input_pu
+
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_DISABLE_ICE,pdata
+	call p_lpm_write_ice_disable,true
+		//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+	call p_keyboard_key_row_init
+	call lpm_write_gpio_wakeup
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+p_keyboard_key_cow_init:
+	ifetcht 1,regb
+	isolate1 7,temp						// exmcu gpio
+	ncall gpio_set_high_impedance,true
+	increase 1,regb
+	loop keyboard_key_cow_init
+	rtn
+
+p_keyboard_key_row_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_key_row_init_loop:
+	ifetcht 1,regb
+	call gpio_set_high_impedance        
+	call p_gpio_clear_low_pullup      
+	increase 1,regb       
+	loop p_keyboard_key_row_init_loop    
+	rtn
+
+p_gpio_clear_low_pullup:     
+	call gpio_set_low_pullup     
+	sub temp,UI_BUTTON_GPIO_DISABLE,null      
+	rtn zero       
+	arg 0,debug      
+	call get_gpio_wakeup_index        
+	isolate0 0,temp        
+	branch gpio_clear_low_pullup_low4bit,true       
+	lshift4 debug,debug
+gpio_clear_low_pullup_low4bit:     
+	ifetch 1,contw        
+	iand alarm,pdata      
+	ior debug,pdata      
+	istore 1,contw             
+	rtn        
+
+p_lpm_write_ice_disable:
+	fetch 1,core_lpm_sysctl
+	set0 ice_mode,pdata
+	store 1,core_lpm_sysctl
+	rtn
+
+p_keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,p_keyboard_device_poweron_030_led
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+
+p_keyboard_device_poweron_030_led:
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_power_led_off,blank
+	branch keyboard_power_led_on
+
+p_keyboard_num_capslock_led_on_timer:
+	//fetch 1,mem_keyboard_device_poweron_timer
+	//rtnne 0
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_num_capslock_led_on_timer_next
+	fetch 1,mem_device_le_bb_connected_flag
+	rtneq 0
+p_keyboard_num_capslock_led_on_timer_next:	
+	fetch 1,mem_keyboard_mode_led_on_timer
+	rtnne 0
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_led_check
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_num_caps_scoll_led_on_timer
+	isub temp,pdata
+	branch p_keyboard_num_cap_scoll_led_check,positive
+	call keyboard_numlock_led_off
+	call keyboard_scrolllock_led_off
+	branch keyboard_capslock_led_off
+
+p_keyboard_num_cap_scoll_led_check:
+	call keyboard_numlock_led_check_on
+	call keyboard_scrolllock_led_check_on
+	branch p_keyboard_capslock_led_check_on
+p_keyboard_capslock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_CAPSLOCK,keyboard_capslock_led_off
+	jam 0,mem_keyboard_device_poweron_timer
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_active
+	
+p_keyboard_bb_event_timer:
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	//led
+	call keyboard_low_voltage_led_timer
+	call p_keyboard_num_capslock_led_on_timer
+	call keyboard_rgb_on_timer
+	call p_keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call p_keyboard_device_pair_led_timer
+	//key
+	call p_keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+
+	// g24
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+
+	//le
+	call keyboard_check_discovery_timeout_timer
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer
+	call keyboard_le_auto_recognize_timer
+
+	call mouse_current_mult_update_timer
+	call keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+	branch keyboard_check_no_data_timeout_timer
+
+p_keyboard_key_press_timer:
+	//fetch 1,mem_keyboard_switch_device_flag
+	//bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,p_keyboard_device_select_g24_press_timer
+	call p_keyboard_device_select_g24_nopress_timer
+	//fetch 1,mem_keyboard_switch_device_flag
+	//bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,p_keyboard_device_select_bt_press_timer
+	branch p_keyboard_device_select_bt_nopress_timer
+
+
+p_keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call p_keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_store_device_number:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,mouse_write_otp_device_flag
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_device_number
+	rtn
+p_keyboard_keyvalue_chang:
+	call keyboard_keyvalue_normal_replace
+	
+	call p_keyboard_keyvalue_fn_replace
+	call p_keyboard_keyvalue_commbination_replace
+	branch keyboard_keyvalue_change+14
+
+p_keyboard_keyvalue_commbination_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_PRINT_SCREEN,keyboard_commination_screen_shot_replace
+	beq HID_KEY_PAGE_UP,keyboard_commination_pageup_replace
+	beq HID_KEY_PAGE_DOWN,keyboard_commination_pagedown_replace
+	beq HID_KEY_HOME,keyboard_commination_home_replace
+	beq HID_KEY_END,keyboard_commination_end_replace
+	beq HID_KEY_SELECT_ALL,keyboard_commination_select_all
+	beq HID_KEY_COPY,keyboard_commbination_copy
+	beq HID_KEY_PASTE,keyboard_commbination_paste
+	beq HID_KEY_CUT,keyboard_commbination_cut
+	beq HID_KEY_ALL_OS_LOCK,keyboard_commination_os_lock
+	beq HID_KEY_OSK,keyboard_commbination_osk
+	beq HID_KEY_SEARCH,keyboard_commbination_search
+	beq HID_KEY_LANGUAGE,keyboard_commbination_language
+	beq HID_KEY_APP_TILING,keyboard_commbination_app_tiling
+	beq HID_KEY_ALL_OS_HOME,p_keyboard_commination_all_ac_home_replace
+	rtn
+
+p_keyboard_commination_all_ac_home_replace:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_MAC,p_keyboard_value_MAC_home
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,p_keyboard_value_ac_home_key
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_value_MAC_home
+p_keyboard_value_ac_home_key:	
+	setarg HID_KEY_AC_HOME
+	branch keyboard_keyvalue_store_temp
+p_keyboard_value_MAC_home:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_H,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+p_keyboard_keyvalue_fn_replace:
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate1 0,pdata
+	call keyboard_commbination_delay_release_clear,true
+	call p_keyboard_keyvalue_nfn_replace
+	fetch 1,mem_keyboard_fn_flag
+	ncall keyboard_keyvalue_fn_replace_press,blank
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,p_keyboard_fn_lock_check
+	fetch 1,mem_keyboard_fn_lock_flag
+	branch p_keyboard_fn_lock_check+1
+
+p_keyboard_fn_lock_check:
+	fetch 1,mem_keyboard_fn_first
+	fetcht 1,mem_keyboard_fn_flag
+	ixor temp,pdata
+	//fetch 1,mem_kb_computer_system
+	//beq SYSTEM_OS_ANDROID,p_keyboard_fn_lock_check_next
+	//beq SYSTEM_OS_IOS,p_keyboard_fn_lock_check_next
+	rtn zero
+//p_keyboard_fn_lock_check_next:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_ESC,keyboard_keyvalue_fn_esc
+	beq HID_KEY_DELETE,keyboard_keyvalue_fn_delete
+	beq HID_KEY_F1,p_keyboard_keyvalue_f1
+	beq HID_KEY_F2,p_keyboard_keyvalue_f2
+	beq HID_KEY_F3,p_keyboard_keyvalue_f3
+	beq HID_KEY_F4,p_keyboard_keyvalue_f4
+	sub pdata,HID_KEY_F12,null
+	nrtn positive
+	arg HID_KEY_F1,temp
+	isub temp,pdata
+	nrtn positive
+	arg mem_keyboard_fn_f1,contr		//  HID_KEY_F1 <= keyvalue <= HID_KEY_F12
+	iadd contr,contr
+	ifetch 1,contr
+	branch keyboard_keyvalue_store_temp
+	
+p_keyboard_keyvalue_nfn_replace:
+	fetch 1,mem_kb_computer_system
+	rtnne SYSTEM_OS_IOS
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq 0x35,p_keyboard_ios_0x35
+	rtn
+p_keyboard_ios_0x35:
+	fetch 1,mem_keyboard_shift_flag
+	rtneq 1
+	jam 0x40,mem_keyboard_commbination_control_key_value
+	jam 0x35,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+p_keyboard_keyvalue_fn_replace_press:
+	call keyboard_keyvalue_fn_lock_replace
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_UP_ARROW,keyboard_keyvalue_fn_up_arrow
+	beq HID_KEY_DOWN_ARROW,keyboard_keyvalue_fn_down_arrow
+	beq HID_KEY_LEFT_ARROW,keyboard_keyvalue_fn_left_arrow
+	beq HID_KEY_RIGHT_ARROW,keyboard_keyvalue_fn_right_arrow
+	//beq HID_KEY_LEFT_CTRL,keyboard_keyvalue_fn_left_ctrl
+	//beq HID_KEY_SPACE,keyboard_keyvalue_fn_space
+	beq HID_KEY_W,keyboard_keyvalue_os_android
+	beq HID_KEY_E,keyboard_keyvalue_os_windows
+	beq HID_KEY_Q,keyboard_keyvalue_os_ios
+	rtn
+
+p_keyboard_keyvalue_f1:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_keyvalue_ios_back
+	setarg HID_KEY_AC_BACK
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_ios_back:	
+	setarg HID_KEY_LIGHT_DOWN
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_f2:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_keyvalue_ios_f2
+	setarg HID_KEY_MAIL
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_ios_f2:
+	setarg HID_KEY_LIGHT_UP	
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_f3:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_keyvalue_ios_f3
+	beq SYSTEM_OS_ANDROID,p_keyboard_keyvalue_fn_android_f3
+	jam 0x08,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_I,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+p_keyboard_keyvalue_ios_f3:
+	setarg HID_KEY_OS_SOFT_KB	
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_fn_android_f3:
+	setarg HID_KEY_android_set	
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_f4:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_keyvalue_ios_f4
+	setarg HID_KEY_MULTIKEY_MEDIA
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_ios_f4:
+	jam 0x0a,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_3,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+p_keyboard_long_button_bt_discovery:
+	fetch 1,mem_device_discovery_timer
+	rtnne 0
+	jam 0,mem_keyboard_led_status
+	call keyboard_capslock_led_off
+	call keyboard_low_voltage_led_off
+	branch keyboard_long_button_bt_discovery+2
+
+/////////////////////////////////////store otp///////////////////////////////////////
+p_keyboard_setting_config_next:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info
+	branch keyboard_setting_config+11
+
+p_keyboard_load_info_check:
+	call p_keyboard_app_initflag_check
+	branch keyboard_load_info_check+2
+
+p_keyboard_app_initflag_check:
+	fetch 1,mem_device_flag
+	arg 0xff,temp
+	isub temp,null
+	branch keyboard_app_initflag_check+4,zero
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+	branch keyboard_app_initflag_check+4
+
+///////////////////////////ATT fix//////////////////////
+p_keyboard_le_parse_att:
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,p_keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2
+
+p_keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	branch keyboard_le_send_att_read_blob_response
+p_keyboard_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,p_keyboard_le_send_att_read_response_check_auth
+//input:temp is handle
+p_keyboard_le_send_att_read_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,p_keyboard_le_send_att_read_response+3
+	bbit0 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL,p_keyboard_le_send_att_read_response_next
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+p_keyboard_le_send_att_read_response_next:
+	fetch 2,mem_le_att_handle
+	beq 0x05,keyboard_le_send_att_appearance
+	beq 0x10,keyboard_le_send_att_pnp_id
+p_keyboard_le_send_att_read_response_next_1:
+	fetcht 2,mem_le_att_handle
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,p_le_send_att_read_response
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_le_send_att_read_response,zero
+	call le_get_search_max_mtu_data
+	fetcht 2,mem_keyboard_le_hid_map
+	copy temp,contr
+	ifetcht 2,contr
+	increase 1,temp
+	call not_greater_than
+	branch p_le_send_att_read_response_less
+
+//input:temp is handle
+p_le_send_att_read_response:
+	call le_att_get_handle_ptr2
+	nbranch le_send_att_error_response_notfound,zero
+	call le_send_att_read_response_check_handle,user
+	rtn user
+	call le_att_get_handle_ptr_found
+	increase -2,contr
+	ifetch 2,contr
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	isub temp,null
+	branch le_send_device_name,zero
+	copy contr,regc
+	call le_get_search_max_mtu_data
+	copy regc,contr
+	ifetcht 1,contr
+	increase 1,temp
+	call not_greater_than
+p_le_send_att_read_response_less:
+	copy pdata,regc
+	copy pdata,rega
+	call store_contr
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_RESPONSE
+	istore 1,contw
+	fetch 2,mem_le_att_handle
+	beq 0x1f,p_keyboard_reference_hid_report_fix
+	add regc,-1,loopcnt
+	call get_contr
+	branch memcpy
+
+p_keyboard_reference_hid_report_fix:
+	add regc,-1,loopcnt
+	arg mem_keyboard_hid_fix_handle,contr
+	branch memcpy
+
+
+p_keyboard_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_keyboard_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch p_keyboard_le_send_att_read_response_next,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+	////////////////////////////////////motion////////////////////////////////
+p_keyboard_motion_data_check:
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,p_keyboard_value_consumer_release
+	branch keyboard_motion_data_check+3//////////////////////////////////////media/////////////////////////////////////
+p_keyboard_value_tpye_consumer_set:
+	copy temp,pdata
+	jam HID_REPORTID_BIT_CONSUMER_KEY,mem_keyboard_tx_data
+	fetcht 1,mem_keyboard_all_press_key_count
+	sub temp,HID_KEY_NULL,null
+	branch p_keyboard_value_consumer_all_key_release,zero
+	beq 	HID_KEY_MULTIKEY_MEDIA,p_keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,p_keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,p_keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,p_keyboard_value_mute
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,p_keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,p_keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_PALY,p_keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,p_keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,p_keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,p_keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,p_keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,p_keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,p_keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,p_keyboard_value_ac_search
+	beq 	HID_KEY_AC_BACK,p_keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,p_keyboard_value_os_soft_kb
+
+	beq 	HID_KEY_LIGHT_DOWN,p_keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,p_keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,p_keyboard_value_os_lock
+
+	beq 	HID_KEY_MAC_EJECT,p_keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,p_keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,p_keyboard_value_ac_stop
+	//beq 	HID_KEY_AC_REFRESH,p_keyboard_value_ac_refresh
+	beq 	HID_KEY_android_set,p_keyboard_value_android_set
+
+	beq 	HID_KEY_SYSTEM_SLEEP,p_keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_consumer_all_key_release:
+p_keyboard_value_consumer_release:
+	jam 2,mem_keyboard_data_change_flag
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_24g_consumer_release
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_24g_consumer_release:
+	setarg HID_REPORTID_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_media:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_media
+	setarg 0x0183
+
+p_keyboard_24g_standard_data_send:
+	store 2,mem_keyboard_tx_data+1
+	jam HID_REPORTID_CONSUMER_KEY,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_vol_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_down
+	setarg 0x00ea
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_vol_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_up
+	setarg 0x00e9
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mute:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mute
+	setarg 0x00e2
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_pre_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_pre_track
+	setarg 0x00b6
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_next_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_next_track
+	setarg 0x00b5
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_play:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_play
+	setarg 0x00cd
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_stop
+	setarg 0x00b7
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_home:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_home
+	setarg 0x0223
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mail:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mail
+	setarg 0x018a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_my_computer:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_my_computer
+	setarg 0x0194
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_favorites:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_favorites
+	setarg 0x022a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_calculator:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_calculator
+	setarg 0x0192
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_search:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_search
+	setarg 0x0221
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_back:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_back
+	setarg 0x0224
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_soft_kb
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,p_keyboard_value_os_soft_kb_android
+	setarg 0x01ae
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb_android:
+	setarg 0x0307
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_down
+	setarg 0x0070
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_up
+	setarg 0x006f
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_lock:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_lock
+	setarg 0x0030
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mac_eject:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mac_eject
+	setarg 0x00b8
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_forward:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_forward
+	setarg 0x0225
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_stop
+	setarg 0x0226
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_android_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_refresh
+	setarg 0x0306
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_system_sleep:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_system_sleep
+	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
+	setarg 0x02
+	store 1,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+	beq HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+
+/////////////////////////////////////////////////////////////////////////
+p_keyboard_app_enter_hibernate:
+	call keyboard_setgpio_hibernate
+	branch app_enter_hibernate
+
+p_keyboard_key_process:
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch p_keyboard_press_change_or_no_key,zero
+	branch keyboard_key_process+5
+
+p_keyboard_idle:
+	call p_keyboard_evt_ui_timer_check
+	branch keyboard_idle+1
+
+p_keyboard_evt_ui_timer_check:
+	arg 0,rega
+	fetcht 4,mem_keyboard_evt_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+p_keyboard_evt_ui_timer_check_loop:
+	copy regb,pdata
+	increase 40,temp    //40clk = 12.5ms
+	isub temp,null
+	nbranch p_keyboard_evt_ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch p_keyboard_evt_ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call p_keyboard_evt_ui_timer_check_send_evt
+p_keyboard_evt_ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_keyboard_evt_btclk
+	rtn
+
+
+p_keyboard_evt_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -40,temp    //160btclk = 50ms
+	set0 28,temp
+	storet 4,mem_keyboard_evt_btclk
+p_keyboard_evt_ui_timer_check_send_evt:
+	store 1,mem_keyboard_evt_timer_count
+p_keyboard_evt_50ms_loop:
+	fetch 1,mem_keyboard_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_evt_timer_count
+	call p_keyboard_delay_lpm_timer
+	branch p_keyboard_evt_50ms_loop
+
+p_keyboard_delay_lpm_timer:
+	fetch 1,mem_keyboard_delay_lpm_flag
+	rtn blank
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,p_keyboard_delay_lpm_timer_next
+	jam 1,mem_lpm_mode
+p_keyboard_delay_lpm_timer_next:
+	jam 0,mem_keyboard_delay_lpm_flag
+	rtn
+
+p_keyboard_press_change_or_no_key:
+	jam 0,mem_lpm_mode
+	jam 1,mem_keyboard_delay_lpm_flag
+	branch keyboard_press_change_or_no_key
+
+p_g24_transmit_no_interrupt:
+	branch keyboard_g24_transmit_no_interrupt
+
+
+p_keyboard_24g_start_pair_mode:
+	//jam 0,mem_keyboard_device_poweron_timer
+	//call keyboard_power_led_off
+	//call keyboard_device_led_off
+	//call keyboard_numlock_led_off
+	//call keyboard_capslock_led_off
+	call keyboard_low_voltage_led_off
+	call keyboard_pairing_check_otp_offset
+	jam 0,mem_keyboard_data_change_flag
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_reconn_type
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_stop_discovery
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+//////////////////////////////////led///////////////////////////////////
+p_keyboard_device_pair_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_pair_led
+	branch keyboard_device_pair_led_timer+2
+
+p_keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	branch p_keyboard_pair_sucess_led_move,blank
+	branch keyboard_device_pair_led
+
+p_keyboard_pair_sucess_led_move:
+	fetch 1,mem_keyboard_mode_led_on_timer
+	nrtn blank
+	//fetch 1,mem_adc_power_flag
+	//bbit1 0,p_keyboard_pair_sucess_led_move_next
+	fetch 1,mem_keyboard_device_poweron_timer
+	nbranch p_keyboard_pair_sucess_led_move_next,blank
+	fetch 1,mem_keyboard_led_status
+	bbit1 KB_PC_KEYSEL_CAPSLOCK,p_keyboard_pair_sucess_led_move_next
+	branch keyboard_device_24g_led_off
+p_keyboard_pair_sucess_led_move_next:
+	rtn
+//
+p_keyboard_adc_vol_init:
+	fetch 1,mem_keyboard_power_type
+	beq KEYBOARD_BATTARY_1V5,keyboard_adc_vol_1v5_init
+	beq KEYBOARD_BATTARY_3V0,p_keyboard_adc_vol_3v0_init
+	beq KEYBOARD_BATTARY_4V2,keyboard_adc_vol_4v2_init
+	branch keyboard_adc_vol_1v5_init
+
+p_keyboard_adc_vol_3v0_init:
+	setarg 0xbe0122		// 0x0094--3.0V  0x00d4--2.1V  0x00dc--2.2V  0x00e6--2.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x00dc00
+	istore 3,contw
+	rtn
+p_mouse_adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp	
+p_mouse_adc_bat_percent_lowpower_out_battery:
+	call adc_clear_no_power_flag
+	call p_adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall p_adc_set_low_power_flag,positive
+	branch mouse_adc_bat_level_set
+
+p_adc_clear_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 0,temp
+	branch adc_set_power_flag
+
+p_adc_set_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 0,temp
+	branch adc_set_power_flag
+
+p_gpio_set_ds_bit:
+	arg core_gpio_ds,contw
+	and temp,0x07,queue
+	rshift3 temp,pdata
+	and_into 3,pdata
+	iadd contw,contw
+	ifetch 1,contw
+	qset1 pdata
+	istore 1,contw
+	rtn
Index: output/bt_program23.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_program23.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/bt_program23.rom	(working copy)
@@ -0,0 +1,1033 @@
+11000010100001000000000000011101
+11000000000000000000000000111000
+11000000000011010000000001101100
+11000000000100101000000001000110
+11000000000101000000000010101101
+11000000000111110000001010100000
+11000000000111111000001010100011
+11000000001000000000000011110001
+11000000001000011000000111111010
+11000000001000100000001111100100
+11000000001001001000001110011101
+11000000001001011000000011111100
+11000000001001100000000100000000
+11000000001001110000001000101001
+11000000001010001000001001110011
+11000000001010110000001010011010
+11000000001010111000001111001000
+11000000001011001000001011111111
+11000000001011100000001100000010
+11000000001011110000000101110110
+11000000001101010000001010101110
+11000000001111100000001110010101
+11000000010000010000001111101110
+11000000010100011100011111111011
+11000000011101001000000001110111
+11000000011101010000000001110100
+11000000011001111000000010111100
+11000000011111010000000010101001
+00100000001000000010001100111110
+11000001011111111000000000000000
+11000000010101101000000001010100
+11000000010111101000000001010111
+11000000011000010000001111000111
+11000000011110011000000000100011
+00100000001000000010001100111110
+00110111110110011000001000000000
+01110000100010101000011001100000
+01110000100010101000101100111011
+00100000010000000010001010011101
+01110000100000000100001100000000
+01110000100000000100001000000101
+01011000010101010111010001110100
+01100111111100011000100101101000
+01110000100010010110000001101110
+00100000010000000010000100110101
+00100000010000000010001010000111
+00100000010000000010001010000001
+01110000010000010100100000001100
+01110000100010100011000000000110
+01110000100010100011001011011101
+01110000100010101000100011100000
+01110000100010101000110000101101
+01110000100010100011000101111000
+00100000010000000110111101010011
+00100000010000000010001011001011
+00100000001000000110101011001001
+00100100001101011000000000111011
+00110111110110011000001000000000
+00110111110110011000001000000000
+00100000010000000011111010011010
+00100100001101000010000000000010
+01101111111000001100100010001101
+00100000001110100010000000000010
+01101111111000001100100100001111
+11000000011111111010000000000010
+00011111111000100000111000000000
+01101111111000100000011001111011
+10101111111011000000000000000000
+00100000010000001100011010011011
+00100000001000000010000000000010
+01101111111000010100001111110010
+00100000010000000111110101111011
+01101111111000100100000010101101
+10011000010000001111111000000000
+01100111111000100100000010101101
+00100000010000000010001111010111
+01101111111000001100000011001011
+01111001001000000111111000000100
+00100000010000000010001111000011
+00100100010101011010001110101101
+00110111110110011000001000000000
+00011011001000100111111000000000
+01100111111000110100000010110001
+00100000001000000010010000010011
+01101111111000100100010101110110
+00100000011110100000000000000000
+00100000001000000011001010101101
+01101111111000010100010111110111
+00011111111000010111111011100000
+00100000001110100000000001011110
+01101111111000010100010111110111
+00011111111000001111111000000001
+01100111111000010100010111110111
+00100000011000000000000000000000
+00100000010000000011010101010111
+00100000010000000011011000101010
+00100100001011000011010101011110
+00100100001101111011010101011110
+00100000010000000000000001100100
+00100000001000000011010101000000
+00100000010000000011011001000111
+01101111111000001100010100001111
+00101111111000011111000000001000
+00100100011000001000000000000000
+01101111111000001100010100010000
+11000000011111111100011111111011
+01100111111000001100011100001101
+00100000011000000000000000000000
+00110111110110011000001000000000
+01110000100010010100011000001101
+01110000100010010110111100010000
+01110000100010100001001111001101
+01101111111100001000101000000110
+00011111111000010111111011111100
+01100111111100001000101000000110
+00100000001000000010001001010101
+00100000010000000110101100101000
+00100000010000000110101101100011
+00100000001000000110101100100110
+00100000010000000110101100100010
+00100000010000000110101100101111
+00100000010000000110101100101001
+11101000010000001000000000010001
+00011010001000001010001000000001
+00011000000000000000111000000000
+01111001001111111000000000100010
+10101000010011000000000000000000
+00100000001000001000000010100001
+01101111111100001000000001000110
+01111001001000000111111000000110
+01111001001000000111111000000111
+01100111111100001000000001000110
+01110000100000000100011100000010
+01110000100000000100011110000010
+01111001001111111111111000000111
+01100111111100001000000001000110
+01110000100000000100011110001010
+00100000000000000000000000001011
+01110000100000000100011111001010
+00100000000000000000000000100001
+01110000100000000100011101001010
+00100000000000000000000000101100
+01110000100000000100011111001010
+00100000000000000000000000010110
+01110000100000000100011110001010
+00100000000000000000000000100001
+01110000100000000100011110000010
+00100000000000000000000000000001
+01110000100000000100011110010010
+00100000000000000000000000001010
+01110000100000000100011110110010
+01101111111100001000000000000111
+01110000100000000100011110010010
+00100000000000000000000000000001
+01110000100000000100011110000010
+00100000000000000000000000000001
+10101111111011000000000000000000
+00100000001000001000000001111101
+11000101000100010000000010100001
+01111001001000000000000000100010
+00100000001000000000000001111110
+01101111111100010000000001000100
+00011111111000001111111000000001
+01100111111100010000000001000100
+00011000111000001000111000000001
+00101000111000000001111000001000
+00100100001000001000000001111101
+11000010000000000000000001111010
+00100000001000000110101100100110
+01111001001000000000010000000111
+00100000010000000110111011100000
+01111101001000001000010000000111
+00100000001000000110111010101100
+00100000010000000010001111110000
+01101111111000011100000010111101
+00100000011110100000000000000000
+00100000011000000000000000000000
+01101111111000001100101001111010
+00100100011110100000000000000000
+01101111111000001100101001111011
+00100100011110100000000000000000
+01101111111000001100011100100000
+00100100011110100000000000000000
+01101111111000010100011101010000
+00100100011110100000000000000000
+01101111111000001100101010011111
+00100100011110100000000000000000
+00100000001000000010010001100111
+00100000010000000011011100010111
+00100000010000000111001110000100
+00100000010000000000000011001100
+00100000010000000000000110100010
+00100000010000000000000011000010
+00100000001000000011111010110010
+01101111111000001100011001111000
+11000000100000000000000011000110
+00100000010000000011010111010011
+00100000001000000101100011111100
+01011000000000000000000010100000
+00100000010000000100000011111001
+01101111111000001100010000100010
+11000100000000000000000000000000
+01011000000000000000000001010000
+00100000001000000100000011111001
+00100000010000000000000011010100
+00100000011101011000000000000000
+00100000010000000011010111001000
+00100000010000000011001000111010
+00100000010000000000000011011110
+01110000010000001010011000001010
+00100000010000000000000011011100
+00100000001000000011111011000010
+01101111111000010100100101001000
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00100000010000000000010000000000
+00011010010000001010010000000001
+11000010000000000000000011010111
+00100000011000000000000000000000
+00100000010000000100000110000100
+00100000001000000100000101100010
+00100000010000000011111011110100
+00100000010000000000000011100001
+00100000001000000011111011011101
+01011000000000001001000000000000
+01100111111000010100001011111001
+01101111111001000100100010001110
+11000010100100011110100000001100
+01011000000000001001010110111000
+01100111111000010100100011010110
+01101111111001000100100010001110
+11000010100100000110100000001100
+11000010100100001110100000001100
+01011000000000001001010011111100
+01100111111000010100100011010110
+01101111111001000100100010001110
+11000010100100010110100000001100
+01011000000000000100101011101000
+01100111111000010100100011010110
+00100000001000000110100000001100
+01101111111001000100100010001110
+11000010100001111000000011110100
+00100000001000000011111111011000
+01101111111000010100101010111101
+01101000010010010100101010111111
+10011000010001100111110000000000
+00100000011000010000000000000000
+01101111111000001100011001111000
+11000000000000000011111111100001
+11000000000000001011111111101011
+00100000011000000000000000000000
+01011000000000000000000100000000
+01100111111000010100000010100100
+01110000010000001010011000001100
+00100000001000000100001100001111
+00100000010000000000000100000011
+00100000010000000000001110010111
+00100000001000000100001100110011
+00100000010000000000000110100010
+01011000000000000000000000000000
+01100111111000010100100110011110
+11011000110000000100100101001110
+11011000101000000100100101100011
+11011111001000000000000000010100
+00100000010000000111110011011100
+00100000010000000100001110101111
+01011000000000000100100101001110
+01100111111000010100100110011000
+01011000000000000100101011011010
+01100111111000010100100110011010
+00100000010000000100001110101101
+00100000010000000100001110101011
+01101111111000010100100110011110
+00011111111000001111111000000001
+01100111111000010100100110011110
+11000010100001001000000100000011
+01101000010010001100100100010001
+00100000010000000110111011100000
+00100100001000001000000100010001
+00100000010000000100001110101111
+01101000010010001100100100010001
+00100000010000000110111011100000
+00100000001000001000000100011001
+00100000010000000000000101010001
+00100000010000000000000101000000
+00100000010000000100001110101011
+00100000010000000100001110101101
+01101111111000010100100101001100
+00011111111000100010010000000000
+01110000010010011001110100000000
+11101000010000001000000000010010
+01101111111000010100100101001010
+00011111111000100010001000000000
+00011010001000100010011000000000
+11011111001000000000000000010100
+11101111111000001000000000010001
+10011000010001100111110000000000
+00100000001000101100001101100110
+00011010001000001010001000000001
+11000010000000000000000100101000
+00011010010000001010010000000001
+01101111111000001100100110011101
+00011111111000001111111000000001
+01100111111000001100100110011101
+00011111111001100111110000001011
+00100000001000010000000100100011
+00100000001000000000000110111001
+01101111111000010100100110011000
+00011111111000100000101000000000
+00011010001000100111111000000000
+10011010011001100111111000000000
+10011000101000001000101000000000
+01101111111000010100100110011010
+00011111111000100010011000000000
+01101111111000001100100110011101
+10011010011000001010011000000000
+11101111111000001000000000010011
+11100111111000001000000000000101
+00100000001000000000000100101101
+01101111111000010100100101001010
+00011111111000100010010000000000
+01110000010010011001110100000000
+01110000010010011001110000000000
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100000001000001000000101001011
+00100000010000000110111011110001
+00100000010000000000000101100101
+11101000010000001000000000010010
+00100000010000000110111100001011
+00011010010000001010010000000001
+01101111111000010100100110011000
+00100000010000000100001101111101
+00011111111001100111110000010011
+00100000001000010000000101000011
+00100000011000000000000000000000
+01110000010010011001110100000000
+00100000010000000100001110101001
+00100000010000000000000101011001
+00100000010000000100001110100111
+00100000010000000000000101011001
+00011111111001100111110000001011
+00100000001000010000000101010010
+00100000001000000100001110101001
+01110000010010011001110000000000
+00100000010000000000000101100101
+01101111111000010100100110011010
+00011111111000100000101000000000
+01101111111000001100100110011101
+10011000101000001000101000000000
+01101111111000001100100110011100
+11100111111000001000000000000101
+01101111111000001100100110011101
+00011111111000001111111000000001
+01100111111000001100100110011101
+00100000011000000000000000000000
+01101111111000010100100101001000
+00011111111000100010011000000000
+11011111001000000000000000001000
+11101000010000001000000000010011
+00100000010000000110111011101101
+11101000010000001000000000010011
+00100000010000000110111100001011
+00100000000000000000000011110000
+11101000010000001000000000010011
+00100000010000000110111011100000
+01101111111000001100100110011100
+00011111111000110111111000000000
+01111001001000001111111000000111
+01100111111000001100100110011100
+00011010011000001010011000000001
+11000010000000000000000101101000
+00100000011000000000000000000000
+00100000010000000111110111100110
+01101000010010001100100100001111
+00100000010000000110111010101100
+01101111111000010100100101001010
+00011111111000100010010000000000
+11011111001000000000000000010100
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100100010000001110111011110001
+00011010010000001010010000000001
+11000010000000000000000101111100
+00100000010000000011111100011011
+01110000010010001000110000000000
+01101111111000010100100101001000
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00011000010001100111110011111111
+00100100010000101000000110010011
+11101000010000001000000000010010
+00100000010000000110111100001011
+00011010010000001010010000000001
+11000010000000000000000110000110
+00100000010000000110111101001011
+00100000010000000010001111100001
+01101000010010001100011001100110
+00100000010000000100111100001010
+00100000010000000100111100001110
+00100000001000000100000011011101
+01101111111000001100100110100000
+00100000001110100110111010101100
+00100000001000000110111010100101
+00011000010001100111110011111111
+00100000011000101000000000000000
+11011001000000000000000000000011
+00100000010000000110111010011100
+00101000010011000000000000000000
+00100000001000001000000110011101
+00011001000100100001000000000000
+11101111111000001000000000000101
+10011110000000010111111000000000
+10011001000000011111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+00100000010000000111110111100110
+01101000010010001100100100001111
+00100000010000000100111100001010
+01101111111001000100100010001110
+00101111111011111111111000001010
+00100000010000001000000111001111
+01011000000000000100100100011111
+01100111111000010100100101001000
+01011000000000000100100100100111
+01100111111000010100100101001010
+01011000000000000100100100111100
+01100111111000010100100101001100
+00100000010000000000000110111001
+00100000010000000010001111100001
+01101111111000010100100101001010
+00011111111000100010010000000000
+11011111001000000000000000010100
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100100010000001110111100001011
+00011010010000001010010000000001
+11000010000000000011111100001001
+00100000011000000000000000000000
+01101111111000010100100101001000
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00100000010000000110111100001011
+00100000010000000000000111000010
+00011010010000001010010000000001
+11000010000000000000000110111100
+00100000011000000000000000000000
+00100000010000000110111011000000
+00011000010001100111110011111111
+00100000011000101000000000000000
+11011001000000000000000000000000
+00100000010000000110111010011100
+00101000010011000000000000000000
+00100000001000001000000111001010
+00011001000100100001000000000000
+11101111111000001000000000000101
+10011110000000010111111000000000
+10011001000000011111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01101111111100001000000101000010
+01111001001111111111111000000011
+01100111111100001000000101000010
+00100000011000000000000000000000
+01101111111000001100101011000010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101011000010
+01101111111001000100100010001110
+11000010100101000000000111011100
+01101111111000001100101011000010
+00100000001110100100000101100110
+00100000001000000100000101101100
+01101111111000001100101011000010
+00100000001110100100000100111100
+00100000001000000100000100111010
+01101111111000001100011001111000
+11000000000000000000000111100011
+01101111111000001100011101010011
+11000001000000000000000000000000
+01101111111000001100101011000101
+11000001100000000000000000000000
+01101111111000001100101011001110
+11000000001011010100000110010011
+01101111111000010100011101000001
+00100000011110100000000000000000
+01101111111000010100011100011110
+01101000010010010100011101000001
+10011000010001100000010000000000
+01101111111000010100101011000011
+10011000010001100111111000000000
+00100000001000010000000111110010
+00100000010000000100000110011101
+00100000010000000100000110101001
+00100000001000000100000110100011
+00100000010000000100000110011001
+00100000010000000100000110100101
+00100000001000000000000111110101
+01101111111000001100011100001101
+11000011000000001100000110100011
+01110000010010101100001000000000
+01101000010010001100100100010100
+00100000001000000110111011110001
+00100000010000000100000011100000
+00100000010000000100000011001100
+00100000010000000100000011011101
+00100000010000000100000100000000
+00100000010000000000000111011111
+00100000010000000100000110101011
+00100000010000000000000111010011
+00100000010000000100000100111110
+00100000010000000000001111010110
+00100000010000000000001000010111
+00100000010000000100001010001111
+00100000010000000100001011000100
+00100000010000000011001001101100
+00100000010000000011010100000111
+00100000010000000101100011110110
+00100000010000000100001010110101
+00100000010000000100001010111111
+00100000010000000100001010011001
+00100000010000000100001010100100
+00100000010000000101010100001101
+00100000010000000100001010101101
+00100000010000000101010100010000
+00100000010000000100001010110010
+00100000010000000100001010100001
+00100000010000000101010100100111
+00100000010000000100001010011110
+00100000010000000100001011001001
+00100000010000000100001011001100
+00100000001000000100001011010101
+00100000010000000000001000011001
+00100000001000000000001000011111
+01110000010010001010100100000000
+01101111111000001100100010100111
+00100000011110100000000000000000
+01110000010010001010011100000000
+00100000010000000000001000100101
+00100000001000000110110010011001
+01110000010010001010101000000000
+01101111111000001100100010101000
+00100000011110100000000000000000
+01110000010010001010100000000000
+00100000010000000100000001000101
+00100000001000000110110010011001
+01101111111001000100100010001110
+11000010100001111101010110010100
+11000010100001110100000001000101
+00100000011000000000000000000000
+00100000010000000100010000101110
+00100000010000000000001001001001
+00100000010000000000001000101101
+00100000001000000100001111011101
+01101111111000001100100110101010
+11000000001000110100010011110010
+11000000001001011100010011111000
+11000000001001110100010011111110
+11000000001001010100010100000000
+11000000001001101100010100000010
+11000000010100101100010100000100
+11000000010100110100010100001011
+11000000010100111100010100001101
+11000000010101000100010100001111
+11000000010101001100010100010001
+11000000010101010100010100011100
+11000000010101101100010100100011
+11000000010101011100010100101010
+11000000010101100100010100110101
+11000000010101111000001000111110
+00100000011000000000000000000000
+01101111111000001100101010100001
+11000000000000011000001001000110
+01101111111000001100011001111000
+11000000100000000000001001000100
+01101111111000001100101010100001
+11000000000000010000001001000110
+01011000000000000000000011110000
+00100000001000000100010010101010
+01110000010010101001110100001000
+01110000010010101001111000001011
+00100000001000000100010100111110
+01101111111000001100100110101011
+00101111111011111111111000000000
+00100000010000001100010011110000
+00100000010000000000001001101001
+01101111111000001100101001111010
+00100100010110100100010001011011
+01101111111000001100011101001111
+11000001011111111000000000000000
+01101111111001000100100010001110
+11000011000110100000001001010101
+01101111111000001100101010010011
+00100000001000000000001001010110
+01101111111000001100101010000100
+01101000010010001100101001111010
+10011000010000101111111000000000
+00100000011000101000000000000000
+01101111111000001100100110101010
+11000000000101001100010001010001
+11000000001001100100010001011001
+11000000000111010000001001111101
+11000000000111011000001010000011
+11000000000111100000001010001001
+11000000000111101000001010010011
+00011111111001100111110001000101
+00100100011000010000000000000000
+11011000010000000000000000111010
+10011000010001100111111000000000
+00100100011000010000000000000000
+11011000110000000100101010000110
+10011000110000001000110000000000
+11101111111000001000000000000110
+00100000001000000100010010101010
+01101111111000001100101010100001
+11000001100000010000000000000000
+01101111111000001100100110101010
+11000000000110101000001001101110
+00100000011000000000000000000000
+01101111111000001100101001111101
+11000001000000001000000000000000
+01110000010010101001110101000000
+01110000010010101001111000110101
+00100000001000000100010100111110
+00100000010000000100010001101000
+01101111111000001100100110101010
+11000000001010010100010010001101
+11000000001010001100010010010001
+11000000001010000100010010010101
+11000000001001111100010010011001
+11000000000011010100010010101100
+11000000000001000100010010111100
+11000000000010100100010011000011
+00100000011000000000000000000000
+01101111111000001100101010100001
+11000000000000010000001010000001
+01011000000000000000000011110110
+00100000001000000100010010101010
+01011000000000000000000011111000
+00100000001000000100010010101010
+01101111111000001100101010100001
+11000000000000010000001010000111
+01011000000000000000000011110001
+00100000001000000100010010101010
+01011000000000000000000011111001
+00100000001000000100010010101010
+01101111111000001100101010100001
+11000000000000010000001010001111
+11000000000000001000001010010001
+01110000010010101001110100001000
+01110000010010101001111000001100
+00100000001000000100010100111110
+01011000000000000000000011110111
+00100000001000000100010010101010
+01011000000000000000000011111110
+00100000001000000100010010101010
+01101111111000001100101010100001
+11000000000000010000001010010111
+01011000000000000000000011101000
+00100000001000000100010010101010
+01110000010010101001110100001010
+01110000010010101001111000100000
+00100000001000000100010100111110
+01101111111000001100011101010000
+11000001100000000000000000000000
+01110000010001110000110100000000
+00100000010000000100000110100011
+00100000010000000100000110000100
+00100000001000000100011001110111
+01101111111001000100100010001110
+11000010100001111011111100110001
+00100000001000000011111011001000
+00100000010000000000001010100101
+00100000001000000011111110100100
+01101111111000001100011001111000
+11011000010000000000000011111111
+10011000010001100111110000000000
+00100000001000101011111111001010
+01101111111000010100011010100000
+11011000010000001010101001010101
+10011000010001100111110000000000
+00100000001000101110011111001111
+00100000001000000011111111001010
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110011011
+11000000000000001100100100011001
+11000000000000111100100101011100
+11000000000001001100100100111000
+11000000000001011100100101010010
+11000000000001000100100101110001
+11000000000001100000001010111011
+11000000000001010100100110011111
+11000000000010010100100111000101
+11000000001010010100100111001011
+00100000001000000010101101110110
+11101111111000010000000000000110
+01100111111000010000011010010011
+10011000000000000010001000000000
+01101000010010010100001110011100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110100101110
+00100000001000000100100110011001
+01101000010010010100001110011100
+01101111111000001100001100100011
+11000010100000011000001011111001
+01101111111001000100100010001110
+11000011000001011000001011001001
+11000011000011001000001011001011
+01101111111000010100001110011100
+11000000000110000010110111100001
+01101111111000010100001110011100
+11000000000000101100100110110111
+11000000000010000100100110111010
+01101000010010010100001110011100
+01101111111001000100100010001110
+11000010100100011000001011011011
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101000001011011011
+00100000010000000010111000100100
+01101000010010010100100011010110
+00011000010000100000110000000000
+11101000010000010000000000000110
+00011000010000001000010000000001
+00100000010000000111110110110010
+00100000001000000000001011101011
+00100000010000000010110010110000
+00100100001000101010110111100001
+00100000010101000010110100100110
+00100000011101000000000000000000
+00100000010000000010110010111011
+00011000110000001000110111111110
+11101111111000010000000000000110
+11011000010000000010101000000000
+10011000010001100111110000000000
+00100000001000101010110100010100
+00011000110000100010011000000000
+00100000010000000010111000100100
+00011010011000100000110000000000
+11101000010000001000000000000110
+00011000010000001000010000000001
+00100000010000000111110110110010
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000111110001101111
+00100000010000000010110111101110
+01011000000000000000000000001011
+11100111111000001000000000000101
+01101111111000010100001110011100
+11000000000011111000001011110110
+00011010011000001111001111111111
+00100000010000000111110001101001
+00100000001000000111110011011100
+00011010011000001111001111111111
+11011000110000000100101011100110
+00100000001000000111110011011100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101000001011000110
+00100000010000000010110110100101
+00100100001101000000001011001011
+00100000001000000010110100100100
+01101111111000001100101010100000
+11000000000000010000001100100000
+00100000001000000100011011001101
+00011000010000100111111000000000
+01110000010010100110111100000101
+01101000010010001100100110100110
+00011000010001100111110000000000
+00100000001000101000001100100000
+11000000011101000000001100101100
+11000000011101001000001100110010
+11000000011101010000001100110110
+11000000011101011000001100111010
+11000000011101100000001100111110
+11000000011101101000001101000010
+11000000011101110000001101000110
+11000000011101111000001101001010
+11000000011110000000001101001110
+11000000011110001000001101010010
+11000000011110010000001101010110
+11000000011110011000001101011010
+11000000011110100000001101011110
+11000000011110101000001101100010
+11000000011110110000001101100110
+11000000011110111000001101101010
+11000000011111000000001101110010
+11000000011111001000001101110110
+11000000011111010000001101111010
+11000000011111011000001101111110
+11000000011111100000001110000010
+11000000011111101000001110000110
+11000000011111110000001110001010
+11000000011111111000001110001110
+00100000001000000100011011100110
+01110000010010011010100100000010
+01101111111000001100100110100110
+00100000010110100100011011101111
+01110000010010101010000000000000
+01101111111000001100011001111000
+11000000000000000000001100101001
+01011000000000000000000000000101
+01100111111000011100101001101111
+00100000001000000100011011100110
+01011000000000000000000000000011
+01100111111000011100101001101111
+00100000001000000100011011100110
+01101111111000001100011001111000
+11000000100000000100011100010101
+01011000000000000000000110000011
+01100111111000010100101001110000
+01110000010010100110111100000011
+00100000001000000100011011100110
+01101111111000001100011001111000
+11000000100000000100011100011000
+01011000000000000000000011101010
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100011010
+01011000000000000000000011101001
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100011100
+01011000000000000000000011100010
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100011110
+01011000000000000000000010110110
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100100000
+01011000000000000000000010110101
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100100010
+01011000000000000000000011001101
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100100100
+01011000000000000000000010110111
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100100110
+01011000000000000000001000100011
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100101000
+01011000000000000000000110001010
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100101010
+01011000000000000000000110010100
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100101100
+01011000000000000000001000101010
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100101110
+01011000000000000000000110010010
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100110000
+01011000000000000000001000100001
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100110010
+01011000000000000000001000100100
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100110111
+01101111111000001100101010100001
+11000000000000001000001101110000
+01011000000000000000000110101110
+00100000001000000000001100101111
+01011000000000000000001100000111
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100111101
+01011000000000000000000001110000
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011100111111
+01011000000000000000000001101111
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011101000001
+01011000000000000000000000110000
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011101000011
+01011000000000000000000010111000
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011101000101
+01011000000000000000001000100101
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011101000111
+01011000000000000000001000100110
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011101001001
+01011000000000000000001100000110
+00100000001000000000001100101111
+01101111111000001100011001111000
+11000000100000000100011101010010
+01110000010010100110111100000010
+01011000000000000000000000000010
+01100111111000001100101001110000
+00100000001000000100011011100110
+11000000011101101100011100100000
+00100000010000000100011110110011
+00100000001000000011011110011100
+11011010001000000100100101001110
+11011010010000000100100101100011
+11011111001000000000000000010100
+00100000010000000111110101100110
+00100100001000101000001111000100
+00100000001000000100001110111010
+00100000010000000000001110011111
+00100000001000000100001011011110
+11011010001000000000000000000000
+01101000010010100100101110011010
+00011100010000100010010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100010000010111011111110100
+00011010010000100111111000000000
+00011000010000001000010000101000
+10011000010001100111110000000000
+00100100001000010000001110110001
+00011010001000001010001000000001
+00011010001000010111111000001111
+00100100001110100000001110100101
+11011010001000000000000000000000
+00100000010000000000001110110110
+00011100010000100111111000000000
+01100111111000100100101110011010
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+00011000010000001000010111011000
+01111001001111111000010000011100
+01100000010010100100101110011010
+01100111111000001100101110011110
+01101111111000001100101110011110
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101110011110
+00100000010000000000001110111101
+00100000001000000000001110110111
+01101111111000001100101110011001
+00100000011110100000000000000000
+01101111111000001100011101001111
+11000000011111111000001111000010
+01110000010000001001010000000001
+01110000010010111001100100000000
+00100000011000000000000000000000
+01110000010000001001010000000000
+01110000010010111001100100000001
+00100000001000000100001110110001
+00100000001000000100100000010101
+00100000010000000100000110000100
+00100000010000000011111100101100
+01110000010010011010100100000000
+01101111111000010100010111101111
+00100100011110100000000000000000
+01011000000000000000000000000000
+01100111111000010100011101000001
+01100111111000010100010111110101
+01100111111000001100010111111001
+11011000111000000000000000000000
+00100000010000000100101000100101
+00100000010000000100100011101001
+01110000010001011010000000000010
+00100000001000000011001001101111
+01101111111000001100011001111000
+11000000000000000000001111011001
+00100000001000000100000101001000
+01101111111000010100010111101111
+00100000001110100000001111011100
+00100000001000000100000101001101
+01101111111000001100101011000101
+00100100011110100000000000000000
+01101111111000001100101011000010
+00100100001110100000001111100011
+01101111111000001100011100001101
+11000010100000001000001111100011
+00100000001000000100000101110010
+00100000011000000000000000000000
+01101111111000001100100010110001
+11000000000000000100000010011000
+11000000000000001000001111101001
+11000000000000010100000010100010
+00100000001000000100000010011000
+01011000101111100000000100100010
+01100111111000011100100010101011
+01011000000000001101110000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+11101111111001000000000000010001
+01100111111001000000011001001110
+00100000010000000111000001010111
+00100000010000000000001111111010
+01101111111000010000011001010100
+01101000010010010000011001010000
+10011000010001100111110000000000
+00100100010000010111000001010100
+01101000010010010000011001010010
+10011000010001100111110000000000
+00100100010000010000001111111101
+00100000001000000100111011010000
+01101000010010001100010000100010
+01111001001111111000010000000000
+00100000001000000111000001011001
+01101000010010001100010000100010
+01111001001000000000010000000000
+00100000001000000111000001011001
+11011000101000001000000001001001
+00011000010000010000111000000111
+00011000010010010111111000000000
+00011111111000010111111000000011
+10011000101000001000101000000000
+11101111111000001000000000000101
+11111001001000000111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
Index: output/eeprom.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/eeprom.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/eeprom.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+30
+10
+53
+00
+02
+ee
+30
+ad
+a4
+92
+b2
+ab
+69
+96
+4d
+13
+28
+30
+be
+74
+8c
+46
+13
+1d
+6d
+9c
+09
+25
+5c
+7f
+f7
+78
+b7
+27
+9e
+be
+37
+a7
+d2
+e5
+ac
+d0
+e7
+dc
+43
+38
+f7
+ed
+20
+9c
+98
+9f
+2f
+9c
+73
+63
+73
+1e
+ab
+27
+be
+71
+05
+bc
+fe
+4f
+21
+3c
+63
+a4
+19
+80
+e2
+36
+00
+04
+b1
+dc
+0b
+94
+d8
+98
+e9
+48
+12
+8c
+81
+45
+7c
+77
+88
+93
+75
+6a
+84
+54
+f8
+12
+07
+c1
+c4
+5c
+68
+e8
+be
+76
+24
+40
+18
+a1
+0d
+7f
+9c
+14
+4e
+4b
+46
+cf
+fb
+46
+30
+21
+f7
+d6
+8a
+39
+4d
+ed
+e7
+27
+35
+b3
+f9
+10
+62
+4a
+98
+a8
+9a
+0f
+09
+67
+c7
+f4
+ff
+72
+0e
+be
+fb
+30
+28
+02
+c2
+31
+83
+21
+9c
+1a
+87
+22
+11
+14
+3b
+08
+23
+65
+bf
+55
+e8
+d2
+96
+57
+73
+46
+bf
+17
+ad
+40
+e9
+06
+70
+00
+37
+9d
+fb
+85
+76
+ea
+01
+bf
+6b
+5b
+dd
+c6
+59
+64
+1a
+00
+62
+ef
+fb
+c7
+ad
+c7
+15
+84
+99
+1d
+24
+b8
+c4
+2d
+5c
+7c
+5a
+a0
+59
+16
+87
+f1
+fa
+f0
+69
+cc
+64
+d3
+55
+fe
+64
+c8
+7b
+a1
+be
+8b
+10
+37
+25
+14
+76
+01
+86
+0b
+81
+76
+03
+c0
+6d
+4a
+54
+9d
+e9
+29
+77
+68
+57
+b7
+25
+55
+2d
+d0
+b0
+d0
+d3
+b1
+b5
+38
+0c
+44
+02
+d4
+f2
+8e
+6d
+b3
+03
+b4
+98
+99
+7a
+6a
+f7
+c5
+3c
+09
+af
+e3
+30
+64
+9d
+82
+20
+eb
+a1
+04
+78
+86
+48
+0b
+08
+0d
+2e
+87
+a4
+92
+70
+de
+3a
+98
+5a
+83
+bb
+ca
+0f
+c2
+68
+47
+fa
+79
+28
+5d
+9e
+87
+50
+ac
+5f
+56
+b5
+28
+c3
+cd
+b9
+81
+37
+7d
+47
+d1
+d7
+2e
+10
+52
+f9
+7a
+56
+e3
+65
+73
+fd
+f3
+a5
+8c
+f8
+83
+4b
+62
+c8
+ac
+c5
+1f
+02
+6a
+dd
+b3
+ec
+05
+3a
+d5
+bc
+f9
+a2
+9d
+96
+89
+39
+cb
+af
+a7
+f5
+64
+b8
+17
+4c
+2e
+dc
+bd
+cd
+e3
+4c
+2a
+fd
+7a
+ac
+c2
+fd
+53
+46
+ab
+7e
+3d
+24
+ee
+bf
+f5
+bb
+26
+5a
+1c
+4f
+24
+29
+7c
+00
+dd
+f1
+42
+f4
+6b
+19
+25
+c5
+e0
+e6
+0d
+53
+8b
+b5
+ed
+be
+29
+19
+33
+ad
+00
+49
+52
+b0
+59
+db
+9a
+a7
+93
+2e
+96
+33
+37
+fd
+c7
+50
+10
+32
+a7
+1e
+23
+a4
+c7
+62
+8a
+4f
+ca
+4b
+2e
+3a
+3f
+cd
+8f
+42
+a5
+94
+9e
+ef
+76
+38
+d5
+1e
+a8
+86
+24
+84
+00
+02
+7e
+92
+6b
+10
+5f
+31
+cf
+2b
+f0
+99
+78
+de
+e2
+40
+ab
+9f
+8a
+ad
+ad
+27
+fc
+f7
+a8
+63
+f8
+52
+a1
+4a
+12
+16
+58
+8f
+e9
+ea
+d1
+72
+b9
+c8
+6f
+b2
+6b
+bf
+60
+e5
+59
+f5
+82
+b3
+d9
+42
+0c
+8b
+13
+4b
+0a
+fa
+e4
+e8
+5e
+e4
+dc
+8f
+19
+e9
+c6
+38
+10
+d6
+76
+02
+87
+70
+96
+f5
+5e
+21
+5d
+ad
+ce
+c2
+ed
+da
+a2
+1f
+1f
+ba
+66
+f3
+65
+84
+42
+f3
+d4
+68
+5d
+d5
+d3
+ad
+41
+84
+2b
+f7
+9c
+b8
+7a
+04
+0e
+d2
+dc
+52
+1c
+dd
+e4
+64
+00
+02
+27
+c0
+c9
+04
+7b
+71
+b6
+ce
+fa
+cc
+58
+a8
+0d
+37
+94
+36
+3d
+9b
+73
+f3
+e1
+f3
+56
+6f
+31
+0a
+b6
+0a
+a5
+c3
+dd
+cd
+4d
+b0
+67
+5d
+fa
+61
+bb
+95
+2a
+20
+1e
+0e
+0e
+1e
+0e
+b7
+39
+af
+40
+9d
+b4
+b1
+60
+7a
+fc
+c5
+5c
+8c
+99
+27
+c3
+33
+c6
+46
+0c
+61
+3b
+02
+c4
+7c
+1c
+c7
+88
+be
+4a
+ea
+af
+7a
+d4
+17
+0a
+ed
+42
+54
+c2
+ad
+26
+9c
+35
+0d
+8e
+63
+b0
+f5
+5c
+17
+af
+c5
+fe
+0b
+54
+e3
+27
+25
+50
+7b
+0b
+f5
+d7
+8c
+6d
+92
+47
+8f
+56
+54
+af
+fe
+e7
+34
+3e
+aa
+80
+d3
+b8
+8c
+d6
+07
+0d
+56
+08
+d3
+59
+09
+ab
+ef
+a1
+25
+8f
+a6
+bc
+fc
+9d
+b3
+0e
+b9
+f8
+1b
+51
+68
+36
+9e
+da
+39
+00
+e5
+a3
+d2
+43
+be
+17
+f8
+b5
+fa
+a8
+f3
+f7
+83
+aa
+af
+2b
+1d
+0b
+06
+1a
+eb
+bc
+3b
+4b
+2e
+5e
+10
+d8
+c9
+7c
+e5
+2c
+7e
+2d
+39
+27
+96
+e4
+4a
+1b
+e0
+3f
+7e
+58
+68
+b8
+7e
+87
+bf
+c3
+6b
+92
+91
+2a
+ae
+1e
+55
+74
+f7
+5f
+50
+c7
+6e
+99
+ea
+be
+69
+0b
+ec
+46
+0c
+db
+da
+aa
+40
+ee
+14
+a4
+40
+bd
+70
+78
+5d
+11
+87
+1b
+73
+d3
+8f
+62
+96
+61
+5b
+e9
+08
+4c
+7c
+41
+cc
+d5
+bf
+d0
+fa
+6a
+ad
+3d
+f9
+68
+56
+21
+0e
+ae
+dc
+cd
+b6
+20
+d9
+29
+4a
+4c
+96
+42
+14
+95
+9c
+e5
+46
+e4
+3e
+e4
+c3
+f8
+b9
+bb
+2a
+a8
+c5
+74
+30
+26
+6b
+33
+aa
+2f
+6b
+7c
+8c
+37
+ec
+49
+9b
+03
+69
+b9
+31
+54
+6d
+ce
+9a
+79
+e8
+ca
+f3
+1b
+e6
+d9
+8d
+95
+cc
+e8
+87
+57
+7d
+ec
+88
+c6
+a0
+78
+f3
+9c
+7b
+c1
+1c
+ac
+5f
+41
+51
+a3
+52
+fc
+12
+7a
+dc
+b4
+8e
+7a
+7e
+8b
+83
+d3
+88
+0f
+1a
+06
+66
+5a
+7a
+f9
+41
+e8
+9c
+d8
+ea
+9d
+0a
+61
+f0
+81
+cb
+cc
+fa
+77
+a6
+3f
+ad
+91
+af
+fa
+4b
+6f
+b2
+ab
+6e
+ee
+e8
+e7
+35
+2e
+73
+fd
+c3
+36
+f8
+3b
+1d
+9e
+85
+bd
+ae
+58
+e8
+53
+5b
+fb
+90
+4c
+6a
+54
+18
+e3
+1a
+d0
+4d
+7f
+a5
+ad
+da
+98
+5d
+6c
+e7
+c1
+84
+6e
+c9
+00
+6d
+b5
+2f
+ec
+77
+c9
+78
+c1
+70
+86
+e6
+ca
+1a
+55
+f7
+bd
+73
+1f
+41
+bc
+27
+32
+15
+fa
+a0
+6b
+ba
+63
+68
+e5
+8d
+20
+2b
+ff
+53
+8d
+05
+23
+7f
+42
+18
+63
+34
+f7
+5d
+25
+b9
+c0
+dc
+38
+b3
+b2
+4a
+0c
+3f
+23
+7c
+0d
+14
+2c
+59
+69
+33
+3f
+b9
+a2
+4a
+99
+67
+e1
+0e
+15
+82
+c6
+d0
+3d
+a6
+c5
+91
+25
+f2
+cd
+0f
+4a
+e7
+d2
+43
+e8
+51
+d8
+f4
+4d
+18
+00
+87
+0d
+d0
+15
+c7
+fb
+48
+aa
+d3
+6d
+6c
+16
+02
+f9
+9b
+9a
+45
+46
+a6
+f0
+1b
+a7
+8c
+1d
+b8
+1c
+1b
+dc
+0e
+00
+a5
+1a
+d7
+c9
+a1
+cd
+be
+46
+51
+f4
+70
+d2
+a9
+04
+7c
+8e
+c3
+b9
+b9
+eb
+1a
+94
+58
+1b
+ce
+c0
+7d
+5e
+40
+a4
+35
+4d
+3c
+d5
+7c
+93
+43
+30
+34
+49
+00
+49
+f9
+f9
+4d
+79
+57
+fb
+29
+e8
+22
+ad
+a5
+a5
+7c
+ac
+0c
+0e
+c6
+5c
+8d
+0f
+9a
+c3
+a3
+06
+0e
+19
+73
+9e
+34
+40
+8b
+e3
+6d
+a3
+87
+fb
+52
+81
+c1
+c3
+12
+e2
+50
+c3
+fc
+78
+8f
+b9
+97
+9c
+a6
+81
+03
+d6
+b9
+ce
+15
+55
+e7
+b2
+98
+ff
+e7
+bc
+05
+b6
+14
+8a
+e6
+9f
+ec
+04
+da
+56
+ca
+c0
+98
+9c
+98
+57
+8a
+e9
+d0
+9a
+62
+8d
+8f
+36
+c2
+95
+ca
+b8
+f7
+99
+c3
+17
+88
+97
+ab
+40
+00
+b9
+22
+cd
+85
+00
+36
+32
+03
+90
+b2
+66
+10
+2b
+68
+0f
+ee
+66
+18
+90
+7a
+28
+e7
+57
+f4
+a6
+07
+e3
+7c
+7a
+2a
+30
+d8
+b1
+9c
+9c
+55
+6a
+d1
+e1
+6c
+62
+ba
+1a
+66
+89
+56
+93
+21
+4b
+d0
+d3
+0c
+e3
+4e
+96
+68
+3e
+c2
+5e
+70
+06
+e5
+0a
+f0
+c0
+f4
+46
+2a
+18
+ed
+e0
+97
+09
+a3
+5c
+c6
+c6
+58
+04
+a9
+0b
+2b
+67
+d5
+3f
+ca
+01
+8a
+60
+75
+95
+e2
+1c
+83
+18
+f6
+58
+33
+92
+5b
+c8
+f2
+a8
+8e
+ae
+c7
+33
+b6
+44
+20
+66
+6b
+d4
+f7
+1b
+5b
+e6
+d1
+02
+52
+43
+ae
+71
+64
+05
+f6
+0e
+a8
+9d
+45
+5d
+e6
+24
+e1
+23
+6a
+c8
+4a
+82
+bc
+fb
+9a
+08
+ec
+66
+70
+4a
+5f
+4b
+e9
+c8
+35
+d0
+f6
+c8
+7d
+63
+91
+f5
+3e
+08
+d7
+48
+84
+48
+ee
+13
+c3
+ff
+57
+a9
+f9
+9d
+44
+25
+61
+0b
+e5
+a3
+5b
+3e
+06
+eb
+ee
+9e
+6e
+ff
+ae
+a6
+d7
+c4
+11
+24
+c5
+4e
+b5
+54
+12
+0c
+96
+ad
+91
+6d
+11
+53
+ce
+0b
+47
+8b
+94
+34
+2d
+8e
+0c
+ca
+d1
+7a
+f9
+7c
+39
+7a
+bd
+68
+9d
+b4
+5f
+65
+07
+16
+3f
+55
+0e
+b4
+d4
+d3
+09
+ed
+37
+df
+53
+d1
+40
+d3
+3d
+a0
+55
+08
+55
+e7
+c7
+f9
+f0
+dd
+00
+42
+7e
+66
+c1
+19
+c4
+60
+aa
+86
+4b
+79
+2f
+09
+45
+d6
+ef
+43
+70
+b9
+4e
+67
+3e
+25
+81
+c0
+e9
+15
+d2
+f3
+60
+77
+c3
+b1
+e1
+82
+d6
+07
+a6
+28
+fb
+8e
+78
+4b
+b5
+92
+af
+78
+6a
+e9
+d2
+f6
+9b
+94
+23
+ac
+8e
+eb
+02
+10
+02
+b4
+51
+81
+c6
+a5
+e1
+78
+d5
+e9
+9a
+17
+01
+e0
+cf
+93
+0d
+34
+bf
+6d
+f4
+61
+85
+27
+cf
+e9
+62
+0d
+dc
+dd
+f2
+5f
+57
+a9
+3d
+b9
+5f
+e4
+a5
+ea
+7a
+d6
+fa
+da
+dd
+d4
+90
+69
+e2
+07
+db
+e8
+5b
+d2
+c6
+e5
+ad
+df
+65
+8b
+a6
+05
+43
+60
+c7
+82
+c3
+22
+f2
+6d
+7a
+54
+90
+0d
+48
+fc
+0e
+ac
+66
+7e
+99
+19
+22
+30
+6b
+6f
+ec
+23
+3e
+a1
+73
+40
+c2
+2b
+b5
+47
+44
+f8
+d7
+65
+97
+92
+08
+ee
+4e
+c1
+bf
+a1
+d3
+a2
+15
+fe
+7f
+c4
+14
+78
+fa
+c1
+c3
+6f
+18
+36
+6a
+ed
+8a
+28
+c1
+95
+94
+e0
+3a
+54
+25
+75
+4e
+39
+80
+88
+93
+72
+3a
+1e
+f5
+d8
+73
+38
+d7
+d7
+fe
+11
+2a
+ec
+30
+87
+e7
+cb
+f6
+c0
+ec
+8d
+76
+22
+eb
+ea
+8d
+07
+30
+3c
+14
+78
+13
+18
+61
+3e
+03
+aa
+86
+9f
+2c
+82
+86
+97
+bd
+df
+bf
+58
+a8
+bc
+14
+cd
+7b
+e3
+e6
+ea
+3e
+22
+d6
+57
+83
+79
+02
+5a
+b5
+9c
+32
+b1
+c5
+94
+80
+79
+29
+45
+85
+5d
+f5
+1e
+e8
+26
+f3
+44
+ef
+c4
+44
+c8
+d4
+9b
+6f
+04
+7e
+ef
+00
+7e
+4c
+21
+12
+ea
+45
+06
+a5
+84
+2e
+a0
+e8
+24
+12
+3f
+4c
+5a
+6b
+ac
+f3
+c8
+e1
+8f
+a8
+26
+6d
+76
+46
+a0
+28
+3f
+db
+57
+39
+eb
+62
+8a
+82
+67
+1c
+71
+5b
+c7
+bc
+10
+ee
+53
+be
+26
+03
+58
+5a
+93
+43
+8a
+51
+e7
+26
+44
+ec
+18
+3a
+54
+8b
+af
+60
+7f
+d4
+8d
+d3
+80
+5d
+05
+0a
+d2
+b8
+3c
+f9
+f1
+93
+0d
+70
+bc
+9b
+e3
+09
+00
+cc
+ec
+d0
+ba
+70
+7d
+76
+5f
+73
+a2
+02
+ac
+69
+2c
+46
+04
+7d
+0e
+37
+cc
+0a
+96
+ce
+4a
+cd
+41
+45
+35
+34
+10
+9f
+ed
+c8
+09
+13
+a9
+d1
+b3
+02
+2e
+6e
+05
+b0
+e2
+40
+b8
+b5
+fc
+76
+47
+be
+74
+d3
+4a
+a4
+45
+ca
+a6
+3e
+83
+d4
+e4
+bd
+cb
+49
+9e
+87
+d2
+2a
+a0
+66
+5f
+24
+4f
+21
+d5
+ae
+0a
+72
+19
+9f
+a7
+50
+95
+8c
+33
+5e
+61
+6f
+b5
+c1
+bf
+cf
+70
+60
+10
+cd
+91
+c2
+da
+6e
+44
+8f
+b3
+36
+69
+6f
+41
+32
+1a
+ad
+1b
+f2
+b0
+63
+cd
+0f
+8c
+1c
+f1
+da
+13
+5b
+6d
+8a
+42
+7c
+f9
+1a
+49
+0c
+13
+b8
+c0
+ea
+00
+68
+ad
+0e
+6b
+bf
+e0
+da
+fd
+57
+f5
+41
+bc
+f5
+a0
+ea
+55
+52
+37
+55
+aa
+0c
+63
+ee
+67
+8a
+64
+27
+37
+ba
+a8
+c4
+bd
+fc
+19
+71
+f2
+54
+fd
+98
+c2
+e5
+a0
+99
+72
+7e
+97
+75
+d2
+37
+06
+b4
+61
+22
+e4
+9e
+3d
+1d
+ec
+22
+12
+7b
+ea
+bd
+cc
+7c
+93
+cd
+74
+a3
+48
+f8
+da
+fe
+37
+c2
+31
+25
+c7
+9f
+e8
+1d
+b0
+b9
+6c
+cc
+17
+93
+6b
+88
+28
+5d
+9b
+e0
+43
+6e
+56
+61
+c2
+f2
+1f
+8f
+b7
+f2
+5d
+4d
+c3
+19
+5a
+01
+d0
+0b
+50
+12
+41
+36
+f6
+65
+50
+52
+66
+65
+fb
+8b
+94
+ed
+67
+29
+36
+c5
+5e
+fd
+b2
+30
+fc
+67
+53
+bc
+d0
+82
+a5
+b7
+48
+f7
+af
+26
+a3
+53
+da
+a7
+36
+ff
+9e
+a5
+ab
+2c
+30
+8f
+77
+a2
+69
+95
+7b
+8c
+90
+42
+19
+ac
+3c
+5a
+d6
+f0
+3c
+ac
+52
+e2
+4f
+7d
+63
+23
+ec
+b3
+d1
+2f
+0d
+53
+96
+e8
+d0
+d2
+d6
+80
+0e
+6f
+0c
+5e
+17
+23
+07
+af
+3b
+bd
+4c
+dc
+38
+db
+b2
+ea
+31
+07
+ed
+f0
+27
+99
+ce
+73
+94
+42
+c8
+dd
+4c
+a4
+f4
+c7
+2a
+31
+81
+30
+a9
+8f
+cf
+ee
+f8
+65
+d8
+38
+75
+d9
+46
+5e
+b7
+57
+71
+59
+c1
+9b
+c7
+36
+04
+1d
+fe
+3c
+28
+65
+c0
+9e
+11
+f3
+0e
+02
+80
+18
+3f
+93
+63
+c9
+6b
+af
+f5
+db
+cb
+23
+01
+c6
+62
+67
+ba
+6e
+66
+54
+9f
+70
+47
+ac
+39
+3b
+f8
+0d
+18
+b5
+3b
+89
+a0
+20
+7c
+8f
+e2
+51
+16
+73
+78
+60
+c9
+50
+e1
+02
+a1
+1b
+27
+ec
+f0
+44
+92
+17
+cf
+64
+78
+c9
+fa
+b8
+c2
+07
+3f
+83
+4e
+75
+b6
+07
+42
+8d
+18
+b3
+e5
+30
+4f
+9f
+98
+b0
+73
+f2
+94
+e4
+72
+45
+9e
+35
+2a
+85
+6c
+f8
+ac
+9c
+6f
+5b
+7d
+61
+c5
+e4
+ec
+fa
+8c
+27
+0c
+9c
+c5
+ac
+a6
+44
+9f
+51
+8d
+73
+cf
+74
+d1
+2c
+8b
+7d
+d9
+8d
+f4
+f9
+4c
+dd
+58
+f6
+85
+ef
+d7
+e5
+f5
+06
+26
+02
+70
+9e
+9f
+b4
+be
+34
+32
+75
+fa
+03
+c0
+ee
+1b
+90
+91
+89
+6e
+f7
+30
+1f
+bc
+be
+12
+1c
+3a
+8d
+a6
+a0
+72
+97
+79
+cd
+66
+07
+09
+be
+61
+d3
+73
+f1
+32
+a6
+52
+0a
+a8
+d1
+a2
+f1
+6e
+a8
+a7
+ff
+54
+55
+67
+87
+70
+c7
+95
+09
+e8
+cb
+c8
+47
+35
+a9
+e2
+63
+ee
+e9
+b2
+3b
+6a
+3a
+c9
+8b
+d6
+9a
+5c
+bc
+35
+85
+6d
+88
+87
+0c
+bd
+8c
+56
+92
+bf
+d9
+a1
+63
+d1
+46
+46
+55
+22
+28
+26
+c8
+f6
+6f
+0a
+cf
+5f
+52
+70
+b5
+37
+ac
+47
+96
+b8
+a0
+e4
+a3
+c9
+55
+3b
+81
+ee
+56
+b1
+40
+5c
+b1
+ac
+fb
+1e
+43
+db
+a8
+8d
+7a
+fb
+fa
+a9
+b6
+52
+69
+4c
+81
+f5
+fc
+c0
+96
+af
+1a
+78
+0f
+a5
+e4
+27
+97
+09
+74
+59
+97
+98
+58
+16
+1e
+00
+90
+38
+6a
+f5
+22
+b5
+fb
+8c
+f1
+c2
+25
+15
+6e
+56
+05
+10
+74
+19
+77
+d5
+f5
+b3
+cc
+7f
+c4
+96
+db
+ce
+a1
+0a
+50
+af
+2f
+3d
+9a
+18
+52
+81
+4f
+1f
+9a
+b3
+ba
+03
+90
+d9
+64
+d9
+15
+b1
+34
+9f
+72
+c8
+eb
+77
+ef
+2a
+36
+27
+58
+dd
+5f
+88
+33
+04
+bc
+4d
+ac
+a2
+ae
+c3
+b4
+e2
+1b
+fc
+b6
+6b
+fe
+d9
+9b
+b9
+ec
+e8
+37
+bd
+93
+4d
+9f
+ff
+da
+0f
+05
+84
+31
+b8
+d4
+db
+20
+0e
+6b
+d6
+c1
+95
+e8
+38
+53
+5a
+08
+6d
+db
+7a
+6b
+0d
+c8
+e0
+a4
+ac
+b0
+48
+c1
+23
+d4
+3c
+71
+6b
+0c
+64
+d7
+a5
+47
+6b
+25
+f1
+cc
+ee
+72
+41
+b8
+02
+c2
+a5
+18
+94
+3f
+6a
+1e
+d8
+bd
+2e
+36
+1f
+c9
+44
+76
+bd
+bf
+a5
+c4
+3d
+0d
+f6
+f7
+b1
+d6
+d6
+86
+ac
+9e
+be
+28
+41
+d3
+5b
+7c
+53
+da
+ca
+bd
+94
+60
+9d
+20
+e9
+b0
+94
+6a
+af
+68
+7d
+7b
+20
+14
+f7
+22
+61
+b7
+04
+f8
+70
+17
+0a
+7a
+44
+8b
+ff
+f7
+fb
+53
+50
+75
+0c
+59
+e7
+b4
+a5
+e9
+de
+d4
+93
+8c
+c4
+d5
+9e
+2f
+53
+ec
+11
+7e
+2e
+34
+c2
+b7
+aa
+57
+b2
+0e
+3a
+06
+c0
+9b
+9c
+ea
+75
+19
+64
+4a
+4e
+10
+2d
+04
+54
+58
+be
+25
+c1
+cb
+7f
+2d
+31
+d6
+f2
+58
+8c
+4b
+fa
+82
+82
+f2
+61
+9d
+ec
+6f
+12
+ca
+58
+09
+ac
+74
+fc
+45
+54
+fc
+1c
+2f
+2d
+04
+21
+cf
+2b
+e9
+0f
+01
+67
+8e
+98
+38
+ff
+83
+f3
+37
+a2
+7d
+0e
+46
+11
+c3
+cf
+8f
+d5
+07
+09
+51
+4b
+fa
+3f
+ce
+bb
+64
+24
+24
+ca
+b9
+de
+05
+7d
+87
+54
+4e
+7d
+4a
+e9
+48
+56
+66
+5c
+a7
+dd
+50
+55
+2b
+d6
+dc
+6d
+21
+37
+78
+ab
+83
+23
+0b
+a3
+cd
+94
+95
+e1
+55
+11
+45
+1c
+18
+f3
+86
+3c
+ac
+20
+f9
+f2
+69
+a6
+6c
+3d
+7b
+3d
+13
+00
+ad
+5f
+f3
+39
+ef
+57
+21
+90
+01
+2c
+fd
+47
+8f
+9a
+3e
+f2
+0f
+79
+33
+e0
+63
+3a
+af
+39
+dc
+97
+46
+a2
+1c
+85
+4f
+dd
+bd
+37
+74
+13
+18
+a3
+74
+7e
+15
+44
+c9
+f7
+d7
+92
+d0
+59
+07
+a3
+9e
+c0
+67
+d9
+03
+4e
+69
+b8
+1a
+9d
+e5
+38
+88
+61
+30
+7a
+96
+2e
+53
+57
+a2
+53
+03
+1b
+1c
+17
+72
+c3
+02
+35
+8a
+9e
+92
+fd
+5e
+24
+37
+62
+88
+e7
+21
+bd
+e0
+e6
+87
+48
+a6
+b1
+ce
+28
+14
+3c
+2d
+9a
+d4
+06
+7c
+cb
+c4
+1f
+bd
+b6
+37
+f4
+6e
+0f
+84
+dd
+3e
+21
+ee
+3b
+18
+32
+6e
+7c
+3f
+f5
+81
+66
+71
+81
+66
+39
+90
+e7
+8c
+e7
+69
+a1
+b2
+33
+e7
+8b
+4c
+83
+8e
+28
+08
+52
+69
+de
+fe
+2f
+df
+9f
+33
+93
+f6
+43
+2c
+ff
+fe
+e8
+ff
+59
+41
+8c
+ca
+b8
+58
+cc
+de
+85
+d9
+ab
+08
+7f
+ba
+d2
+bf
+00
+49
+3c
+4d
+5d
+13
+a7
+42
+47
+da
+c9
+16
+9e
+f3
+3a
+91
+79
+b2
+d3
+45
+14
+1d
+c9
+8e
+63
+bb
+d8
+bf
+1f
+32
+f0
+82
+47
+27
+f4
+ed
+1e
+2a
+c1
+b8
+1b
+4d
+fa
+8e
+1f
+4a
+86
+71
+92
+e4
+0a
+6f
+1d
+54
+1a
+05
+17
+31
+ca
+96
+6b
+6f
+0c
+ef
+ad
+c7
+d4
+5a
+3c
+a5
+ba
+1d
+4c
+43
+dc
+ca
+89
+79
+2e
+53
+d4
+89
+84
+38
+9f
+15
+44
+3d
+69
+fd
+d1
+f6
+33
+5d
+a4
+10
+0a
+fc
+ea
+54
+d8
+7d
+3c
+d6
+bf
+b7
+0f
+85
+33
+ba
+70
+f5
+bc
+c8
+39
+8b
+04
+9f
+0d
+c8
+7a
+a2
+fe
+09
+5d
+e5
+9b
+be
+5c
+05
+9b
+59
+5b
+97
+1f
+72
+c3
+a1
+6c
+60
+d9
+51
+2f
+e4
+8c
+eb
+6a
+5c
+70
+20
+6b
+81
+4c
+fd
+79
+b0
+d4
+e9
+4e
+20
+5b
+c0
+85
+a5
+6c
+d4
+1a
+61
+19
+b5
+81
+5a
+4c
+3d
+6b
+01
+c1
+ed
+0c
+26
+73
+27
+07
+fd
+72
+ff
+32
+45
+43
+b8
+d2
+57
+96
+ed
+7f
+97
+3f
+67
+b8
+18
+fc
+f7
+91
+6a
+0b
+4b
+d8
+72
+80
+d5
+e9
+2b
+8b
+1d
+76
+f6
+29
+05
+c3
+16
+f3
+d3
+6a
+9c
+a1
+d8
+f2
+0a
+34
+b5
+15
+5a
+f9
+a8
+9a
+18
+75
+b6
+fc
+94
+ef
+8f
+d2
+b3
+93
+d1
+7b
+23
+d4
+9f
+09
+fd
+c9
+4f
+eb
+c3
+44
+1a
+fa
+20
+34
+68
+f2
+f5
+77
+3c
+24
+49
+db
+40
+ad
+eb
+2b
+95
+57
+3f
+09
+bf
+d9
+47
+be
+1d
+e1
+d2
+5b
+e8
+0c
+ae
+9b
+88
+76
+9c
+ca
+bb
+9d
+1a
+b1
+de
+8b
+99
+24
+33
+93
+26
+1f
+78
+a1
+68
+80
+7e
+01
+3f
+4d
+d0
+74
+10
+fd
+06
+fb
+e9
+0a
+ca
+e3
+0a
+43
+ef
+b0
+e9
+e9
+bf
+8d
+58
+ad
+7d
+39
+7f
+50
+c1
+3b
+96
+fa
+d4
+21
+7c
+90
+e6
+55
+2b
+f2
+ff
+6e
+62
+5c
+24
+6f
+c0
+ef
+aa
+42
+3a
+c1
+f6
+a2
+be
+4b
+90
+3b
+d7
+c8
+31
+fd
+a8
+0d
+6d
+a4
+37
+97
+3a
+e6
+ef
+5c
+21
+13
+dc
+52
+93
+00
+1b
+9b
+fa
+10
+0b
+e6
+be
+f9
+a5
+51
+58
+37
+ef
+5d
+e3
+e1
+7a
+1d
+3b
+e7
+aa
+26
+7d
+4d
+a7
+8a
+3d
+dd
+d5
+62
+35
+d9
+f4
+d4
+de
+07
+2e
+ef
+99
+a6
+4a
+04
+e5
+d6
+e4
+19
+2c
+30
+f0
+35
+c1
+09
+98
+dc
+5e
+24
+32
+03
+39
+18
+80
+de
+dd
+0b
+11
+28
+2e
+e7
+fe
+5c
+9a
+1a
+a5
+cf
+06
+39
+c7
+14
+84
+9b
+1e
+6d
+11
+4f
+22
+23
+38
+b9
+81
+7a
+d8
+37
+c9
+76
+d1
+38
+db
+b2
+fb
+cb
+3f
+a1
+a2
+ec
+41
+ef
+d9
+03
+fb
+22
+53
+c2
+5d
+1d
+06
+35
+e3
+07
+12
+38
+36
+72
+da
+75
+22
+e1
+dd
+19
+15
+bd
+84
+e4
+40
+bb
+98
+60
+b5
+82
+4d
+e8
+33
+b4
+ec
+86
+45
+80
+90
+82
+64
+c5
+1c
+6d
+83
+64
+23
+07
+99
+18
+e3
+79
+c5
+53
+cf
+d5
+26
+fb
+6a
+52
+99
+ed
+16
+0e
+37
+ef
+dd
+aa
+5f
+27
+0a
+3e
+9f
+99
+55
+56
+2d
+e3
+4e
+a5
+c5
+c2
+3e
+01
+2e
+2d
+2e
+9c
+5d
+a2
+1f
+a3
+6b
+7f
+6d
+7a
+e4
+dd
+a8
+3a
+53
+50
+f5
+54
+4c
+cb
+cf
+02
+50
+57
+e3
+7d
+e1
+a1
+6b
+a6
+f4
+9b
+52
+95
+a1
+19
+8f
+2c
+2a
+22
+88
+e2
+18
+2b
+97
+69
+4c
+3f
+33
+67
+78
+22
+f5
+e2
+be
+84
+0e
+9e
+28
+d5
+6c
+3d
+bd
+73
+d6
+8d
+26
+ac
+8d
+75
+8e
+a6
+21
+b6
+94
+02
+5c
+55
+eb
+a4
+58
+61
+08
+85
+b5
+75
+4f
+2c
+9f
+20
+35
+6f
+f2
+4e
+07
+4d
+bd
+8e
+53
+a4
+68
+13
+61
+ee
+d2
+75
+a7
+22
+b2
+1b
+ad
+30
+7d
+5d
+9b
+1c
+85
+9d
+87
+2d
+ff
+18
+bd
+1b
+bb
+67
+a0
+e8
+bd
+89
+b2
+6a
+8f
+03
+7e
+d0
+ab
+35
+94
+56
+c4
+17
+3b
+d0
+f7
+3e
+92
+c8
+62
+54
+9a
+03
+3e
+dc
+3a
+84
+b5
+5a
+ee
+e9
+ae
+aa
+4f
+db
+f8
+ff
+20
+fa
+69
+84
+ec
+b9
+cb
+07
+4b
+b2
+e5
+83
+d5
+f5
+f6
+12
+4b
+5f
+ec
+e1
+cb
+28
+ce
+34
+10
+42
+f8
+ab
+e6
+b8
+16
+bc
+57
+6a
+01
+ca
+4f
+bb
+78
+d4
+b8
+b5
+13
+03
+82
+66
+c3
+03
+d8
+dc
+1f
+34
+6f
+93
+f1
+39
+9b
+0c
+ba
+ba
+1c
+4f
+09
+73
+40
+9c
+a2
+f8
+6f
+0a
+53
+58
+57
+9d
+5b
+98
+a2
+4a
+ae
+ec
+55
+f4
+d1
+96
+41
+2c
+9d
+c1
+70
+25
+9a
+8c
+f8
+e5
+fc
+45
+f9
+5b
+bb
+79
+84
+82
+bf
+b2
+be
+82
+00
+81
+ca
+a9
+03
+38
+fd
+7d
+c3
+ec
+fc
+64
+42
+b1
+a7
+3e
+fe
+19
+e0
+63
+57
+c9
+e3
+ac
+35
+50
+83
+b0
+66
+0a
+50
+8c
+60
+9c
+6d
+00
+16
+bb
+40
+2c
+2b
+1d
+87
+93
+2b
+cd
+72
+61
+14
+f1
+0f
+b0
+7c
+db
+bf
+3d
+13
+de
+83
+15
+ab
+36
+e0
+97
+7f
+c2
+7f
+8d
+d7
+90
+6d
+a5
+cc
+71
+3d
+73
+a2
+0b
+40
+f9
+2c
+d6
+ba
+8b
+78
+b2
+51
+a3
+7c
+44
+d7
+40
+d0
+89
+8a
+58
+bd
+22
+5b
+7c
+d2
+92
+cc
+dc
+e0
+1b
+4e
+93
+5c
+f5
+93
+a4
+4f
+1e
+b8
+ff
+aa
+55
+40
+00
+00
+40
+01
+00
+00
+04
+20
+01
+00
+c0
+19
+5a
+c2
+52
+00
+04
+00
+10
+04
+00
+00
+00
+08
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+20
+04
+00
+00
+00
+00
+00
+08
+00
+aa
+55
+08
+00
+8e
+48
+00
+69
+05
+01
+00
+03
+0f
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+94
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+02
+00
+e6
+4a
+05
+01
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+0d
+00
+5f
+47
+0c
+09
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+0e
+00
+6c
+43
+1f
+0c
+09
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+0c
+00
+6d
+42
+0b
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+01
+00
+b1
+48
+01
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+64
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+64
+aa
+55
+01
+00
+53
+46
+64
+aa
+55
+02
+00
+4f
+46
+58
+02
+aa
+55
+02
+00
+1e
+47
+70
+17
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+02
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+01
+7f
+1f
+01
+7f
+1e
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+00
+aa
+55
+06
+00
+95
+4a
+ff
+ff
+ff
+ff
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+03
+02
+aa
+55
+02
+00
+f4
+43
+10
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+01
+00
+14
+49
+81
+aa
+55
+01
+00
+13
+49
+ff
+aa
+55
+02
+00
+16
+49
+81
+80
+aa
+55
+01
+00
+15
+49
+ff
+aa
+55
+04
+00
+18
+49
+81
+81
+ff
+ff
+aa
+55
+03
+00
+10
+49
+0b
+0a
+ff
+aa
+55
+01
+00
+0f
+49
+0c
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c1
+85
+84
+83
+82
+81
+80
+c7
+c6
+c4
+c3
+aa
+55
+1d
+00
+1f
+49
+06
+07
+08
+15
+14
+13
+12
+11
+84
+10
+0f
+0e
+0d
+c2
+c3
+c4
+c7
+80
+81
+85
+c6
+c5
+82
+83
+ff
+ff
+ff
+ff
+ff
+aa
+55
+88
+00
+c7
+49
+00
+00
+00
+00
+e6
+00
+7f
+3e
+14
+2b
+04
+29
+1d
+00
+35
+1e
+1a
+39
+16
+00
+1b
+00
+3a
+1f
+08
+3c
+07
+3d
+06
+00
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+00
+2e
+25
+12
+40
+0f
+00
+37
+00
+41
+26
+13
+2f
+33
+34
+00
+38
+2d
+27
+00
+00
+e0
+e3
+00
+e7
+00
+45
+00
+2a
+31
+00
+28
+00
+42
+43
+00
+00
+00
+2c
+44
+51
+4c
+00
+00
+00
+00
+00
+00
+4f
+00
+00
+00
+00
+00
+52
+00
+50
+00
+00
+00
+e1
+e5
+00
+00
+00
+00
+00
+00
+e2
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+0f
+00
+84
+4a
+00
+af
+3a
+3b
+3c
+3d
+ad
+ab
+ec
+ee
+ed
+eb
+e9
+ea
+a9
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+06
+03
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+d5
+7c
+24
+a9
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+64
+32
Index: output/flash.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/flash.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/flash.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+30
+10
+53
+00
+02
+ee
+30
+ad
+a4
+92
+b2
+ab
+69
+96
+4d
+13
+28
+30
+be
+74
+8c
+46
+13
+1d
+6d
+9c
+09
+25
+5c
+7f
+f7
+78
+b7
+27
+9e
+be
+37
+a7
+d2
+e5
+ac
+d0
+e7
+dc
+43
+38
+f7
+ed
+20
+9c
+98
+9f
+2f
+9c
+73
+63
+73
+1e
+ab
+27
+be
+71
+05
+bc
+fe
+4f
+21
+3c
+63
+a4
+19
+80
+e2
+36
+00
+04
+b1
+dc
+0b
+94
+d8
+98
+e9
+48
+12
+8c
+81
+45
+7c
+77
+88
+93
+75
+6a
+84
+54
+f8
+12
+07
+c1
+c4
+5c
+68
+e8
+be
+76
+24
+40
+18
+a1
+0d
+7f
+9c
+14
+4e
+4b
+46
+cf
+fb
+46
+30
+21
+f7
+d6
+8a
+39
+4d
+ed
+e7
+27
+35
+b3
+f9
+10
+62
+4a
+98
+a8
+9a
+0f
+09
+67
+c7
+f4
+ff
+72
+0e
+be
+fb
+30
+28
+02
+c2
+31
+83
+21
+9c
+1a
+87
+22
+11
+14
+3b
+08
+23
+65
+bf
+55
+e8
+d2
+96
+57
+73
+46
+bf
+17
+ad
+40
+e9
+06
+70
+00
+37
+9d
+fb
+85
+76
+ea
+01
+bf
+6b
+5b
+dd
+c6
+59
+64
+1a
+00
+62
+ef
+fb
+c7
+ad
+c7
+15
+84
+99
+1d
+24
+b8
+c4
+2d
+5c
+7c
+5a
+a0
+59
+16
+87
+f1
+fa
+f0
+69
+cc
+64
+d3
+55
+fe
+64
+c8
+7b
+a1
+be
+8b
+10
+37
+25
+14
+76
+01
+86
+0b
+81
+76
+03
+c0
+6d
+4a
+54
+9d
+e9
+29
+77
+68
+57
+b7
+25
+55
+2d
+d0
+b0
+d0
+d3
+b1
+b5
+38
+0c
+44
+02
+d4
+f2
+8e
+6d
+b3
+03
+b4
+98
+99
+7a
+6a
+f7
+c5
+3c
+09
+af
+e3
+30
+64
+9d
+82
+20
+eb
+a1
+04
+78
+86
+48
+0b
+08
+0d
+2e
+87
+a4
+92
+70
+de
+3a
+98
+5a
+83
+bb
+ca
+0f
+c2
+68
+47
+fa
+79
+28
+5d
+9e
+87
+50
+ac
+5f
+56
+b5
+28
+c3
+cd
+b9
+81
+37
+7d
+47
+d1
+d7
+2e
+10
+52
+f9
+7a
+56
+e3
+65
+73
+fd
+f3
+a5
+8c
+f8
+83
+4b
+62
+c8
+ac
+c5
+1f
+02
+6a
+dd
+b3
+ec
+05
+3a
+d5
+bc
+f9
+a2
+9d
+96
+89
+39
+cb
+af
+a7
+f5
+64
+b8
+17
+4c
+2e
+dc
+bd
+cd
+e3
+4c
+2a
+fd
+7a
+ac
+c2
+fd
+53
+46
+ab
+7e
+3d
+24
+ee
+bf
+f5
+bb
+26
+5a
+1c
+4f
+24
+29
+7c
+00
+dd
+f1
+42
+f4
+6b
+19
+25
+c5
+e0
+e6
+0d
+53
+8b
+b5
+ed
+be
+29
+19
+33
+ad
+00
+49
+52
+b0
+59
+db
+9a
+a7
+93
+2e
+96
+33
+37
+fd
+c7
+50
+10
+32
+a7
+1e
+23
+a4
+c7
+62
+8a
+4f
+ca
+4b
+2e
+3a
+3f
+cd
+8f
+42
+a5
+94
+9e
+ef
+76
+38
+d5
+1e
+a8
+86
+24
+84
+00
+02
+7e
+92
+6b
+10
+5f
+31
+cf
+2b
+f0
+99
+78
+de
+e2
+40
+ab
+9f
+8a
+ad
+ad
+27
+fc
+f7
+a8
+63
+f8
+52
+a1
+4a
+12
+16
+58
+8f
+e9
+ea
+d1
+72
+b9
+c8
+6f
+b2
+6b
+bf
+60
+e5
+59
+f5
+82
+b3
+d9
+42
+0c
+8b
+13
+4b
+0a
+fa
+e4
+e8
+5e
+e4
+dc
+8f
+19
+e9
+c6
+38
+10
+d6
+76
+02
+87
+70
+96
+f5
+5e
+21
+5d
+ad
+ce
+c2
+ed
+da
+a2
+1f
+1f
+ba
+66
+f3
+65
+84
+42
+f3
+d4
+68
+5d
+d5
+d3
+ad
+41
+84
+2b
+f7
+9c
+b8
+7a
+04
+0e
+d2
+dc
+52
+1c
+dd
+e4
+64
+00
+02
+27
+c0
+c9
+04
+7b
+71
+b6
+ce
+fa
+cc
+58
+a8
+0d
+37
+94
+36
+3d
+9b
+73
+f3
+e1
+f3
+56
+6f
+31
+0a
+b6
+0a
+a5
+c3
+dd
+cd
+4d
+b0
+67
+5d
+fa
+61
+bb
+95
+2a
+20
+1e
+0e
+0e
+1e
+0e
+b7
+39
+af
+40
+9d
+b4
+b1
+60
+7a
+fc
+c5
+5c
+8c
+99
+27
+c3
+33
+c6
+46
+0c
+61
+3b
+02
+c4
+7c
+1c
+c7
+88
+be
+4a
+ea
+af
+7a
+d4
+17
+0a
+ed
+42
+54
+c2
+ad
+26
+9c
+35
+0d
+8e
+63
+b0
+f5
+5c
+17
+af
+c5
+fe
+0b
+54
+e3
+27
+25
+50
+7b
+0b
+f5
+d7
+8c
+6d
+92
+47
+8f
+56
+54
+af
+fe
+e7
+34
+3e
+aa
+80
+d3
+b8
+8c
+d6
+07
+0d
+56
+08
+d3
+59
+09
+ab
+ef
+a1
+25
+8f
+a6
+bc
+fc
+9d
+b3
+0e
+b9
+f8
+1b
+51
+68
+36
+9e
+da
+39
+00
+e5
+a3
+d2
+43
+be
+17
+f8
+b5
+fa
+a8
+f3
+f7
+83
+aa
+af
+2b
+1d
+0b
+06
+1a
+eb
+bc
+3b
+4b
+2e
+5e
+10
+d8
+c9
+7c
+e5
+2c
+7e
+2d
+39
+27
+96
+e4
+4a
+1b
+e0
+3f
+7e
+58
+68
+b8
+7e
+87
+bf
+c3
+6b
+92
+91
+2a
+ae
+1e
+55
+74
+f7
+5f
+50
+c7
+6e
+99
+ea
+be
+69
+0b
+ec
+46
+0c
+db
+da
+aa
+40
+ee
+14
+a4
+40
+bd
+70
+78
+5d
+11
+87
+1b
+73
+d3
+8f
+62
+96
+61
+5b
+e9
+08
+4c
+7c
+41
+cc
+d5
+bf
+d0
+fa
+6a
+ad
+3d
+f9
+68
+56
+21
+0e
+ae
+dc
+cd
+b6
+20
+d9
+29
+4a
+4c
+96
+42
+14
+95
+9c
+e5
+46
+e4
+3e
+e4
+c3
+f8
+b9
+bb
+2a
+a8
+c5
+74
+30
+26
+6b
+33
+aa
+2f
+6b
+7c
+8c
+37
+ec
+49
+9b
+03
+69
+b9
+31
+54
+6d
+ce
+9a
+79
+e8
+ca
+f3
+1b
+e6
+d9
+8d
+95
+cc
+e8
+87
+57
+7d
+ec
+88
+c6
+a0
+78
+f3
+9c
+7b
+c1
+1c
+ac
+5f
+41
+51
+a3
+52
+fc
+12
+7a
+dc
+b4
+8e
+7a
+7e
+8b
+83
+d3
+88
+0f
+1a
+06
+66
+5a
+7a
+f9
+41
+e8
+9c
+d8
+ea
+9d
+0a
+61
+f0
+81
+cb
+cc
+fa
+77
+a6
+3f
+ad
+91
+af
+fa
+4b
+6f
+b2
+ab
+6e
+ee
+e8
+e7
+35
+2e
+73
+fd
+c3
+36
+f8
+3b
+1d
+9e
+85
+bd
+ae
+58
+e8
+53
+5b
+fb
+90
+4c
+6a
+54
+18
+e3
+1a
+d0
+4d
+7f
+a5
+ad
+da
+98
+5d
+6c
+e7
+c1
+84
+6e
+c9
+00
+6d
+b5
+2f
+ec
+77
+c9
+78
+c1
+70
+86
+e6
+ca
+1a
+55
+f7
+bd
+73
+1f
+41
+bc
+27
+32
+15
+fa
+a0
+6b
+ba
+63
+68
+e5
+8d
+20
+2b
+ff
+53
+8d
+05
+23
+7f
+42
+18
+63
+34
+f7
+5d
+25
+b9
+c0
+dc
+38
+b3
+b2
+4a
+0c
+3f
+23
+7c
+0d
+14
+2c
+59
+69
+33
+3f
+b9
+a2
+4a
+99
+67
+e1
+0e
+15
+82
+c6
+d0
+3d
+a6
+c5
+91
+25
+f2
+cd
+0f
+4a
+e7
+d2
+43
+e8
+51
+d8
+f4
+4d
+18
+00
+87
+0d
+d0
+15
+c7
+fb
+48
+aa
+d3
+6d
+6c
+16
+02
+f9
+9b
+9a
+45
+46
+a6
+f0
+1b
+a7
+8c
+1d
+b8
+1c
+1b
+dc
+0e
+00
+a5
+1a
+d7
+c9
+a1
+cd
+be
+46
+51
+f4
+70
+d2
+a9
+04
+7c
+8e
+c3
+b9
+b9
+eb
+1a
+94
+58
+1b
+ce
+c0
+7d
+5e
+40
+a4
+35
+4d
+3c
+d5
+7c
+93
+43
+30
+34
+49
+00
+49
+f9
+f9
+4d
+79
+57
+fb
+29
+e8
+22
+ad
+a5
+a5
+7c
+ac
+0c
+0e
+c6
+5c
+8d
+0f
+9a
+c3
+a3
+06
+0e
+19
+73
+9e
+34
+40
+8b
+e3
+6d
+a3
+87
+fb
+52
+81
+c1
+c3
+12
+e2
+50
+c3
+fc
+78
+8f
+b9
+97
+9c
+a6
+81
+03
+d6
+b9
+ce
+15
+55
+e7
+b2
+98
+ff
+e7
+bc
+05
+b6
+14
+8a
+e6
+9f
+ec
+04
+da
+56
+ca
+c0
+98
+9c
+98
+57
+8a
+e9
+d0
+9a
+62
+8d
+8f
+36
+c2
+95
+ca
+b8
+f7
+99
+c3
+17
+88
+97
+ab
+40
+00
+b9
+22
+cd
+85
+00
+36
+32
+03
+90
+b2
+66
+10
+2b
+68
+0f
+ee
+66
+18
+90
+7a
+28
+e7
+57
+f4
+a6
+07
+e3
+7c
+7a
+2a
+30
+d8
+b1
+9c
+9c
+55
+6a
+d1
+e1
+6c
+62
+ba
+1a
+66
+89
+56
+93
+21
+4b
+d0
+d3
+0c
+e3
+4e
+96
+68
+3e
+c2
+5e
+70
+06
+e5
+0a
+f0
+c0
+f4
+46
+2a
+18
+ed
+e0
+97
+09
+a3
+5c
+c6
+c6
+58
+04
+a9
+0b
+2b
+67
+d5
+3f
+ca
+01
+8a
+60
+75
+95
+e2
+1c
+83
+18
+f6
+58
+33
+92
+5b
+c8
+f2
+a8
+8e
+ae
+c7
+33
+b6
+44
+20
+66
+6b
+d4
+f7
+1b
+5b
+e6
+d1
+02
+52
+43
+ae
+71
+64
+05
+f6
+0e
+a8
+9d
+45
+5d
+e6
+24
+e1
+23
+6a
+c8
+4a
+82
+bc
+fb
+9a
+08
+ec
+66
+70
+4a
+5f
+4b
+e9
+c8
+35
+d0
+f6
+c8
+7d
+63
+91
+f5
+3e
+08
+d7
+48
+84
+48
+ee
+13
+c3
+ff
+57
+a9
+f9
+9d
+44
+25
+61
+0b
+e5
+a3
+5b
+3e
+06
+eb
+ee
+9e
+6e
+ff
+ae
+a6
+d7
+c4
+11
+24
+c5
+4e
+b5
+54
+12
+0c
+96
+ad
+91
+6d
+11
+53
+ce
+0b
+47
+8b
+94
+34
+2d
+8e
+0c
+ca
+d1
+7a
+f9
+7c
+39
+7a
+bd
+68
+9d
+b4
+5f
+65
+07
+16
+3f
+55
+0e
+b4
+d4
+d3
+09
+ed
+37
+df
+53
+d1
+40
+d3
+3d
+a0
+55
+08
+55
+e7
+c7
+f9
+f0
+dd
+00
+42
+7e
+66
+c1
+19
+c4
+60
+aa
+86
+4b
+79
+2f
+09
+45
+d6
+ef
+43
+70
+b9
+4e
+67
+3e
+25
+81
+c0
+e9
+15
+d2
+f3
+60
+77
+c3
+b1
+e1
+82
+d6
+07
+a6
+28
+fb
+8e
+78
+4b
+b5
+92
+af
+78
+6a
+e9
+d2
+f6
+9b
+94
+23
+ac
+8e
+eb
+02
+10
+02
+b4
+51
+81
+c6
+a5
+e1
+78
+d5
+e9
+9a
+17
+01
+e0
+cf
+93
+0d
+34
+bf
+6d
+f4
+61
+85
+27
+cf
+e9
+62
+0d
+dc
+dd
+f2
+5f
+57
+a9
+3d
+b9
+5f
+e4
+a5
+ea
+7a
+d6
+fa
+da
+dd
+d4
+90
+69
+e2
+07
+db
+e8
+5b
+d2
+c6
+e5
+ad
+df
+65
+8b
+a6
+05
+43
+60
+c7
+82
+c3
+22
+f2
+6d
+7a
+54
+90
+0d
+48
+fc
+0e
+ac
+66
+7e
+99
+19
+22
+30
+6b
+6f
+ec
+23
+3e
+a1
+73
+40
+c2
+2b
+b5
+47
+44
+f8
+d7
+65
+97
+92
+08
+ee
+4e
+c1
+bf
+a1
+d3
+a2
+15
+fe
+7f
+c4
+14
+78
+fa
+c1
+c3
+6f
+18
+36
+6a
+ed
+8a
+28
+c1
+95
+94
+e0
+3a
+54
+25
+75
+4e
+39
+80
+88
+93
+72
+3a
+1e
+f5
+d8
+73
+38
+d7
+d7
+fe
+11
+2a
+ec
+30
+87
+e7
+cb
+f6
+c0
+ec
+8d
+76
+22
+eb
+ea
+8d
+07
+30
+3c
+14
+78
+13
+18
+61
+3e
+03
+aa
+86
+9f
+2c
+82
+86
+97
+bd
+df
+bf
+58
+a8
+bc
+14
+cd
+7b
+e3
+e6
+ea
+3e
+22
+d6
+57
+83
+79
+02
+5a
+b5
+9c
+32
+b1
+c5
+94
+80
+79
+29
+45
+85
+5d
+f5
+1e
+e8
+26
+f3
+44
+ef
+c4
+44
+c8
+d4
+9b
+6f
+04
+7e
+ef
+00
+7e
+4c
+21
+12
+ea
+45
+06
+a5
+84
+2e
+a0
+e8
+24
+12
+3f
+4c
+5a
+6b
+ac
+f3
+c8
+e1
+8f
+a8
+26
+6d
+76
+46
+a0
+28
+3f
+db
+57
+39
+eb
+62
+8a
+82
+67
+1c
+71
+5b
+c7
+bc
+10
+ee
+53
+be
+26
+03
+58
+5a
+93
+43
+8a
+51
+e7
+26
+44
+ec
+18
+3a
+54
+8b
+af
+60
+7f
+d4
+8d
+d3
+80
+5d
+05
+0a
+d2
+b8
+3c
+f9
+f1
+93
+0d
+70
+bc
+9b
+e3
+09
+00
+cc
+ec
+d0
+ba
+70
+7d
+76
+5f
+73
+a2
+02
+ac
+69
+2c
+46
+04
+7d
+0e
+37
+cc
+0a
+96
+ce
+4a
+cd
+41
+45
+35
+34
+10
+9f
+ed
+c8
+09
+13
+a9
+d1
+b3
+02
+2e
+6e
+05
+b0
+e2
+40
+b8
+b5
+fc
+76
+47
+be
+74
+d3
+4a
+a4
+45
+ca
+a6
+3e
+83
+d4
+e4
+bd
+cb
+49
+9e
+87
+d2
+2a
+a0
+66
+5f
+24
+4f
+21
+d5
+ae
+0a
+72
+19
+9f
+a7
+50
+95
+8c
+33
+5e
+61
+6f
+b5
+c1
+bf
+cf
+70
+60
+10
+cd
+91
+c2
+da
+6e
+44
+8f
+b3
+36
+69
+6f
+41
+32
+1a
+ad
+1b
+f2
+b0
+63
+cd
+0f
+8c
+1c
+f1
+da
+13
+5b
+6d
+8a
+42
+7c
+f9
+1a
+49
+0c
+13
+b8
+c0
+ea
+00
+68
+ad
+0e
+6b
+bf
+e0
+da
+fd
+57
+f5
+41
+bc
+f5
+a0
+ea
+55
+52
+37
+55
+aa
+0c
+63
+ee
+67
+8a
+64
+27
+37
+ba
+a8
+c4
+bd
+fc
+19
+71
+f2
+54
+fd
+98
+c2
+e5
+a0
+99
+72
+7e
+97
+75
+d2
+37
+06
+b4
+61
+22
+e4
+9e
+3d
+1d
+ec
+22
+12
+7b
+ea
+bd
+cc
+7c
+93
+cd
+74
+a3
+48
+f8
+da
+fe
+37
+c2
+31
+25
+c7
+9f
+e8
+1d
+b0
+b9
+6c
+cc
+17
+93
+6b
+88
+28
+5d
+9b
+e0
+43
+6e
+56
+61
+c2
+f2
+1f
+8f
+b7
+f2
+5d
+4d
+c3
+19
+5a
+01
+d0
+0b
+50
+12
+41
+36
+f6
+65
+50
+52
+66
+65
+fb
+8b
+94
+ed
+67
+29
+36
+c5
+5e
+fd
+b2
+30
+fc
+67
+53
+bc
+d0
+82
+a5
+b7
+48
+f7
+af
+26
+a3
+53
+da
+a7
+36
+ff
+9e
+a5
+ab
+2c
+30
+8f
+77
+a2
+69
+95
+7b
+8c
+90
+42
+19
+ac
+3c
+5a
+d6
+f0
+3c
+ac
+52
+e2
+4f
+7d
+63
+23
+ec
+b3
+d1
+2f
+0d
+53
+96
+e8
+d0
+d2
+d6
+80
+0e
+6f
+0c
+5e
+17
+23
+07
+af
+3b
+bd
+4c
+dc
+38
+db
+b2
+ea
+31
+07
+ed
+f0
+27
+99
+ce
+73
+94
+42
+c8
+dd
+4c
+a4
+f4
+c7
+2a
+31
+81
+30
+a9
+8f
+cf
+ee
+f8
+65
+d8
+38
+75
+d9
+46
+5e
+b7
+57
+71
+59
+c1
+9b
+c7
+36
+04
+1d
+fe
+3c
+28
+65
+c0
+9e
+11
+f3
+0e
+02
+80
+18
+3f
+93
+63
+c9
+6b
+af
+f5
+db
+cb
+23
+01
+c6
+62
+67
+ba
+6e
+66
+54
+9f
+70
+47
+ac
+39
+3b
+f8
+0d
+18
+b5
+3b
+89
+a0
+20
+7c
+8f
+e2
+51
+16
+73
+78
+60
+c9
+50
+e1
+02
+a1
+1b
+27
+ec
+f0
+44
+92
+17
+cf
+64
+78
+c9
+fa
+b8
+c2
+07
+3f
+83
+4e
+75
+b6
+07
+42
+8d
+18
+b3
+e5
+30
+4f
+9f
+98
+b0
+73
+f2
+94
+e4
+72
+45
+9e
+35
+2a
+85
+6c
+f8
+ac
+9c
+6f
+5b
+7d
+61
+c5
+e4
+ec
+fa
+8c
+27
+0c
+9c
+c5
+ac
+a6
+44
+9f
+51
+8d
+73
+cf
+74
+d1
+2c
+8b
+7d
+d9
+8d
+f4
+f9
+4c
+dd
+58
+f6
+85
+ef
+d7
+e5
+f5
+06
+26
+02
+70
+9e
+9f
+b4
+be
+34
+32
+75
+fa
+03
+c0
+ee
+1b
+90
+91
+89
+6e
+f7
+30
+1f
+bc
+be
+12
+1c
+3a
+8d
+a6
+a0
+72
+97
+79
+cd
+66
+07
+09
+be
+61
+d3
+73
+f1
+32
+a6
+52
+0a
+a8
+d1
+a2
+f1
+6e
+a8
+a7
+ff
+54
+55
+67
+87
+70
+c7
+95
+09
+e8
+cb
+c8
+47
+35
+a9
+e2
+63
+ee
+e9
+b2
+3b
+6a
+3a
+c9
+8b
+d6
+9a
+5c
+bc
+35
+85
+6d
+88
+87
+0c
+bd
+8c
+56
+92
+bf
+d9
+a1
+63
+d1
+46
+46
+55
+22
+28
+26
+c8
+f6
+6f
+0a
+cf
+5f
+52
+70
+b5
+37
+ac
+47
+96
+b8
+a0
+e4
+a3
+c9
+55
+3b
+81
+ee
+56
+b1
+40
+5c
+b1
+ac
+fb
+1e
+43
+db
+a8
+8d
+7a
+fb
+fa
+a9
+b6
+52
+69
+4c
+81
+f5
+fc
+c0
+96
+af
+1a
+78
+0f
+a5
+e4
+27
+97
+09
+74
+59
+97
+98
+58
+16
+1e
+00
+90
+38
+6a
+f5
+22
+b5
+fb
+8c
+f1
+c2
+25
+15
+6e
+56
+05
+10
+74
+19
+77
+d5
+f5
+b3
+cc
+7f
+c4
+96
+db
+ce
+a1
+0a
+50
+af
+2f
+3d
+9a
+18
+52
+81
+4f
+1f
+9a
+b3
+ba
+03
+90
+d9
+64
+d9
+15
+b1
+34
+9f
+72
+c8
+eb
+77
+ef
+2a
+36
+27
+58
+dd
+5f
+88
+33
+04
+bc
+4d
+ac
+a2
+ae
+c3
+b4
+e2
+1b
+fc
+b6
+6b
+fe
+d9
+9b
+b9
+ec
+e8
+37
+bd
+93
+4d
+9f
+ff
+da
+0f
+05
+84
+31
+b8
+d4
+db
+20
+0e
+6b
+d6
+c1
+95
+e8
+38
+53
+5a
+08
+6d
+db
+7a
+6b
+0d
+c8
+e0
+a4
+ac
+b0
+48
+c1
+23
+d4
+3c
+71
+6b
+0c
+64
+d7
+a5
+47
+6b
+25
+f1
+cc
+ee
+72
+41
+b8
+02
+c2
+a5
+18
+94
+3f
+6a
+1e
+d8
+bd
+2e
+36
+1f
+c9
+44
+76
+bd
+bf
+a5
+c4
+3d
+0d
+f6
+f7
+b1
+d6
+d6
+86
+ac
+9e
+be
+28
+41
+d3
+5b
+7c
+53
+da
+ca
+bd
+94
+60
+9d
+20
+e9
+b0
+94
+6a
+af
+68
+7d
+7b
+20
+14
+f7
+22
+61
+b7
+04
+f8
+70
+17
+0a
+7a
+44
+8b
+ff
+f7
+fb
+53
+50
+75
+0c
+59
+e7
+b4
+a5
+e9
+de
+d4
+93
+8c
+c4
+d5
+9e
+2f
+53
+ec
+11
+7e
+2e
+34
+c2
+b7
+aa
+57
+b2
+0e
+3a
+06
+c0
+9b
+9c
+ea
+75
+19
+64
+4a
+4e
+10
+2d
+04
+54
+58
+be
+25
+c1
+cb
+7f
+2d
+31
+d6
+f2
+58
+8c
+4b
+fa
+82
+82
+f2
+61
+9d
+ec
+6f
+12
+ca
+58
+09
+ac
+74
+fc
+45
+54
+fc
+1c
+2f
+2d
+04
+21
+cf
+2b
+e9
+0f
+01
+67
+8e
+98
+38
+ff
+83
+f3
+37
+a2
+7d
+0e
+46
+11
+c3
+cf
+8f
+d5
+07
+09
+51
+4b
+fa
+3f
+ce
+bb
+64
+24
+24
+ca
+b9
+de
+05
+7d
+87
+54
+4e
+7d
+4a
+e9
+48
+56
+66
+5c
+a7
+dd
+50
+55
+2b
+d6
+dc
+6d
+21
+37
+78
+ab
+83
+23
+0b
+a3
+cd
+94
+95
+e1
+55
+11
+45
+1c
+18
+f3
+86
+3c
+ac
+20
+f9
+f2
+69
+a6
+6c
+3d
+7b
+3d
+13
+00
+ad
+5f
+f3
+39
+ef
+57
+21
+90
+01
+2c
+fd
+47
+8f
+9a
+3e
+f2
+0f
+79
+33
+e0
+63
+3a
+af
+39
+dc
+97
+46
+a2
+1c
+85
+4f
+dd
+bd
+37
+74
+13
+18
+a3
+74
+7e
+15
+44
+c9
+f7
+d7
+92
+d0
+59
+07
+a3
+9e
+c0
+67
+d9
+03
+4e
+69
+b8
+1a
+9d
+e5
+38
+88
+61
+30
+7a
+96
+2e
+53
+57
+a2
+53
+03
+1b
+1c
+17
+72
+c3
+02
+35
+8a
+9e
+92
+fd
+5e
+24
+37
+62
+88
+e7
+21
+bd
+e0
+e6
+87
+48
+a6
+b1
+ce
+28
+14
+3c
+2d
+9a
+d4
+06
+7c
+cb
+c4
+1f
+bd
+b6
+37
+f4
+6e
+0f
+84
+dd
+3e
+21
+ee
+3b
+18
+32
+6e
+7c
+3f
+f5
+81
+66
+71
+81
+66
+39
+90
+e7
+8c
+e7
+69
+a1
+b2
+33
+e7
+8b
+4c
+83
+8e
+28
+08
+52
+69
+de
+fe
+2f
+df
+9f
+33
+93
+f6
+43
+2c
+ff
+fe
+e8
+ff
+59
+41
+8c
+ca
+b8
+58
+cc
+de
+85
+d9
+ab
+08
+7f
+ba
+d2
+bf
+00
+49
+3c
+4d
+5d
+13
+a7
+42
+47
+da
+c9
+16
+9e
+f3
+3a
+91
+79
+b2
+d3
+45
+14
+1d
+c9
+8e
+63
+bb
+d8
+bf
+1f
+32
+f0
+82
+47
+27
+f4
+ed
+1e
+2a
+c1
+b8
+1b
+4d
+fa
+8e
+1f
+4a
+86
+71
+92
+e4
+0a
+6f
+1d
+54
+1a
+05
+17
+31
+ca
+96
+6b
+6f
+0c
+ef
+ad
+c7
+d4
+5a
+3c
+a5
+ba
+1d
+4c
+43
+dc
+ca
+89
+79
+2e
+53
+d4
+89
+84
+38
+9f
+15
+44
+3d
+69
+fd
+d1
+f6
+33
+5d
+a4
+10
+0a
+fc
+ea
+54
+d8
+7d
+3c
+d6
+bf
+b7
+0f
+85
+33
+ba
+70
+f5
+bc
+c8
+39
+8b
+04
+9f
+0d
+c8
+7a
+a2
+fe
+09
+5d
+e5
+9b
+be
+5c
+05
+9b
+59
+5b
+97
+1f
+72
+c3
+a1
+6c
+60
+d9
+51
+2f
+e4
+8c
+eb
+6a
+5c
+70
+20
+6b
+81
+4c
+fd
+79
+b0
+d4
+e9
+4e
+20
+5b
+c0
+85
+a5
+6c
+d4
+1a
+61
+19
+b5
+81
+5a
+4c
+3d
+6b
+01
+c1
+ed
+0c
+26
+73
+27
+07
+fd
+72
+ff
+32
+45
+43
+b8
+d2
+57
+96
+ed
+7f
+97
+3f
+67
+b8
+18
+fc
+f7
+91
+6a
+0b
+4b
+d8
+72
+80
+d5
+e9
+2b
+8b
+1d
+76
+f6
+29
+05
+c3
+16
+f3
+d3
+6a
+9c
+a1
+d8
+f2
+0a
+34
+b5
+15
+5a
+f9
+a8
+9a
+18
+75
+b6
+fc
+94
+ef
+8f
+d2
+b3
+93
+d1
+7b
+23
+d4
+9f
+09
+fd
+c9
+4f
+eb
+c3
+44
+1a
+fa
+20
+34
+68
+f2
+f5
+77
+3c
+24
+49
+db
+40
+ad
+eb
+2b
+95
+57
+3f
+09
+bf
+d9
+47
+be
+1d
+e1
+d2
+5b
+e8
+0c
+ae
+9b
+88
+76
+9c
+ca
+bb
+9d
+1a
+b1
+de
+8b
+99
+24
+33
+93
+26
+1f
+78
+a1
+68
+80
+7e
+01
+3f
+4d
+d0
+74
+10
+fd
+06
+fb
+e9
+0a
+ca
+e3
+0a
+43
+ef
+b0
+e9
+e9
+bf
+8d
+58
+ad
+7d
+39
+7f
+50
+c1
+3b
+96
+fa
+d4
+21
+7c
+90
+e6
+55
+2b
+f2
+ff
+6e
+62
+5c
+24
+6f
+c0
+ef
+aa
+42
+3a
+c1
+f6
+a2
+be
+4b
+90
+3b
+d7
+c8
+31
+fd
+a8
+0d
+6d
+a4
+37
+97
+3a
+e6
+ef
+5c
+21
+13
+dc
+52
+93
+00
+1b
+9b
+fa
+10
+0b
+e6
+be
+f9
+a5
+51
+58
+37
+ef
+5d
+e3
+e1
+7a
+1d
+3b
+e7
+aa
+26
+7d
+4d
+a7
+8a
+3d
+dd
+d5
+62
+35
+d9
+f4
+d4
+de
+07
+2e
+ef
+99
+a6
+4a
+04
+e5
+d6
+e4
+19
+2c
+30
+f0
+35
+c1
+09
+98
+dc
+5e
+24
+32
+03
+39
+18
+80
+de
+dd
+0b
+11
+28
+2e
+e7
+fe
+5c
+9a
+1a
+a5
+cf
+06
+39
+c7
+14
+84
+9b
+1e
+6d
+11
+4f
+22
+23
+38
+b9
+81
+7a
+d8
+37
+c9
+76
+d1
+38
+db
+b2
+fb
+cb
+3f
+a1
+a2
+ec
+41
+ef
+d9
+03
+fb
+22
+53
+c2
+5d
+1d
+06
+35
+e3
+07
+12
+38
+36
+72
+da
+75
+22
+e1
+dd
+19
+15
+bd
+84
+e4
+40
+bb
+98
+60
+b5
+82
+4d
+e8
+33
+b4
+ec
+86
+45
+80
+90
+82
+64
+c5
+1c
+6d
+83
+64
+23
+07
+99
+18
+e3
+79
+c5
+53
+cf
+d5
+26
+fb
+6a
+52
+99
+ed
+16
+0e
+37
+ef
+dd
+aa
+5f
+27
+0a
+3e
+9f
+99
+55
+56
+2d
+e3
+4e
+a5
+c5
+c2
+3e
+01
+2e
+2d
+2e
+9c
+5d
+a2
+1f
+a3
+6b
+7f
+6d
+7a
+e4
+dd
+a8
+3a
+53
+50
+f5
+54
+4c
+cb
+cf
+02
+50
+57
+e3
+7d
+e1
+a1
+6b
+a6
+f4
+9b
+52
+95
+a1
+19
+8f
+2c
+2a
+22
+88
+e2
+18
+2b
+97
+69
+4c
+3f
+33
+67
+78
+22
+f5
+e2
+be
+84
+0e
+9e
+28
+d5
+6c
+3d
+bd
+73
+d6
+8d
+26
+ac
+8d
+75
+8e
+a6
+21
+b6
+94
+02
+5c
+55
+eb
+a4
+58
+61
+08
+85
+b5
+75
+4f
+2c
+9f
+20
+35
+6f
+f2
+4e
+07
+4d
+bd
+8e
+53
+a4
+68
+13
+61
+ee
+d2
+75
+a7
+22
+b2
+1b
+ad
+30
+7d
+5d
+9b
+1c
+85
+9d
+87
+2d
+ff
+18
+bd
+1b
+bb
+67
+a0
+e8
+bd
+89
+b2
+6a
+8f
+03
+7e
+d0
+ab
+35
+94
+56
+c4
+17
+3b
+d0
+f7
+3e
+92
+c8
+62
+54
+9a
+03
+3e
+dc
+3a
+84
+b5
+5a
+ee
+e9
+ae
+aa
+4f
+db
+f8
+ff
+20
+fa
+69
+84
+ec
+b9
+cb
+07
+4b
+b2
+e5
+83
+d5
+f5
+f6
+12
+4b
+5f
+ec
+e1
+cb
+28
+ce
+34
+10
+42
+f8
+ab
+e6
+b8
+16
+bc
+57
+6a
+01
+ca
+4f
+bb
+78
+d4
+b8
+b5
+13
+03
+82
+66
+c3
+03
+d8
+dc
+1f
+34
+6f
+93
+f1
+39
+9b
+0c
+ba
+ba
+1c
+4f
+09
+73
+40
+9c
+a2
+f8
+6f
+0a
+53
+58
+57
+9d
+5b
+98
+a2
+4a
+ae
+ec
+55
+f4
+d1
+96
+41
+2c
+9d
+c1
+70
+25
+9a
+8c
+f8
+e5
+fc
+45
+f9
+5b
+bb
+79
+84
+82
+bf
+b2
+be
+82
+00
+81
+ca
+a9
+03
+38
+fd
+7d
+c3
+ec
+fc
+64
+42
+b1
+a7
+3e
+fe
+19
+e0
+63
+57
+c9
+e3
+ac
+35
+50
+83
+b0
+66
+0a
+50
+8c
+60
+9c
+6d
+00
+16
+bb
+40
+2c
+2b
+1d
+87
+93
+2b
+cd
+72
+61
+14
+f1
+0f
+b0
+7c
+db
+bf
+3d
+13
+de
+83
+15
+ab
+36
+e0
+97
+7f
+c2
+7f
+8d
+d7
+90
+6d
+a5
+cc
+71
+3d
+73
+a2
+0b
+40
+f9
+2c
+d6
+ba
+8b
+78
+b2
+51
+a3
+7c
+44
+d7
+40
+d0
+89
+8a
+58
+bd
+22
+5b
+7c
+d2
+92
+cc
+dc
+e0
+1b
+4e
+93
+5c
+f5
+93
+a4
+4f
+1e
+b8
+ff
+aa
+55
+40
+00
+00
+40
+01
+00
+00
+04
+20
+01
+00
+c0
+19
+5a
+c2
+52
+00
+04
+00
+10
+04
+00
+00
+00
+08
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+20
+04
+00
+00
+00
+00
+00
+08
+00
+aa
+55
+08
+00
+8e
+48
+00
+69
+05
+01
+00
+03
+0f
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+94
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+02
+00
+e6
+4a
+05
+01
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+0d
+00
+5f
+47
+0c
+09
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+0e
+00
+6c
+43
+1f
+0c
+09
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+0c
+00
+6d
+42
+0b
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+01
+00
+b1
+48
+01
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+64
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+64
+aa
+55
+01
+00
+53
+46
+64
+aa
+55
+02
+00
+4f
+46
+58
+02
+aa
+55
+02
+00
+1e
+47
+70
+17
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+02
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+01
+7f
+1f
+01
+7f
+1e
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+00
+aa
+55
+06
+00
+95
+4a
+ff
+ff
+ff
+ff
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+03
+02
+aa
+55
+02
+00
+f4
+43
+10
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+01
+00
+14
+49
+81
+aa
+55
+01
+00
+13
+49
+ff
+aa
+55
+02
+00
+16
+49
+81
+80
+aa
+55
+01
+00
+15
+49
+ff
+aa
+55
+04
+00
+18
+49
+81
+81
+ff
+ff
+aa
+55
+03
+00
+10
+49
+0b
+0a
+ff
+aa
+55
+01
+00
+0f
+49
+0c
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c1
+85
+84
+83
+82
+81
+80
+c7
+c6
+c4
+c3
+aa
+55
+1d
+00
+1f
+49
+06
+07
+08
+15
+14
+13
+12
+11
+84
+10
+0f
+0e
+0d
+c2
+c3
+c4
+c7
+80
+81
+85
+c6
+c5
+82
+83
+ff
+ff
+ff
+ff
+ff
+aa
+55
+88
+00
+c7
+49
+00
+00
+00
+00
+e6
+00
+7f
+3e
+14
+2b
+04
+29
+1d
+00
+35
+1e
+1a
+39
+16
+00
+1b
+00
+3a
+1f
+08
+3c
+07
+3d
+06
+00
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+00
+2e
+25
+12
+40
+0f
+00
+37
+00
+41
+26
+13
+2f
+33
+34
+00
+38
+2d
+27
+00
+00
+e0
+e3
+00
+e7
+00
+45
+00
+2a
+31
+00
+28
+00
+42
+43
+00
+00
+00
+2c
+44
+51
+4c
+00
+00
+00
+00
+00
+00
+4f
+00
+00
+00
+00
+00
+52
+00
+50
+00
+00
+00
+e1
+e5
+00
+00
+00
+00
+00
+00
+e2
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+0f
+00
+84
+4a
+00
+af
+3a
+3b
+3c
+3d
+ad
+ab
+ec
+ee
+ed
+eb
+e9
+ea
+a9
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+06
+03
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+d5
+7c
+24
+a9
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+64
+32
Index: output/memmap.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/memmap.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/memmap.format	(working copy)
@@ -0,0 +1,2034 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_current_context
+0x0007 mem_le_ch_mapped
+0x0008 mem_last_freq
+0x0009 mem_rssi
+0x000a mem_context_ptr
+0x000c mem_rx_window
+0x000e mem_lpm_adjust
+0x000f mem_sync_clke
+0x0015 mem_lpm_current_mult
+0x0016 mem_gpio_wakeup_cfg
+0x0022 mem_clkn_bt
+0x0026 mem_clke_bt
+0x002a mem_dpll_clkn
+0x002e mem_slot_offset
+0x0030 mem_loadcode_times
+0x0031 mem_select_list_item
+0x0032 mem_temp_reconn_record
+0x0032 mem_record_bt_mode
+0x0033 mem_list_item_ptr
+0x0035 mem_rssi_hex
+0x0036 mem_param_tx_setup
+0x0038 mem_param_rf_setup
+0x003a mem_param_conn_access
+0x003c mem_param_clke_cal
+0x003e mem_param_pll_setup
+0x0040 mem_param_rx_setup
+0x0042 mem_param_dpll_start_delay
+0x0044 mem_param_rt_rthalfslot
+0x0046 mem_param_clke_cal_le_1m
+0x0048 mem_param_clke_cal_le_2m
+0x004a mem_param_clke_cal_le_coded
+0x004c mem_le_rxbuf
+0x0150 mem_le_mic
+0x0154 mem_le_peer_mic
+0x0158 mem_le_mrand
+0x0168 mem_le_state
+0x0169 mem_le_mode
+0x016a mem_le_tsniff
+0x016c mem_le_anchor
+0x0170 mem_le_clk_offset
+0x0176 mem_le_receive_window
+0x0178 mem_le_plap
+0x017e mem_le_conn_handle
+0x017f mem_le_arq
+0x0180 mem_le_ch
+0x0181 mem_le_hop
+0x0182 mem_le_event_count
+0x0184 mem_le_supervision_timer
+0x0188 mem_le_instant
+0x018a mem_le_channels
+0x018b mem_le_op
+0x018c mem_le_access
+0x0190 mem_le_crcinit
+0x0193 mem_le_window_size
+0x0194 mem_le_slave_latency
+0x0196 mem_le_superto
+0x0198 mem_le_channel_map
+0x019d mem_le_rx_phy
+0x019e mem_le_tx_phy
+0x019f mem_le_update_new_param
+0x01a8 mem_le_sk
+0x01b8 mem_le_peer_sca
+0x01b9 mem_le_err_code
+0x01ba mem_le_ll_pairing_fail_reason
+0x01bb mem_ucode_status
+0x01bc mem_spid_tbuf
+0x01bd mem_iicd_tbuf
+0x01bd mem_addr_hi
+0x01be mem_addr_mi
+0x01bf mem_addr_lo
+0x01c0 mem_iicd_addr
+0x01c1 mem_spid_rbuf
+0x01c5 mem_ucode_buf
+0x01c7 mem_ucode_len
+0x01c9 mem_sched_addr
+0x01cb mem_ucode_keybuf
+0x01db mem_otp_temp
+0x01fb mem_app_evt_timer_count
+0x01fc mem_input_store
+0x020c mem_ec_loopc
+0x020e mem_aes_cmac_data_length
+0x020f mem_dat
+0x026f mem_ax_256//32 bytes
+0x028f mem_ay_256// 32 bytes
+0x02af mem_az_256// 32 bytes
+0x02cf mem_bx_256// 32 bytes
+0x02ef mem_by_256// 31 bytes
+0x030f mem_bz_256//32 bytes
+0x030f mem_tmp1
+0x030f memahbak
+0x0327 mem_tmp5
+0x032f mem_cx_256//32 bytes
+0x034f mem_cy_256// 32 bytes
+0x036e mem_cy5_256// 1 byte
+0x036f mem_cz_256// 32 bytes
+0x038f mem_k_256//32 bytes
+0x03af mem_tmp1_256//32 bytes
+0x03cf mem_tmp5_256
+0x03ef mem_tmp2_256
+0x040f mem_tmp3_256
+0x040f mem_t1_256
+0x042f mem_tmp0_256
+0x042f mem_t0_256
+0x044f mem_t2_256
+0x046f mem_t3_256
+0x048f mem_t7_256
+0x04af mem_p
+0x04c7 mem_a
+0x04df mem_b
+0x04f7 mem_gx
+0x050f mem_gy
+0x0527 memh0
+0x0547 mem_p_256
+0x0567 mem_a_256
+0x0587 mem_gx_256
+0x05a7 mem_gy_256
+0x05c7 mem_le_slat
+0x05d7 mem_sp_state_start
+0x05d7 mem_sp_dhkey_invalid
+0x05d8 mem_gkey
+0x05dc mem_sp_state_end
+0x05dc mem_le_pubkey_remote_x_256
+0x05fc mem_le_pubkey_remote_y_256
+0x061c mem_le_dhkey_256
+0x063c mem_sp_confirm_remote
+0x064c mem_ipc_skip_continue_proc
+0x064d mem_fifo_temp
+0x064e mem_pdatatemp
+0x0656 mem_temp//8 bytes
+0x065e mem_timeup// 4 bytes
+0x0662 mem_rega//4 bytes
+0x0666 mem_regb//4 bytes
+0x066a mem_regc//3 bytes
+0x066d mem_contr//2 bytes
+0x066f mem_contw//2 bytes
+0x0671 mem_contus
+0x0673 mem_contue
+0x0675 mem_contu
+0x0677 mem_queue
+0x0679 mem_loopcnt
+0x067b mem_saved_gpio_in
+0x067f mem_module_rx_error_data_buffer
+0x067f mem_le_adv_channel_map_temp
+0x067f mem_le_data_len_temp//1byte
+0x067f mem_event_cmd_response_content//2byte
+0x067f mem_le_prand//16byte
+0x067f mem_AES_CMAC_k//16 bytes
+0x067f mem_regext_index//1 bytes
+0x067f mem_temp_block0
+0x0680 mem_le_data_temp//15bytes
+0x0680 mem_temp_block1
+0x068f mem_le_tx_buf_temp//48byte
+0x068f mem_le_aes_128//16byte
+0x068f mem_regext//64 bytes
+0x068f mem_AES_CMAC_k1//16 bytes
+0x068f mem_temp_block2
+0x069f mem_AES_CMAC_k2//16 bytes
+0x069f mem_temp_block3
+0x06af mem_AES_CMAC_temp// 16 bytes
+0x06af mem_temp_block4
+0x06bf mem_AES_CMAC_M_last// 16 bytes
+0x06bf mem_module_uart_cmd
+0x06c0 mem_module_uart_opcode
+0x06c1 mem_module_uart_len
+0x06c2 mem_module_temp_nl_discard_packet
+0x06c3 mem_temp_block5
+0x06cf mem_le_mackey//16 bytes
+0x06cf mem_app_receive_temp
+0x06cf mem_key_value_temp
+0x06d1 mem_key_value
+0x06d3 mem_key_value_temp1
+0x06d4 mem_key_value_temp2
+0x06d5 mem_key_value_temp3
+0x06d6 mem_key_value_temp4
+0x06d7 mem_key_value_temp5
+0x06d8 mem_key_value_temp6
+0x06d9 mem_temp_block6
+0x06df mem_scale_ratio
+0x06e2 mem_xcnt
+0x06e5 mem_scale_ratio_temp
+0x06e7 mem_hci_opcode_ocf
+0x06e9 mem_hci_opcode_ogf
+0x06ea mem_hci_event_head_type
+0x06eb mem_hci_event_head_event_code
+0x06ec mem_hci_event_para_total_length
+0x06ed mem_hci_command_complete_num_hci_command_packet
+0x06ee mem_hci_command_complete_command_opcode
+0x06ee mem_hci_opcode
+0x06f0 mem_hci_command_complete_return_parameter
+0x06f0 mem_hci_command_complete_return_parameter_status
+0x06f1 mem_hci_command_complete_return_parameter_chip_id
+0x06e7 mem_module_le_rx_data_len
+0x06e9 mem_module_le_rx_data_address
+0x06eb mem_module_le_rx_data_handle
+0x06e7 mem_init_cnt
+0x06e9 mem_data_pre
+0x06eb mem_data_current
+0x06ed mem_data_sum
+0x06f0 mem_data_value
+0x06e7 mem_malloc_rec_start
+0x06e7 mem_rec_queue_ota_sptr
+0x06e9 mem_rec_queue_ota_eptr
+0x06eb mem_rec_queue_ota_rptr
+0x06ed mem_rec_queue_ota_wptr
+0x06ef mem_rec_queue_ota_buf//1280
+0x06ef mem_rec_voice_raw_start
+0x06ef mem_rec_voice_raw
+0x0a0e mem_rec_voice_raw_end
+0x0a0f mem_rec_voice_queue_count
+0x0a10 mem_rec_queue_buf
+0x0a24 mem_rec_adpcm
+0x0a88 mem_rec_nec_rx_start
+0x0b87 mem_rec_nec_rx_end
+0x0b88 mem_rec_nec_rx_store_start
+0x0c87 mem_rec_nec_rx_store_end
+0x0c88 mem_rec_ota_flash_buf_head
+0x0c8c mem_rec_ota_flash_buf//300
+0x0c8c mem_rec_nec_flash_write_head
+0x0c90 mem_rec_nec_rx_info
+0x0c90 mem_rec_nec_rx_len
+0x0c91 mem_rec_nec_rx_perid_freq
+0x0c93 mem_rec_nec_rx_data
+0x0d92 mem_rec_nec_rx_analysis_end
+0x0d93 mem_rec_nec_rx_count
+0x0d94 mem_rec_nec_timer
+0x0d95 mem_rec_nec_timeout
+0x0d96 mem_rec_nec_usercode
+0x0d98 mem_rec_nec_datacode
+0x0d99 mem_rec_nec_learn_key_num
+0x0d9a mem_rec_nec_learn_key_state
+0x0d9b mem_rec_nec_learn_enable_flag
+0x0d9c mem_rec_nec_learn_timeout
+0x0da0 mem_rec_nec_learn_state
+0x0da1 mem_rec_period_cal
+0x0db5 mem_rec_period_cal_ptr
+0x0db7 mem_rec_period_cal_count
+0x0db8 mem_rec_nec_period_array
+0x0dcc mem_rec_nec_store_sptr
+0x0dce mem_rec_nec_store_eptr
+0x0dd0 mem_rec_nec_store_wptr
+0x0dd2 mem_rec_nec_receive_data0
+0x0dd3 mem_rec_nec_receive_data1
+0x0dd4 mem_rec_nec_receive_data2
+0x0dd5 mem_rec_nec_receive_data
+0x0dd8 mem_rec_nec_data
+0x0dd9 mem_rec_nec_period
+0x0dda mem_rec_nec_duty
+0x0ddb mem_rec_nec_freq
+0x0ddc mem_rec_nec_carry_time
+0x0dde mem_rec_nec_learn_stime
+0x0de2 mem_rec_nec_learn_ntime
+0x0de6 mem_rec_nec_learn_outtime
+0x0dea mem_rec_nec_learn_succ
+0x0deb mem_rec_nec_learn_succ_ptr
+0x0ded mem_rec_nec_learn_send_flag
+0x0dee mem_rec_nec_led_state
+0x0def mem_rec_nec_led_blink_count
+0x0df0 mem_malloc_rec_end
+0x06e7 mem_le_test_sync
+0x06e9 mem_le_test_pcnt
+0x06eb mem_tst_pktcnt_crc
+0x06ed mem_tst_pktcnt_dmh
+0x06ef mem_tmp_buffer_head
+0x06f2 mem_tmp_buffer
+0x06e7 mem_usb_status
+0x06e9 mem_usb_fifo_empty
+0x06ea mem_usb_read_len
+0x06ec mem_usb_txbuf
+0x072d mem_usb_txbuf1
+0x0737 mem_usb_txbuf2
+0x0741 mem_usb_rxbuf
+0x0781 mem_usb_rxbuf_end
+0x0782 mem_bufptr
+0x0784 mem_remain
+0x0785 mem_hidreportdesc_kb
+0x0787 mem_hidreportdesc_m
+0x0789 mem_devicedesc
+0x079c mem_confdesc
+0x07d8 mem_string0
+0x07dd mem_string1
+0x07fb mem_string2
+0x0819 mem_string3
+0x0837 mem_cb_usb_config
+0x0839 mem_usb_tx_interval
+0x083a mem_usb_vid_pid
+0x0843 mem_usb_zero_packet
+0x0845 mem_usb_ones_packet
+0x0847 mem_usb_two_packet
+0x0849 mem_usb0_state
+0x084a mem_usb_offline_check_gpio
+0x084b mem_usb_clear_mem_start
+0x084b mem_usb_setup
+0x084b mem_usb_setup_bmRequestType
+0x084c mem_usb_setup_bRequest
+0x084d mem_usb_setup_bValue
+0x084e mem_usb_setup_bValueH
+0x084f mem_usb_setup_wIndex
+0x0851 mem_usb_setup_bLength
+0x0852 mem_usb_setup_bLengthH
+0x0853 mem_usb0_set_report_data
+0x0893 mem_usb0_get_report_data
+0x08d3 mem_usb_setup_bValue_temp
+0x08d5 mem_usb0_get_set_report
+0x08d6 mem_usb0_data_ready_report
+0x08d7 mem_usb_tx_win_enable
+0x08d8 mem_usb_tx_mac_enable
+0x08d9 mem_usb_idle_flag
+0x08da mem_usb_idle_rate
+0x08db mem_usb_get_protocol_flag
+0x08dc mem_usb_set_protocol_status
+0x08dd mem_usb_set_protocol_value
+0x08de mem_usb_state
+0x08df mem_usb_remote_wakeup
+0x08e0 mem_usb_clear_remote_wakeup
+0x08e1 mem_sdsystem_wakeup_flag
+0x08e2 mem_usb_ep0_stall_status
+0x08e3 mem_usb_ep1_stall_status
+0x08e4 mem_usb_ep2_stall_status
+0x08e5 mem_usb_ep3_stall_status
+0x08e6 mem_dsc_info_data_pointer
+0x08e8 mem_dsc_info_len
+0x08e9 mem_usb_ep1_data
+0x08ea mem_usb_ep2_data
+0x08eb mem_usb_tx_enable
+0x08ec mem_usb_device_enumeration_endflag
+0x08ed mem_usb_wakestate_onetime_flag
+0x08ee mem_usb_mac_wakeup_trig
+0x08ef mem_usb_set_high_addr_flag
+0x08f0 mem_usb_clear_halt
+0x08f1 mem_usb_mouse_data
+0x0901 mem_usb_kb_data
+0x0911 mem_usb_kb_n_key_rollvoer_data
+0x0921 mem_usb_kb_multikey
+0x0929 mem_usb_kb_system
+0x0931 mem_usb_test_cnt
+0x0933 mem_usb_test_kb
+0x093d mem_usb_clear_mem_end
+0x093d mem_usb_ccid_buf
+0x097d mem_dg_rssi_noise_buffer
+0x0a7d mem_dg_rssi_noise_dg_buffer
+0x0b7d mem_dg_rssi_noise_ms_buffer
+0x0c7d mem_dg_rssi_noise_kb_buffer
+
+0x019f mem_le_new_param
+0x019f mem_le_new_transmitwindowsize
+0x01a0 mem_le_new_transmitwindowoffset
+0x01a2 mem_le_new_conninterval
+0x01a4 mem_le_new_connslavelatency
+0x01a6 mem_le_new_connsupervisiontimeout
+0x019f mem_le_new_map
+0x019f mem_le_new_m2s_phy
+0x01a0 mem_le_new_s2m_phy
+0x004c mem_le_rxbuf_data_header
+0x004d mem_le_rxbuf_data_length
+0x004e mem_le_rxbuf_data_payload
+0x004c mem_le_rxbuf_data_ll_header
+0x004d mem_le_rxbuf_data_ll_length
+0x004e mem_le_rxbuf_data_ll_opcode
+0x004f mem_le_rxbuf_data_ll_control_data
+0x004c mem_le_rxbuf_adv_header
+0x004d mem_le_rxbuf_adv_length
+0x004e mem_le_rxbuf_adv_payload
+0x004c mem_le_rxbuf_adv_scan_req_header
+0x004d mem_le_rxbuf_adv_scan_req_length
+0x004e mem_le_rxbuf_adv_scan_req_scan_address
+0x0054 mem_le_rxbuf_adv_scan_req_adv_address
+0x004c mem_le_rxbuf_adv_connect_ind_header
+0x004d mem_le_rxbuf_adv_connect_ind_length
+0x004e mem_le_rxbuf_adv_connect_ind_init_address
+0x0054 mem_le_rxbuf_adv_connect_ind_adv_address
+0x005a mem_le_rxbuf_adv_connect_ind_access_address
+0x005e mem_le_rxbuf_adv_connect_ind_crc_init
+0x0061 mem_le_rxbuf_adv_connect_ind_win_size
+0x0062 mem_le_rxbuf_adv_connect_ind_win_offset
+0x0064 mem_le_rxbuf_adv_connect_ind_interval
+0x0066 mem_le_rxbuf_adv_connect_ind_latency
+0x0068 mem_le_rxbuf_adv_connect_ind_timeout
+0x006a mem_le_rxbuf_adv_connect_ind_channel_map
+0x006f mem_le_rxbuf_adv_connect_ind_hop_and_sca
+0x068f mem_le_search_handle_start
+0x0691 mem_le_search_handle_end
+0x0693 mem_le_att_offset
+0x0693 mem_le_search_att_type_length
+0x0694 mem_le_search_att_type
+0x06a4 mem_le_curr_att_len
+0x06a5 mem_le_cur_attlist_start_ptr
+0x06a7 mem_le_cur_handle_start
+0x06a9 mem_le_cur_handle_end
+0x06ab mem_le_cur_uuid_length
+0x06ac mem_le_cur_uuid
+0x06bc mem_le_cur_handle
+0x004c mem_le_rxbuf_data_att_header
+0x004d mem_le_rxbuf_data_att_length
+0x004e mem_le_rxbuf_data_att_l2cap_length
+0x0050 mem_le_rxbuf_data_att_cid
+0x0052 mem_le_rxbuf_data_att_opcode
+0x0053 mem_le_rxbuf_data_att_payload
+0x004c mem_le_rxbuf_data_continue_header
+0x004d mem_le_rxbuf_data_continue_length
+0x004e mem_le_rxbuf_data_continue_payload
+0x004c mem_le_rxbuf_data_att_write_header
+0x004d mem_le_rxbuf_data_att_write_length
+0x004e mem_le_rxbuf_data_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_att_write_cid
+0x0052 mem_le_rxbuf_data_att_write_opcode
+0x0053 mem_le_rxbuf_data_att_write_handle
+0x0055 mem_le_rxbuf_data_att_write_payload
+0x004c mem_le_rxbuf_data_prepare_att_write_header
+0x004d mem_le_rxbuf_data_prepare_att_write_length
+0x004e mem_le_rxbuf_data_prepare_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_prepare_att_write_cid
+0x0052 mem_le_rxbuf_data_prepare_att_write_opcode
+0x0053 mem_le_rxbuf_data_prepare_att_write_handle
+0x0055 mem_le_rxbuf_data_prepare_att_write_offset
+0x0057 mem_le_rxbuf_data_prepare_att_write_payload
+0x01db mem_otp_adc
+0x01e3 mem_otp_adc_ratio
+0x01e4 mem_otp_coordinate
+0x01eb mem_otp_core_ldo
+0x01ec mem_otp_verf_bg
+0x01ed mem_otp_charge_pump
+0x01ee mem_otp_dpll_ibais
+0x01ef mem_otp_temp1
+0x01f7 mem_otp_hv_sel
+0x01f8 mem_otp_ldo_vsel
+0x01f9 mem_otp_load_delay
+0x01fa mem_otp_load_check_sum
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4093 mem_current_amaddr
+0x4094 mem_lpm_mode
+0x4095 mem_last_clkn
+0x4099 mem_fcomp_div
+0x409a mem_rx_window_sniff
+0x409c mem_rf_init_ptr
+0x409e mem_rf_rccal
+0x409f mem_handle_num
+0x40a0 mem_chip_functions
+0x40a2 mem_lpm_wake_lock
+0x40a4 mem_lpm_interval
+0x40a6 mem_lpm_overhead
+0x40a7 mem_lpm_hibernate_switch
+0x40a8 mem_sniff_unint_lost
+0x40a9 mem_sleep_counter
+0x40ad mem_sleep_counter_all
+0x40b1 mem_sleep_clkn
+0x40b7 mem_sniff_rcv
+0x40ba mem_sniff_lost
+0x40bd mem_clks_per_lpo
+0x40c0 mem_lpm_mult
+0x40c1 mem_lpm_mult_timeout
+0x40c2 mem_lpm_mult_cnt
+0x40c3 mem_lpm_xtalcnt
+0x40c4 mem_lpm_buckcnt
+0x40c5 mem_lpm_ldocnt
+0x40c6 mem_lpm_isogate
+0x40c7 mem_lpm_isogate_stage2
+0x40c8 mem_lpm_isogate_final
+0x40c9 mem_lpm_ldo_sel
+0x40ca mem_lpm_sysctl
+0x40cb mem_lpm_hv_sel
+0x40cc mem_saved_gpio
+0x40e4 mem_saved_gsel
+0x40e7 mem_saved_mark
+0x40ef mem_saved_spidctrl
+0x40f0 mem_patch_ptr
+0x40f2 mem_patch_len
+0x40f4 mem_timers
+0x4114 mem_hci_cmd
+0x4115 mem_hci_conn_handle
+0x4116 mem_hci_plap
+0x4119 mem_hci_puap
+0x411a mem_hci_pnap
+0x411c mem_xtal_c_sel
+0x411d mem_ghpc_table
+0x4135 mem_aac_res_table
+0x4141 mem_tx_power
+0x4142 mem_modem_rssi
+0x4143 mem_gain_fix
+0x4144 mem_gain_table
+0x4147 mem_gain_second_agc_en
+0x4148 mem_system_clk
+0x4149 mem_rf_init_data
+0x415d mem_otp_charge_pump_x
+0x415e mem_otp_dpll_ibais_x
+0x415f mem_xtal_freq
+0x4160 mem_version
+0x4161 mem_company_id
+0x4163 mem_sub_version
+0x4165 mem_le_dsniff
+0x4167 mem_le_conn_interval
+0x4169 mem_le_tx_ifs_defference
+0x416a mem_le_tx2m_delay
+0x416b mem_le_txheader
+0x416c mem_le_txlen
+0x416d mem_le_txpayload
+0x426d mem_le_name_len
+0x426e mem_le_name
+0x428c mem_le_ltk
+0x429c mem_ltk_exists
+0x429d mem_le_rconfirm
+0x42ad mem_le_srand
+0x42bd mem_le_iat
+0x42be mem_le_rat
+0x42bf mem_le_preq
+0x42c0 mem_le_preq_iocap
+0x42c1 mem_le_preq_oob
+0x42c2 mem_le_preq_auth
+0x42c3 mem_le_preq_max_keysize
+0x42c4 mem_le_preq_init_key_distribution
+0x42c5 mem_le_preq_resp_key_distribution
+0x42c6 mem_le_pres
+0x42c7 mem_le_pres_iocap
+0x42c8 mem_le_pres_oob
+0x42c9 mem_le_pres_auth
+0x42ca mem_le_pres_max_keysize
+0x42cb mem_le_pres_init_key_distribution
+0x42cc mem_le_pres_resp_key_distribution
+0x42cd mem_le_conn_param
+0x42cd mem_le_conn_peer_addr_type
+0x42ce mem_le_conn_peer_addr
+0x42d4 mem_le_conn_own_addr_type
+0x42d5 mem_le_interval_min
+0x42d7 mem_le_interval_max
+0x42d9 mem_le_latency
+0x42db mem_le_timeout
+0x42dd mem_le_lap
+0x42e0 mem_le_uap
+0x42e1 mem_le_nap
+0x42e3 mem_le_local_mtu
+0x42e5 mem_le_remote_mtu
+0x42e7 mem_le_skdm
+0x42ef mem_le_skds
+0x42f7 mem_le_init_superto
+0x42f9 mem_ui_le_uuid_table
+0x42fb mem_le_secure_connect_flag
+0x42fc mem_le_secure_connect_state
+0x42fd mem_le_sc_confirm_gkey_flag
+0x42fe mem_le_pairing_state
+0x42ff mem_le_enc_state
+0x4300 mem_le_pairing_mode
+0x4301 mem_le_tk
+0x4305 mem_le_ediv
+0x4307 mem_le_rand
+0x430f mem_le_irk
+0x431f mem_le_transmit_window
+0x4323 mem_le_configuration
+0x4324 mem_le_fixed_ltk
+0x4334 mem_le_pairing_handle
+0x4336 mem_le_packet_llid
+0x4337 mem_le_l2cap_size
+0x4339 mem_le_packet_len_recved
+0x433b mem_le_payload_ptr
+0x433d mem_le_testtype
+0x433e mem_cmd_le_create_conn
+0x433f mem_le_signaling_identifier
+0x4340 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x4342 mem_le_md_count
+0x4343 mem_ble_l2cap_tx_buff0_ptr
+0x4345 mem_ble_l2cap_tx_buff_size_ptr
+0x4347 mem_le_scan_enable
+0x4348 mem_le_scan_interval
+0x434a mem_le_scan_window
+0x434c mem_le_adv_data_len
+0x434d mem_le_adv_data
+0x436c mem_le_scan_data_len
+0x436d mem_le_scan_data
+0x438c mem_le_adv_enable
+0x438d mem_le_adv_param
+0x438d mem_le_adv_interval
+0x438f mem_le_adv_type
+0x4390 mem_le_adv_own_addr_type
+0x4391 mem_le_adv_direct_addr
+0x4397 mem_le_adv_channel_map
+0x4398 mem_le_scan_params
+0x4398 mem_le_scan_type
+0x4399 mem_le_scan_own_addr_type
+0x439a mem_le_l2cap_att_states
+0x439b mem_le_att_opcode
+0x439c mem_le_att_handle
+0x439e mem_le_search_res
+0x439f mem_le_notify_handle
+0x43a1 mem_le_search_uuid_length
+0x43a2 mem_le_search_uuid
+0x43b2 mem_le_local_feature
+0x43ba mem_le_tx_phys
+0x43bb mem_le_rx_phys
+0x43bc mem_remote_rx_max_octets
+0x43be mem_remote_rx_max_time
+0x43c0 mem_remote_tx_max_octets
+0x43c2 mem_remote_tx_max_time
+0x43c4 mem_local_rx_max_octets
+0x43c6 mem_local_rx_max_time
+0x43c8 mem_local_tx_max_octets
+0x43ca mem_local_tx_max_time
+0x43cc mem_ucode_ptr
+0x43ce mem_ucode_flag
+0x43cf mem_device_option
+0x43d0 mem_peripheral_lock_flag
+0x43d1 mem_bistfix_val
+0x43d1 mem_bistfix_addr_sched
+0x43d3 mem_bistfix_addr_x
+0x43d5 mem_bistfix_addr_patch
+0x43d7 mem_bistfix_val_xram
+0x43d8 mem_bistfix_val_patchram
+0x43dc mem_cb_check_wakelock
+0x43de mem_cb_before_hibernate
+0x43e0 mem_cb_before_lpm
+0x43e2 mem_cb_le_process
+0x43e4 mem_cb_idle_process
+0x43e6 mem_cb_bb_event_process
+0x43e8 mem_cb_att_write
+0x43ea mem_cb_ble_transmit
+0x43ec mem_cb_event_timer
+0x43ee mem_cb_bt_set_mult
+0x43f0 mem_cb_spi_flash_write_complate
+0x43f2 mem_cb_before_lpm_sleep
+0x43f4 mem_eeprom_base
+0x43f6 mem_wake_up_delay_timer
+0x43f7 mem_app_connection_options
+0x43f8 mem_app_disconn_reason
+0x43fa mem_app_disconn_reason_flag
+0x43fc mem_xrecord_mode
+0x43fd mem_eeprom_block_size
+0x43fe mem_spi_init_clk
+0x43ff mem_spi_init_delay_time
+0x4400 mem_spi_ncs_gpio
+0x4401 mem_nv_data_ptr
+0x4403 mem_nv_data_number
+0x4404 mem_queue_ptr
+0x4406 mem_reference_inter1p8v_2v_adc_io_data
+0x4408 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0x440a mem_reference_inter1p8v_1v_adc_io_data
+0x440c mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0x440e mem_adc_reference3v_ft_data
+0x440e mem_adc_reference3v_gpio1v_ft_data
+0x4410 mem_adc_reference3v_gpio2v_ft_data
+0x4412 mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4414 mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4416 mem_adc_reference3v_inter1v_ft_data
+0x4418 mem_adc_reference3v_inter1v_now_data
+0x441a mem_adc_reference_mode
+0x441b mem_reference_voltage
+0x441d mem_adc_config_flag
+0x441e mem_adc_channel
+0x441f mem_adc_clkdiv
+0x4420 mem_adc_current_value
+0x4422 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4423 mem_adc_saddr_ptr
+0x4425 mem_adc_eaddr_ptr
+0x4427 mem_adc_dma_enable
+0x4428 mem_adc_cal_c0
+0x4429 mem_adc_cal_c1
+0x442a mem_adc_cal_c2
+0x442b mem_adc_cal_c3
+0x442c mem_adc_cal_c4
+0x442d mem_adc_cal_c5
+0x442e mem_adc_cal_c6
+0x442f mem_adc_cal_c7
+0x4430 mem_spi_write_addr
+0x4433 mem_spi_write_ptr
+0x4435 mem_spi_write_len
+0x4437 mem_spi_write_flash_sm
+0x4438 mem_spi_cs_gpio
+0x4439 mem_spi_si_gpio
+0x443a mem_spi_so_gpio
+0x443b mem_spi_sclk_gpio
+0x443c mem_spi_wp_gpio
+0x443d mem_spi_hold_gpio
+0x443e mem_eeprom_wp_gpio
+0x443f mem_eeprom_scl_gpio
+0x4440 mem_eeprom_sda_gpio
+0x4441 mem_kscan_ptr
+0x4443 mem_key_num_ptr
+0x4443 mem_keyscan_ptr
+0x4445 mem_key_value_retention
+0x4447 mem_power_param_ptr
+0x4449 mem_seqi
+0x444a mem_set_cdb_on
+0x444b mem_syn_cal_ctrl
+0x444c mem_nec_decode_error_value
+0x444d mem_wdt_always_work
+0x444e mem_power_ctrl_disable
+0x444f mem_ring_ibias_trim
+0x4450 mem_ring_ibias_vtune_low
+0x4452 mem_ring_ibias_vtune_high
+0x4454 mem_ring_ibias_calc_adc_gpio
+0x4455 mem_ring_ibias_calc_adc_channel
+0x4456 mem_rf_debug_rx_gpio
+0x4457 mem_rf_debug_tx_gpio
+0x4458 mem_l2cap_xmem_start
+0x4458 mem_used_map
+0x4459 mem_tx_fifo0
+0x4459 mem_tx_fifo0_map
+0x445a mem_tx_fifo0_ptr
+0x445c mem_tx_fifo1
+0x445c mem_tx_fifo1_map
+0x445d mem_tx_fifo1_ptr
+0x445f mem_tx_fifo2
+0x445f mem_tx_fifo2_map
+0x4460 mem_tx_fifo2_ptr
+0x4462 mem_tx_fifo3
+0x4462 mem_tx_fifo3_map
+0x4463 mem_tx_fifo3_ptr
+0x4465 mem_tx_fifo_end
+0x4465 mem_l2cap_lpm_txbuf_ptr
+0x4467 mem_l2cap_xmem_end
+0x4467 mem_ccm_pcnt_tx
+0x446c mem_ccm_pcnt_rx
+0x4471 mem_ccm_last_mic
+0x4475 mem_ccm_iv
+0x4475 mem_ccm_ivm
+0x4479 mem_ccm_ivs
+0x447d mem_ccm_len
+0x447f mem_ccm_rx_ptr
+0x4481 mem_sc_only_mode
+0x4482 mem_sp_debug_mode
+0x4483 mem_secure_connections_enable
+0x4484 mem_sc_calc
+0x4485 mem_sc_local_key_invalid
+0x4486 mem_sc_private_key_256
+0x44a6 mem_sc_pubkey_local_x_256
+0x44c6 mem_sc_pubkey_local_y_256
+0x44e6 mem_sp_state_xmem
+0x44e6 mem_authentication_passkey_times
+0x44e7 mem_passkey_1bit
+0x44e8 mem_sp_state_xmem_end
+0x44e8 mem_ipc_lock_bt
+0x44e9 mem_ipc_lock_c51
+0x44ea mem_ipc_fifo_bt2c51
+0x44f2 mem_ipc_fifo_c512bt
+0x44fa mem_ui_button_timer
+0x44fb mem_ui_button_last_state
+0x44fc mem_ui_timer_last_btclk
+0x4500 mem_ui_state_map
+0x4502 mem_ui_button_timeout
+0x4503 mem_ui_button_gpio
+0x4504 mem_ui_led_init_state_set
+0x4505 mem_ui_led_struct_num
+0x4506 mem_ui_led_struct_ptr
+0x4508 mem_24g_lap
+0x450e mem_24g_rxbuf
+0x4530 mem_24g_txbuf
+0x4550 mem_24g_txpayload
+0x4574 mem_24g_rxpayload
+0x4594 mem_24g_rxdata_length
+0x4595 mem_24g_pid
+0x4596 mem_24g_no_ack
+0x4597 mem_24g_sta_crc
+0x459a mem_24g_last_crc
+0x459d mem_24g_sta_pid
+0x459e mem_24g_last_pid
+0x459f mem_24g_datalen
+0x45a0 mem_24g_data_type
+0x45a1 mem_24g_txlen
+0x45a2 mem_24g_rx_window
+0x45a4 mem_24g_ch
+0x45a5 mem_24g_current_ch_number
+0x45a6 mem_24g_addr
+0x45aa mem_24g_ch_map1
+0x45ae mem_24g_ch_map2
+0x45b2 mem_24g_ch_map3
+0x45b6 mem_24g_ch_map4
+0x45ba mem_24g_tx_btclk
+0x45be mem_24g_interval
+0x45bf mem_24g_interval_min
+0x45c0 mem_24g_interval_max
+0x45c1 mem_24g_syncword
+0x45c3 mem_24g_syncword_crc8
+0x45c4 mem_24g_get_syncword_crc8
+0x45c5 mem_24g_pair_switch
+0x45c6 mem_24g_enter_hibernate
+0x45ce mem_24g_rx_phy
+0x45cf mem_24g_tx_phy
+0x45d0 mem_24g_ch_map_update
+0x45d1 mem_24g_ch_update_map1
+0x45d5 mem_24g_ch_update_map2
+0x45d9 mem_24g_ch_update_map3
+0x45dd mem_24g_ch_update_map4
+0x45e1 mem_24g_disable_fec1
+0x45e2 mem_24g_off_type
+0x45e3 mem_24g_pair_addr
+0x45e7 mem_24g_pair_ch
+0x45e8 mem_24g_pair_tx_power
+0x45e9 mem_rssi_buff_index
+0x45ea mem_24g_device1_bind_step
+0x45eb mem_24g_device2_bind_step
+0x45ec mem_24g_bind_device_status
+0x45ed mem_24g_bind_payload
+0x45f5 mem_24g_device1_bind_disable
+0x45f6 mem_24g_device2_bind_disable
+0x45f7 mem_cb_24g_receive_process
+0x45f9 mem_cb_24g_ackpayload
+0x45fb mem_cb_24g_data_device1
+0x45fd mem_cb_24g_data_device2
+0x45ff mem_24g_rxdata_temp
+0x4621 mem_24g_abort_packet
+0x4622 mem_24g_hop_btclk
+0x4626 mem_24g_hop_interval
+0x4627 mem_24g_pair_mode
+0x4628 mem_24g_ackpayload_enable
+0x4629 mem_24g_hop_packet
+0x462a mem_24g_mode_switch
+0x462b mem_24g_nodata_timer_enable
+0x462c mem_24g_mode_init
+0x462d mem_24g_work_mode
+0x462e mem_24g_time_slice
+0x462f mem_24g_self_last_ch
+0x4630 mem_24g_self_ch_number
+0x4631 mem_24g_self_config_ch_once
+0x4632 mem_24g_device1_last_ch
+0x4633 mem_24g_device1_ch_number
+0x4634 mem_24g_device1_config_ch_once
+0x4635 mem_24g_device2_last_ch
+0x4636 mem_24g_device2_ch_number
+0x4637 mem_24g_device2_config_ch_once
+0x4638 mem_24g_led_status
+0x4639 mem_24g_bind_mode_continue
+0x463a mem_tx_power_temp
+0x463b mem_24g_mode_B_S_switch
+0x463c mem_24g_mode_B_S_switch_init
+0x463d mem_24g_mode_B_S_switch_cnt
+0x463f mem_24g_mode_B_S_switch_exit
+0x4640 mem_24g_B_S_time_slice
+0x4641 mem_24g_B_S_mode_switch_disable
+0x4642 mem_24g_bind_device_living
+0x4643 mem_24g_transmitter_addr
+0x4647 mem_24g_device1_addr
+0x464b mem_24g_device2_addr
+0x464f mem_rssi_noise_avg
+0x4650 mem_rssi_noise_index
+0x4651 mem_rssi_noise_self_avg
+0x4652 mem_rssi_noise_device1_avg
+0x4653 mem_rssi_noise_device2_avg
+0x4654 mem_rssi_noise_self_index
+0x4655 mem_rssi_noise_device1_index
+0x4656 mem_rssi_noise_device2_index
+0x4657 mem_rssi_noise_buffer_ptr
+0x4659 mem_rssi_noise_self_buffer_ptr
+0x465b mem_rssi_noise_device1_buffer_ptr
+0x465d mem_rssi_noise_device2_buffer_ptr
+0x465f mem_car_le_24g_tx_pair_mode
+0x4660 mem_car_le_24g_ch_count
+0x4662 mem_car_24g_addr_other
+0x4666 mem_car_24g_tx_payload_temp
+0x4672 mem_car_24g_rx_payload_temp
+0x467e mem_car_24g_loselink_count
+0x467f mem_car_ble_connted_flag
+0x4680 mem_car_full_control_remote_lap
+0x4684 mem_100ms_adv_control_timer
+0x4686 mem_100ms_factory_test_control_timer
+0x4688 mem_pwm_flag
+0x4689 mem_period_count
+0x468a mem_timer_count
+0x468b mem_car_motor_gpio_num
+0x468c mem_car_motor_gpio_map
+0x468c mem_car_motor_left_gpio
+0x468d mem_car_motor_right_gpio
+0x468e mem_car_motor_front_gpio
+0x468f mem_car_motor_back_gpio
+0x4690 mem_car_pwm_gpio
+0x4691 mem_otp_lot_xy_temp
+0x4697 mem_f_flag
+0x4698 mem_b_flag
+0x4699 mem_adv_control_start_flag
+0x469a mem_stop_4w1_flag
+0x469b mem_factory_control_flag
+0x469c mem_car_gpio_control_mode
+0x469d mem_car_le_queue_each_size
+0x469e mem_car_le_queue_length
+0x469f mem_car_le_queue_current_num
+0x46a0 mem_car_le_queue_read_ptr
+0x46a1 mem_car_le_queue_write_ptr
+0x46a2 mem_car_le_queue_ele
+0x46f2 mem_car_ble_write_data
+0x46fd mem_car_ble_att_list
+0x488d mem_otp_sys_cfg_temp
+0x48c9 mem_ad_indexTable
+0x48d9 mem_ad_stepsizeTable
+0x4a3d mem_ad_state_valpred
+0x4a41 mem_ad_state_index
+0x4a45 mem_ad_in_numSamples
+0x4a46 mem_ad_in_ptr
+0x4a48 mem_ad_out_ptr
+0x4a4a mem_ad_sign
+0x4a4b mem_ad_delta
+0x4a4c mem_ad_step
+0x4a50 mem_ad_valpred
+0x4a54 mem_ad_index
+0x4a58 mem_ad_vpdiff
+0x4a5c mem_ad_inputbuffer
+0x4a60 mem_ad_bufferstep
+0x465f mem_dg_kb_bind_flag
+0x4660 mem_dg_kb_data_sta_data
+0x4668 mem_dg_kb_data_last_data
+0x4670 mem_dg_kb_multikey_sta_data
+0x4673 mem_dg_kb_multikey_last_data
+0x4676 mem_dg_kb_system_sta_data
+0x4679 mem_dg_kb_system_last_data
+0x467c mem_dg_kb_blank_data_enable
+0x467d mem_dg_kb_mul_blank_data_enable
+0x467e mem_dg_kb_system_crtl_blank_data_enable
+0x467f mem_dg_ms_blank_data_enable
+0x4680 mem_dg_sys_config
+0x4681 mem_dg_usb_vid_pid
+0x468a mem_dg_usb_tx_interval
+0x468b mem_dg_usb_device_name
+0x46ab mem_dg_kb_bind_success
+0x46ac mem_dg_pc_sleep_flag
+0x46ad mem_dg_24g_tx_power_default
+0x46ae mem_dg_kb_bit_consumer_blank_data_enable
+0x46af mem_dg_kb_bit_consumer_sta_data
+0x46b3 mem_dg_kb_bit_consumer_last_data
+0x46b7 mem_dg_device_version
+0x45ea mem_rssi_hex_received
+0x45eb mem_24g_pair_sm
+0x45ec mem_24g_pair_no_ack
+0x45ed mem_24g_pair_timeout_init
+0x45ef mem_24g_pair_timeout
+0x45f1 mem_24g_pair_count
+0x45f3 mem_24g_reconn_timeout_init
+0x45f5 mem_24g_reconn_timeout
+0x45f7 mem_24g_reconn_count
+0x45f9 mem_24g_reconn_type
+0x45fa mem_24g_fast_conn_enable
+0x45fb mem_24g_fast_conn_addr
+0x45ff mem_24g_receiver_addr
+0x4603 mem_24g_fast_conn_temp_ch
+0x4604 mem_24g_receiver_temp_ch
+0x4605 mem_24g_device_temp_ch
+0x4606 mem_rssi_signal_index
+0x4607 mem_rssi_signal_buf_ptr
+0x4609 mem_cb_24g_transmit_data
+0x460b mem_cb_24g_search_receiver
+0x460d mem_cb_24g_lpm_before
+0x460f mem_cb_24g_transmit_short_sleep
+0x4611 mem_cb_24g_transmit_long_sleep
+0x4613 mem_24g_conn_sm
+0x4614 mem_24g_ensure
+0x4615 mem_24g_txfail_cnt
+0x4617 mem_24g_attempt_fail_flag
+0x4618 mem_24g_retry
+0x4619 mem_24g_abort_pac
+0x461a mem_24g_max_retry
+0x461b mem_24g_device_addr
+0x461f mem_24g_short_sleep_set
+0x4622 mem_24g_long_sleep_set
+0x462a mem_24g_long_sleep_set1
+0x462e mem_24g_pac_index
+0x462f mem_24g_transmit_by_interrupt
+0x4630 mem_24g_transmit_by_interrupt_exit_count
+0x4632 mem_24g_transmit_by_interrupt_exit_count_init
+0x4634 mem_24g_long_sleep_param_update_timer_init
+0x4636 mem_24g_long_sleep_param_update_timer
+0x4638 mem_24g_fast_hop_count
+0x4639 mem_24g_retransmit
+0x463b mem_rssi_avg_received
+0x463c mem_power_ctrl_level
+0x463d mem_power_ctrl_pac_succ_cnt
+0x463e mem_power_ctrl_pac_succ_cnt_init
+0x463f mem_rssi_dis_min_24g
+0x4640 mem_rssi_dis_max_24g
+0x4641 mem_rssi_hex_received_max_value
+0x4642 mem_rssi_dis_min_ble
+0x4643 mem_rssi_dis_max_ble
+0x4644 mem_device_vdd_calculate_set
+0x4644 mem_device_vdd_full_vol
+0x4646 mem_device_vdd_empty_vol
+0x4648 mem_device_vdd_low_vol
+0x464a mem_device_vdd_now_vol
+0x464c mem_adc_channel_gpio
+0x464d mem_adc_low_volatage_led_timer_count
+0x464e mem_device_adc_last_low_voltage_flag
+0x464f mem_device_discovery_timeout
+0x4651 mem_device_24g_pair_timeout_init
+0x4653 mem_device_direct_timeout
+0x4654 mem_device_24g_reconn_timeout_init
+0x4655 mem_device_24g_pair_tx_power
+0x4656 mem_device_normal_tx_power
+0x4657 mem_rssi_dis_min_24g_init
+0x4658 mem_rssi_dis_max_24g_init
+0x4659 mem_rssi_hex_received_max_value_init
+0x465a mem_rssi_dis_min_ble_init
+0x465b mem_rssi_dis_max_ble_init
+0x465c mem_mouse_key
+0x465d mem_mouse_x
+0x465f mem_mouse_y
+0x4661 mem_mouse_z
+0x4662 mem_mouse_tz
+0x4663 mem_mouse_xy_h
+0x4664 mem_mouse_key_last
+0x4665 mem_device_switch_gpio
+0x4666 mem_device_reuse_2ice_gpio
+0x4667 mem_sensor_motion_gpio
+0x4668 mem_whee_a_data_gpio
+0x4669 mem_whee_b_data_gpio
+0x466a mem_wheel_tb_old_pinlevel
+0x466b mem_wheel_tb_new_pinlevel
+0x466c mem_wheel_tog
+0x466d mem_mouse_tz_data
+0x466e mem_mwheel_b_old_pinlevel
+0x466f mem_mwheel_b_new_pinlevel
+0x4670 mem_mwheel_tog
+0x4671 mem_mouse_z_data
+0x4672 mem_mouse_wheel_trigger
+0x4673 mem_mouse_wheel_trigger_timer
+0x4674 mem_wire_usb_interval
+0x4675 mem_usb_addr
+0x4676 mem_usb_vdd_status
+0x4677 mem_usb_keyboard_flag
+0x4678 mem_device_information_start
+0x4678 mem_device_flag
+0x4679 mem_device1_type
+0x467a mem_device1_addr
+0x4680 mem_device1_locall_addr
+0x4686 mem_device2_type
+0x4687 mem_device2_addr
+0x468d mem_device2_locall_addr
+0x4693 mem_device3_type
+0x4694 mem_device3_addr
+0x469a mem_device3_locall_addr
+0x46a0 mem_store_flag
+0x46a2 mem_mouse_dpi
+0x46a3 mem_device_24g_addr
+0x46a7 mem_random_addr_increase_count
+0x46a9 mem_keyboard_24g_fn_lock
+0x46aa mem_keyboard_bt1_fn_lock
+0x46ab mem_keyboard_bt2_fn_lock
+0x46ac mem_keyboard_bt3_fn_lock
+0x46ad mem_keyboard_usb_fn_lock
+0x46ae mem_keyboard_bt1_computer_system
+0x46af mem_keyboard_bt2_computer_system
+0x46b0 mem_keyboard_bt3_computer_system
+0x46b1 mem_backlight_on_flag
+0x46b2 mem_backlight_on_type
+0x46b3 mem_backlight_on_level
+0x46b4 mem_backlight_breath_speed
+0x46b5 mem_mouse_retention
+0x46f8 mem_device_information_end
+0x46f8 mem_device_compare_addr
+0x46fe mem_flash_base
+0x4701 mem_write_flash_head_temp
+0x4705 mem_store_information_delay_timer
+0x4706 mem_store_information_delay_timer_init
+0x4707 mem_device_search_dongle_interval
+0x4708 mem_device_search_dongle_ch
+0x4709 mem_device_search_dongle_count
+0x470a mem_device_search_dongle_action
+0x470b mem_24g_enter_lpm_timer
+0x470c mem_mouse_24g_enter_lpm_enable
+0x470d mem_keyboard_led_status
+0x470e mem_mouse_flag
+0x4716 mem_device_number
+0x4717 mem_device_flag_temp
+0x4718 mem_device_otp_flag_temp
+0x4719 mem_device_fast_direct_timeout
+0x471a mem_device_24g_power_on_fast_conn_timer
+0x471c mem_device_24g_search_dongle_time_init
+0x471e mem_device_no_data_timeout
+0x4720 mem_device_direct_timer
+0x4721 mem_customer_key_press
+0x472b mem_customer_key
+0x472c mem_customer_data_trigger
+0x472d mem_customer_data_trigger_last
+0x472e mem_device_set_analog_bit_set
+0x4731 mem_bt_discovery_count
+0x4732 mem_select_device_count
+0x4733 mem_mouse_commbination_key
+0x4734 mem_select_device_button_statue
+0x4735 mem_commbination_key_statue
+0x4736 mem_combination_ui_button_count
+0x4737 mem_24g_shutdown_flag
+0x4738 mem_24g_long_sleep_set_level
+0x4739 mem_tx_power_factory_param
+0x473b mem_mouse_24g_long_sleep_flag
+0x473c mem_mouse_long_mult_count
+0x473d mem_mouse_long_mult_flag
+0x473e mem_mouse_current_mult_timer
+0x473f mem_reconn_times
+0x4740 mem_reconn_times_init
+0x4741 mem_device_no_data_timer
+0x4743 mem_mouse_rssi_signal_buf
+0x474b mem_btclk_sensor
+0x474f mem_device_fast_conn_flag
+0x4750 mem_device_discovery_timer
+0x4752 mem_device_need_soft_reset
+0x4753 mem_device_le_bb_connected_flag
+0x4754 mem_device_le_reconnect_flag
+0x4755 mem_device_send_secutiry_request_timer
+0x4756 mem_device_le_lap_temp
+0x4759 mem_le_adv_ind
+0x475c mem_le_adv_direct_ind
+0x475f mem_le_adv_swift_pair
+0x4773 mem_le_data_len
+0x4774 mem_le_keyboard_handle
+0x4776 mem_le_multimedia_handle
+0x4778 mem_le_systemctrl_handle
+0x477a mem_le_battery_level_handle
+0x477c mem_le_battery_level_percentage
+0x477d mem_le_battery_level_updata_timer_init
+0x477f mem_le_battery_level_updata_timer
+0x4781 mem_le_conn_param_reject
+0x4782 mem_le_tx_buffer0_omemalloc
+0x47c2 mem_le_tx_buffer1_omemalloc
+0x4802 mem_le_tx_buffer2_omemalloc
+0x4842 mem_le_tx_buffer3_omemalloc
+0x4882 mem_le_connect_status_flag
+0x4883 mem_le_start_encrypt_timer
+0x4884 mem_device_addr_temp
+0x488b mem_lpm_mult_init
+0x488c mem_qdec_set_flag
+0x488d mem_power_on_flag
+0x488e mem_keyboard_flag
+0x4896 mem_keyboard_switch_count_temp
+0x4897 mem_keyboard_switch_device_to_g24
+0x489a mem_keyboard_switch_device_to_bt1
+0x489d mem_keyboard_switch_device_to_bt2
+0x48a0 mem_keyboard_switch_device_to_bt3
+0x48a3 mem_keyboard_switch_device_to_usb
+0x48a6 mem_keyboard_switch_device_flag
+0x48a7 mem_keyboard_switch_g24_enable
+0x48a8 mem_keyboard_switch_bt_enable
+0x48a9 mem_keyboard_switch_g24_press_timer
+0x48aa mem_keyboard_switch_bt_press_timer
+0x48ab mem_keyboard_vdd_full_vol
+0x48ad mem_keyboard_vdd_empty_vol
+0x48af mem_keyboard_vdd_low_vol
+0x48b1 mem_keyboard_power_type
+0x48b2 mem_rgb_pwm_conf
+0x48b8 mem_rgb_pwm_breathe_flag
+0x48b9 mem_rgb_on_color_temp
+0x48ba mem_rgb_on_color
+0x48c1 mem_pwm_lpm_mode_flag
+0x48c2 mem_keyboard_rgb_on_timer
+0x48c4 mem_ui_check_timer_setup
+0x48c8 mem_customize_timer_setup
+0x48ca mem_backlight_breathe_type
+0x48cb mem_keyboard_le_lap_temp
+0x48ce mem_keyboard_le_change_vid_pid_flag
+0x48cf mem_keybaord_le_pnp_vid_source
+0x48d0 mem_keyboard_le_vid
+0x48d2 mem_keyboard_le_pid
+0x48d4 mem_keyboard_le_product_version
+0x48d6 mem_keyboard_le_hid_map
+0x48d8 mem_keyboard_blob_response_consumer_customize
+0x48ee mem_le_search_service_uuid
+0x48fe mem_le_connect_ios_mac_flag
+0x48ff mem_le_search_mac_uuid
+0x4901 mem_le_search_mac_manu_name
+0x490a mem_keybord_appearance
+0x490c mem_keyboard_le_send_conn_param_update
+0x490d mem_keyboard_le_send_conn_param_update_timer
+0x490e mem_le_start_auto_reco_timer
+0x490f mem_keyboard_pb_button_gpio
+0x4910 mem_mcu_stb_gpio
+0x4911 mem_mcu_clk_gpio
+0x4912 mem_mcu_rstb_gpio
+0x4913 mem_keyboard_num_led_gpio
+0x4914 mem_keyboard_caps_led_gpio
+0x4915 mem_keyboard_scroll_led_gpio
+0x4916 mem_keyboard_power_led_gpio
+0x4917 mem_keyboard_low_voltage_alarm_gpio
+0x4918 mem_keyboard_24g_led_gpio
+0x4919 mem_keyboard_bt1_led_gpio
+0x491a mem_keyboard_bt2_led_gpio
+0x491b mem_keyboard_bt3_led_gpio
+0x491c mem_keyboard_led_r_gpio
+0x491d mem_keyboard_led_g_gpio
+0x491e mem_keyboard_led_b_gpio
+0x491f mem_key_row_gpio
+0x4927 mem_key_col_gpio
+0x493c mem_key_excol_gpio
+0x4948 mem_kb_row_ptr
+0x494a mem_kb_col_ptr
+0x494c mem_kb_excol_ptr
+0x494e mem_keyscan_value_current
+0x4963 mem_keyscan_value_check
+0x4978 mem_keyscan_value_old
+0x498d mem_keyscan_exmcu_value
+0x4998 mem_keyscan_value_ptr
+0x499a mem_keyscan_exmcu_value_ptr
+0x499c mem_keyscan_value_temp
+0x499d mem_keyscan_col_loop_count
+0x499e mem_keyscan_exmcu_wait_wake_count
+0x49a0 mem_same_keyvalue_timerout_flag
+0x49a1 mem_same_keyvalue_timer_init
+0x49a3 mem_same_keyvalue_timer
+0x49a5 mem_keyboard_current_col_press_key_count
+0x49a6 mem_keyboard_all_press_key_count
+0x49a7 mem_keyboard_same_row_press_key_count
+0x49a8 mem_keyboard_ghost_flag
+0x49a9 mem_keyboard_data_change_flag
+0x49aa mem_keyboard_keyvalue_temp
+0x49ab mem_keyboard_press_flag_temp
+0x49ac mem_keyboard_keyvalue_bit_loop_count
+0x49ad mem_keyboard_keyvalue_buffer
+0x49b7 mem_keboard_n_key_rollover_send_flag
+0x49b8 mem_keyboard_n_key_rollover_data
+0x49c7 mem_keyboard_keyvalue_map
+0x4a6f mem_keyboard_tx_data
+0x4a79 mem_keyboard_data_send_flag
+0x4a7a mem_keyboard_fn_flag
+0x4a7b mem_keyboard_control_key_flag
+0x4a7c mem_keyboard_alt_flag
+0x4a7d mem_keyboard_shift_flag
+0x4a7e mem_keyboard_bt_button_flag
+0x4a7f mem_keyboard_pairing_type
+0x4a80 mem_24g_repeat_send_flag
+0x4a81 mem_keyboard_led_status_get
+0x4a82 mem_keyboard_led_status_get_timer
+0x4a83 mem_keyboard_led_status_get_timer_last
+0x4a84 mem_keyboard_fn_esc_f1_f12
+0x4a84 mem_keyboard_fn_first
+0x4a85 mem_keyboard_fn_esc
+0x4a86 mem_keyboard_fn_f1
+0x4a87 mem_keyboard_fn_f2
+0x4a88 mem_keyboard_fn_f3
+0x4a89 mem_keyboard_fn_f4
+0x4a8a mem_keyboard_fn_f5
+0x4a8b mem_keyboard_fn_f6
+0x4a8c mem_keyboard_fn_f7
+0x4a8d mem_keyboard_fn_f8
+0x4a8e mem_keyboard_fn_f9
+0x4a8f mem_keyboard_fn_f10
+0x4a90 mem_keyboard_fn_f11
+0x4a91 mem_keyboard_fn_f12
+0x4a92 mem_keyboard_fn_del
+0x4a93 mem_keyboard_fn_lock_flag
+0x4a94 mem_keyboard_fn_lock_keyvalue
+0x4a95 mem_keyboard_commbination_key_bt
+0x4a97 mem_keyboard_commbination_key_24g
+0x4a99 mem_keyboard_commbination_fast_conn_bt
+0x4a9b mem_keyboard_commbination_press_type
+0x4a9c mem_keyboard_commbination_key_step
+0x4a9d mem_keyboard_commbination_control_key_value
+0x4a9e mem_keyboard_commbination_standard_key_value
+0x4a9f mem_keyboard_commbination_control_key_delay_release_timer
+0x4aa0 mem_keyboard_consumer_key_status
+0x4aa1 mem_kb_computer_system
+0x4aa2 mem_keyboard_device_info_store_flag
+0x4aa3 mem_otp_store_device_info_flag
+0x4aa4 mem_otp_store_system_flag
+0x4aa5 mem_otp_read_retention_memory
+0x4abd mem_otp_read_retention_offset
+0x4abf mem_otp_read_retention_max_size
+0x4ac1 mem_keyboard_device_poweron_timer_init
+0x4ac2 mem_keyboard_device_poweron_timer
+0x4ac3 mem_keyboard_num_caps_scoll_led_on_timer
+0x4ac5 mem_keyboard_mode_led_on_timer
+0x4ac6 mem_keyboard_adc_low_volatage_led_timer_count
+0x4ac7 mem_adc_low_volatage_led_blink_timer
+0x4ac9 mem_keyboard_low_volatage_led_flag
+0x4aca mem_keyboard_low_volatage_led_blink_count
+0x4acb mem_keyboard_low_volatage_led_blink_new_data_enable
+0x4acc mem_keyboard_pair_led_flag
+0x4acd mem_keyboard_pair_led_blink_count
+0x4ace mem_usb_vdd_status_current
+0x4acf mem_usb_vdd_status_last
+0x4ad0 mem_usb_wait_updata_timer
+0x4ad1 mem_keyboard_usb_vid_pid
+0x4ada mem_keyscan_exmcu_value_new
+0x4ae6 mem_keyboard_hid_fix_handle
+0x4ae8 mem_keyboard_le_table
+0x4b99 mem_keyboard_delay_lpm_flag
+0x4b9a mem_keyboard_evt_btclk
+0x4b9e mem_keyboard_evt_timer_count
+0x4b9f mem_keyboard_scan_enter_lpm
+0x4ba0 mem_keyboard_end
+0x488d mem_mouse_param_config
+0x488d mem_lbutton_gpio
+0x488e mem_mbutton_gpio
+0x488f mem_rbutton_gpio
+0x4890 mem_bk_button_gpio
+0x4891 mem_fw_button_gpio
+0x4892 mem_dpi_button_gpio
+0x4893 mem_mouse_sensor_sclk_gpio
+0x4894 mem_mouse_sensor_sdio_gpio
+0x4895 mem_select_sensor_angle_gpio
+0x4896 mem_sensor_angle_default
+0x4897 mem_sensor_angle_gnd
+0x4898 mem_sensor_angle_vin
+0x4899 mem_config_sensor_dpi
+0x489a mem_whee_ta_data_gpio
+0x489b mem_whee_tb_data_gpio
+0x489c mem_matrix_public_gpio
+0x489d mem_config_select_device_button_gpio
+0x489e mem_customer_key_gpio
+0x489f mem_firebutton_gpio
+0x48a0 mem_dpi_another_button_gpio
+0x48a1 mem_mouse_logo_led_gpio
+0x48a2 mem_mouse_1io2led_multi_24gled
+0x48a3 mem_mouse_1io2led_multi_bt1led
+0x48a4 mem_mouse_1io2led_multi_bt2led
+0x48a5 mem_mouse_low_voltage_alarm_gpio
+0x48a6 mem_mouse_dpi_gpio
+0x48a7 mem_mouse_param_config_end
+0x48a7 mem_device_temp_gpio
+0x48a8 mem_mouse_multi_led_blink_enable
+0x48a9 mem_mouse_multi_led_type
+0x48aa mem_mouse_multi_led_state
+0x48ab mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x48ac mem_mouse_le_reconn_blink_limit
+0x48ad mem_mouse_multi_led_powon_timer_init//power on time
+0x48ae mem_mouse_multi_led_powon_timer
+0x48af mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x48b0 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x48b1 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x48b2 mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x48b3 mem_mouse_multi_led_blink_timer
+0x48b4 mem_mouse_low_led_blink_timer//low blink time
+0x48b5 mem_mouse_low_led_blink_half_timer
+0x48b6 mem_mouse_multi_24gled_blink_count_init//24g count
+0x48b7 mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x48b8 mem_mouse_multi_led_blink_count
+0x48b9 mem_mouse_multi_lowled_blink_count_init//low count
+0x48ba mem_mouse_multi_low_led_blink_count
+0x48bb mem_mouse_logo_led_on_time_init
+0x48bd mem_mouse_dpi_led_delay_count
+0x48be mem_mouse_dpi_led_delay_count_init
+0x48bf mem_mouse_24g_fast_hop_count_2ms
+0x48c0 mem_mouse_24g_short_sleep_set_4ms
+0x48c3 mem_mouse_24g_long_sleep_set_4ms
+0x48c6 mem_mouse_24g_short_sleep_set_8ms
+0x48c9 mem_mouse_24g_long_sleep_set_8ms
+0x48cc mem_mouse_24g_tsniff
+0x48d0 mem_mouse_24g_tsniff_2ms
+0x48d4 mem_mouse_24g_tsniff_4ms
+0x48d8 mem_mouse_24g_tsniff_8ms
+0x48dc mem_mouse_24g_short_sleep_set_init
+0x48df mem_mouse_24g_tx_count
+0x48e0 mem_mouse_24g_tx_time_last
+0x48e6 mem_mouse_24g_tx_time_last_delt
+0x48ea mem_mouse_24g_tx_time_sum
+0x48ef mem_mouse_24g_tx_time_sum_count
+0x48f0 mem_mouse_24g_tx_time_offset
+0x48f1 mem_mouse_24g_sleep_miss
+0x48f2 mem_mouse_24g_sleep_time_temp
+0x48f6 mem_mouse_24g_sleep_miss_temp
+0x48fa mem_mouse_sleep_deal_type
+0x48fb mem_sensor_id1
+0x48fc mem_sensor_id2
+0x48fd mem_mouse_move_flag
+0x48fe mem_mouse_asm_flag
+0x48ff mem_mouse_x_pre
+0x4901 mem_mouse_y_pre
+0x4903 mem_mouse_data_xtemp
+0x4904 mem_mouse_data_ytemp
+0x4905 mem_mouse_dpi_seting
+0x4905 mem_320x_dpi_0
+0x4906 mem_320x_dpi_1
+0x4907 mem_320x_dpi_2
+0x4908 mem_320x_dpi_3
+0x4909 mem_3212_dpi_0
+0x490a mem_3212_dpi_1
+0x490b mem_3212_dpi_2
+0x490c mem_3212_dpi_3
+0x490d mem_ka8g2_dpi_0
+0x490e mem_ka8g2_dpi_1
+0x490f mem_ka8g2_dpi_2
+0x4910 mem_ka8g2_dpi_3
+0x4911 mem_sensor_s201_dpi
+0x4911 mem_sensor_s201_dpi_0
+0x4912 mem_sensor_s201_dpi_1
+0x4913 mem_sensor_s201_dpi_2
+0x4914 mem_sensor_s201_dpi_3
+0x4915 mem_sensor_s201_dpi_4
+0x4916 mem_mouse_cpi_count
+0x4917 mem_mouse_dpi_button_state
+0x4918 mem_mouse_dpi_long_press_flag
+0x4919 mem_sensor_3212_init
+0x4923 mem_sensor_3204_init
+0x492d mem_sensor_3205_init
+0x4937 mem_sensor_32xx_init
+0x4951 mem_sensor_32xx_init_1
+0x4973 mem_sensor_8650_init
+0x4991 mem_sensor_ka8ul_init
+0x49af mem_sensor_8009_init
+0x49bf mem_sensor_ka8g2_init
+0x49d1 mem_sensor_p6520_init
+0x49dd mem_sensor_ka5857_init
+0x49e9 mem_sensor_poweron_init
+0x49f1 mem_sensor_ka8g2_poweron_init
+0x49f9 mem_mouse_clear_sensor_data_flag
+0x49fa mem_config_sensor_type
+0x49fb mem_config_sensor_angle
+0x49fc mem_bluetooth_125hz_cnt
+0x49fd mem_customer_key_press_init
+0x4a07 mem_mouse_lkey_press_status
+0x4a08 mem_mouse_rkey_press_status
+0x4a09 mem_mouse_mkey_press_status
+0x4a0a mem_mouse_bkkey_press_status
+0x4a0b mem_mouse_fwkey_press_status
+0x4a0c mem_mouse_dpikey_press_status
+0x4a0d mem_mouse_pbkey_press_status
+0x4a0e mem_mouse_customerkey_press_status
+0x4a0f mem_mouse_key_temp
+0x4a10 mem_mouse_key_status
+0x4a11 mem_mouse_matrix_key_cow_count
+0x4a12 mem_mouse_matrix_key_row_count
+0x4a13 mem_mouse_ghost_flag
+0x4a14 mem_fire_key_status
+0x4a15 mem_fire_key_delay
+0x4a19 mem_fire_key_flag
+0x4a1a mem_dpi_another_press_status
+0x4a1b mem_dpi_another_button_state
+0x4a1c mem_dpi_another_button_down_enable
+0x4a1d mem_mouse_key_temp_patch
+0x4a1e mem_le_name_patch_len
+0x4a1f mem_le_name_patch
+0x4a32 mem_device_flag_last
+0x4a33 mem_device_flag_value
+0x4a34 mem_mouse_le_addr1_last
+0x4a3a mem_mouse_le_addr1_temp
+0x4a40 mem_mouse_le_locall_addr1_last
+0x4a46 mem_mouse_le_locall_addr1_temp
+0x4a4c mem_mouse_le_addr2_last
+0x4a52 mem_mouse_le_addr2_temp
+0x4a58 mem_mouse_le_locall_addr2_last
+0x4a5e mem_mouse_le_locall_addr2_temp
+0x4a64 mem_mouse_dpi_last
+0x4a65 mem_mouse_dpi_temp
+0x4a66 mem_mouse_otp_dpi_value
+0x4a67 mem_mouse_24g_addr_last
+0x4a6b mem_mouse_24g_addr_temp
+0x4a6f mem_random_addr_increase_count_last
+0x4a71 mem_random_addr_increase_count_temp
+0x4a73 mem_otp_offset_le_addr2
+0x4a75 mem_otp_offset_le_addr2_end
+0x4a77 mem_otp_offset_le_locall_addr2
+0x4a79 mem_otp_offset_le_locall_addr2_end
+0x4a7b mem_otp_offset_dpi
+0x4a7d mem_otp_offset_dpi_end
+0x4a7f mem_otp_offset_device_flag
+0x4a81 mem_otp_offset_device_flag_end
+0x4a83 mem_otp_offset_24g_addr
+0x4a85 mem_otp_offset_24g_addr_end
+0x4a87 mem_otp_offset_le_addr1
+0x4a89 mem_otp_offset_le_addr1_end
+0x4a8b mem_otp_offset_le_locall_addr1
+0x4a8d mem_otp_offset_le_locall_addr1_end
+0x4a8f mem_otp_offset_le_addr_increase_count
+0x4a91 mem_otp_offset_le_addr_increase_count_end
+0x4a93 mem_otp_offset_app_initflag
+0x4a95 mem_usb_tx_interval_retention
+0x4a96 mem_usb_vid_pid_retention
+0x4a9f mem_usb_device_name_retention
+0x4abd mem_mouse_commbination_key_bt
+0x4abe mem_mouse_commbination_key_24g
+0x4abf mem_mouse_commbination_key_dpi
+0x4ac0 mem_mouse_commbination_key_select_device
+0x4ac1 mem_mouse_commbination_dpi_timer
+0x4ac2 mem_mouse_commbination_select_device_timer
+0x4ac3 mem_mouse_commbination_key_count
+0x4ac4 mem_mouse_pair_flag
+0x4644 mem_remote_lpm_gpio_config_flag
+0x4648 mem_remote_lpm_gpio_config_io_temp
+0x4649 mem_24g_tx_led_map
+0x464a mem_24g_led_count
+0x464b mem_24g_lpm_timer_count
+0x464d mem_24g_lpm_enter_count
+0x464f mem_remote_otp_lot_xy_temp
+0x4655 mem_remote_full_control_remote_lap
+0x4659 mem_remote_car_key_conf0
+0x4659 mem_remote_car_key_conf0_pin
+0x465a mem_remote_car_key_conf1
+0x465a mem_remote_car_key_conf1_pin
+0x465b mem_remote_car_key_conf2
+0x465b mem_remote_car_key_conf2_pin
+0x465c mem_remote_car_key_conf3
+0x465c mem_remote_car_key_conf3_pin
+0x465d mem_remote_car_key_conf4
+0x465d mem_remote_car_key_conf4_pin
+0x465e mem_remote_car_key_conf5
+0x465e mem_remote_car_key_conf5_pin
+0x465f mem_remote_car_key_conf6
+0x465f mem_remote_car_key_conf6_pin
+0x4660 mem_remote_le_24g_recv_ack_flag
+0x4661 mem_key_public_gpio
+0x4662 mem_remote_mult_key
+0x4663 mem_remote_le_24g_ch_count
+0x4665 mem_le_24g_tx_send_flag
+0x4666 mem_remote_le_24g_tx_pair_mode
+0x4667 mem_remote_24g_addr_other
+0x466b mem_remote_24g_tx_payload_temp
+0x4677 mem_remote_24g_rx_payload_temp
+0x4508 mem_hci_uart_tx_gpio
+0x4509 mem_hci_uart_rx_gpio
+0x450a mem_hci_uart_rts_gpio
+0x450b mem_hci_uart_cts_gpio
+0x450c mem_hci_pwm_12mhz_gpio
+0x4508 mem_soft_version_num
+0x450a mem_module_wake_up_gpio
+0x450b mem_module_state_gpio
+0x450c mem_module_connect_state_gpio
+0x450d mem_current_packet_length
+0x450f mem_module_state
+0x4510 mem_module_mcu_wake_pin
+0x4511 mem_module_mcu_wake_delay_us
+0x4515 mem_module_le_lpm_mult
+0x4516 mem_module_bluetooth_stauts_by_command
+0x4517 mem_module_uart_rx_buffer
+0x4519 mem_module_uart_rx_buffer_end
+0x451b mem_module_uart_tx_buffer
+0x451d mem_module_uart_tx_buffer_end
+0x451f mem_module_uarta_baud_rate
+0x4521 mem_module_read_vdd_flag
+0x4522 mem_module_read_vdd_count
+0x4523 mem_module_vdd_quotient
+0x4524 mem_module_vdd_remainder
+0x4525 mem_module_ble_data_uart_max_length
+0x4526 mem_module_flag
+0x4528 mem_module_hci_notify_len
+0x4529 mem_module_hci_notify_handle
+0x452b mem_module_hci_nofiy_addr
+0x452d mem_module_hci_notify_type
+0x452e mem_le_conn_flag
+0x452f mem_module_le_att_list
+0x4787 mem_module_le_att_list_end
+0x4787 mem_module_nv_data
+0x4787 mem_module_nv_data0
+0x47a9 mem_module_nv_data1
+0x47cb mem_module_nv_data2
+0x47ed mem_module_nv_data3
+0x480f mem_module_nv_data4
+0x4831 mem_module_nv_data_end
+0x4508 mem_xmalloc_rec_start
+0x4508 mem_rec_le_att_list
+0x49c7 mem_rec_led_style
+0x49c7 mem_rec_led_style_type
+0x49c8 mem_rec_led_style_blink_count
+0x49c9 mem_rec_led_style_gpio
+0x49ca mem_rec_led_style_on_time
+0x49cc mem_rec_led_style_off_time
+0x49ce mem_rec_led_style_on_callback
+0x49d0 mem_rec_led_style_off_callback
+0x49d2 mem_rec_led2_style
+0x49d2 mem_rec_led2_style_type
+0x49d3 mem_rec_led2_style_blink_count
+0x49d4 mem_rec_led2_style_gpio
+0x49d5 mem_rec_led2_style_on_time
+0x49d7 mem_rec_led2_style_off_time
+0x49d9 mem_rec_led2_style_on_callback
+0x49db mem_rec_led2_style_off_callback
+0x49dd mem_rec_le_pair_led_style
+0x49dd mem_rec_le_pair_led_style_type
+0x49de mem_rec_le_pair_led_style_blink_count
+0x49df mem_rec_le_pair_led_style_gpio
+0x49e0 mem_rec_le_pair_led_style_on_time
+0x49e2 mem_rec_le_pair_led_style_off_time
+0x49e4 mem_rec_le_reconn_led_style
+0x49e4 mem_rec_le_reconn_led_style_type
+0x49e5 mem_rec_le_reconn_led_style_blink_count
+0x49e6 mem_rec_le_reconn_led_style_gpio
+0x49e7 mem_rec_le_reconn_led_style_on_time
+0x49e9 mem_rec_le_reconn_led_style_off_time
+0x49eb mem_rec_adc_low_led_style
+0x49eb mem_rec_adc_low_led_style_type
+0x49ec mem_rec_adc_low_led_style_blink_count
+0x49ed mem_rec_adc_low_led_style_gpio
+0x49ee mem_rec_adc_low_led_style_on_time
+0x49f0 mem_rec_adc_low_led_style_off_time
+0x49f2 mem_rec_ui_timer_btclk
+0x49f6 mem_rec_ui_timer_count
+0x49f7 mem_rec_cb_timer
+0x49f9 mem_rec_tscan_timer
+0x49fa mem_rec_tscan_timeout
+0x49fb mem_rec_tscan_row_nums
+0x49fc mem_rec_tscan_col_nums
+0x49fd mem_rec_tscan_col_gpio_ptr
+0x49ff mem_rec_tscan_row_scanned
+0x4a00 mem_rec_tscan_col_scanned
+0x4a01 mem_rec_tscan_record_row
+0x4a02 mem_rec_tscan_record_col
+0x4a03 mem_rec_tscan_row_gpio
+0x4a0d mem_rec_tscan_col_gpio
+0x4a17 mem_rec_tscan_sequence
+0x4a18 mem_rec_tscan_gpio_nums
+0x4a19 mem_rec_tscan_row_scan_loop_count
+0x4a1a mem_rec_key_state
+0x4a1a mem_rec_tscan_gndkey_state
+0x4a1b mem_rec_tscan_key_state
+0x4a1c mem_rec_tscan_record_temp
+0x4a1e mem_rec_tscan_key_need_send_flag
+0x4a1f mem_rec_tscan_current_key_num
+0x4a20 mem_rec_gpio_wakeup_source
+0x4a21 mem_rec_tscan_gndkey_record_temp
+0x4a22 mem_rec_tscan_gndkey_need_send_flag
+0x4a23 mem_rec_tscan_key_nums_list
+0x4a4b mem_rec_tscan_gndkey_nums_list
+0x4a55 mem_rec_tscan_key_num_bit
+0x4a5d mem_rec_tscan_combin_key_num_bit
+0x4a65 mem_rec_tscan_current_gpio_ptr
+0x4a67 mem_rec_tscan_record_now
+0x4a69 mem_rec_combin_key_timeout
+0x4a6a mem_rec_combin_key_timer
+0x4a6b mem_rec_gpio_bit_first
+0x4a6c mem_rec_gpio_bit_second
+0x4a6d mem_rec_gpio_bit_check
+0x4a6e mem_rec_gpio_for_wake_pullup
+0x4a6f mem_rec_keypad_type
+0x4a70 mem_rec_key_keyboard_value_list
+0x4b10 mem_rec_key_consumer_value_list
+0x4b40 mem_rec_key_mouse_value_list
+0x4b80 mem_rec_key_nec_value_list
+0x4bb0 mem_rec_key_press_le
+0x4bb0 mem_rec_key1_press_le
+0x4bb3 mem_rec_key2_press_le
+0x4bb6 mem_rec_key3_press_le
+0x4bb9 mem_rec_key4_press_le
+0x4bbc mem_rec_key5_press_le
+0x4bbf mem_rec_key6_press_le
+0x4bc2 mem_rec_key7_press_le
+0x4bc5 mem_rec_key8_press_le
+0x4bc8 mem_rec_key9_press_le
+0x4bcb mem_rec_key10_press_le
+0x4bce mem_rec_key11_press_le
+0x4bd1 mem_rec_key12_press_le
+0x4bd4 mem_rec_key13_press_le
+0x4bd7 mem_rec_key14_press_le
+0x4bda mem_rec_key15_press_le
+0x4bdd mem_rec_key16_press_le
+0x4be0 mem_rec_key17_press_le
+0x4be3 mem_rec_key18_press_le
+0x4be6 mem_rec_key19_press_le
+0x4be9 mem_rec_key20_press_le
+0x4bec mem_rec_key21_press_le
+0x4bef mem_rec_key_release_le
+0x4bf2 mem_rec_key_map
+0x4c07 mem_rec_gnd_key_offset
+0x4c08 mem_rec_keypad_fun
+0x4c09 mem_rec_le_enable_notify
+0x4c0a mem_rec_le_data_len
+0x4c0b mem_rec_le_connect_state
+0x4c0c mem_rec_report_id1_handle
+0x4c0e mem_rec_report_id2_handle
+0x4c10 mem_rec_report_id3_handle
+0x4c12 mem_rec_report_id4_handle
+0x4c14 mem_rec_queue_each_size
+0x4c15 mem_rec_queue_length
+0x4c16 mem_rec_queue_curr_num
+0x4c17 mem_rec_queue_read_ptr
+0x4c18 mem_rec_queue_write_ptr
+0x4c19 mem_rec_queue_ele
+0x4c39 mem_rec_ad_indexTable1
+0x4c49 mem_rec_ad_stepsizeTable1
+0x4dad mem_rec_ad_state_valpred1
+0x4db1 mem_rec_ad_state_index1
+0x4db5 mem_rec_ad_in_numSamples1
+0x4db6 mem_rec_ad_in_ptr1
+0x4db8 mem_rec_ad_out_ptr1
+0x4dba mem_rec_ad_sign1
+0x4dbb mem_rec_ad_delta1
+0x4dbc mem_rec_ad_step1
+0x4dc0 mem_rec_ad_valpred1
+0x4dc4 mem_rec_ad_index1
+0x4dc8 mem_rec_ad_vpdiff1
+0x4dcc mem_rec_ad_inputbuffer1
+0x4dd0 mem_rec_ad_bufferstep1
+0x4dd1 mem_rec_ad_val1
+0x4dd5 mem_rec_ad_outputbuffer1
+0x4dd9 mem_rec_ad_diff1
+0x4ddd mem_rec_voice_enable
+0x4dde mem_rec_voice_notify
+0x4df2 mem_rec_adc_dma_rptr
+0x4df4 mem_rec_voice_notify_apk_handle
+0x4df6 mem_rec_voice_notify_box_handle
+0x4df8 mem_rec_control_notify_apk_handle
+0x4dfa mem_rec_control_notify_box_handle
+0x4dfc mem_rec_white_list_num
+0x4dfd mem_rec_le_scan_filter_policy
+0x4dfe mem_rec_white_list_flash_write_head
+0x4e02 mem_rec_white_list
+0x4e32 mem_rec_le_req_type
+0x4e33 mem_rec_nec_send_gpio
+0x4e34 mem_rec_nec_receive_gpio
+0x4e35 mem_rec_ota_write_index
+0x4e37 mem_rec_ota_write_length
+0x4e3b mem_rec_ota_write_data_addr
+0x4e3d mem_rec_ota_write_flash_addr
+0x4e40 mem_rec_ota_write_flash_addr_start
+0x4e43 mem_rec_ota_total_sum
+0x4e47 mem_rec_ota_update_flash_mode
+0x4e48 mem_rec_ota_version
+0x4e4a mem_rec_ota_buck_size
+0x4e4c mem_rec_ota_packet_max_len
+0x4e4e mem_rec_ota_work_mode
+0x4e4f mem_rec_ota_notify_handle
+0x4e51 mem_rec_ota_notify_opcode
+0x4e52 mem_rec_ota_notify_result
+0x4e53 mem_rec_ota_notify_data
+0x4e5c mem_rec_ota_le_conn_update_param
+0x4e5c mem_rec_ota_le_interval_min
+0x4e5e mem_rec_ota_le_interval_max
+0x4e60 mem_rec_ota_le_latency
+0x4e62 mem_rec_ota_le_timeout
+0x4e64 mem_rec_ota_reset_timeout
+0x4e65 mem_rec_ota_le_conn_param_update
+0x4e66 mem_rec_ota_enable
+0x4e67 mem_rec_le_packet_size
+0x4e68 mem_rec_ota_flash_base_addr
+0x4e6b mem_rec_ota_flash_offset_addr
+0x4e6e mem_rec_queue_ota_count
+0x4e70 mem_rec_ota_queue_size
+0x4e72 mem_rec_code_a_flash_addr
+0x4e75 mem_rec_code_b_flash_addr
+0x4e78 mem_xmalloc_rec_end
+0x4508 mem_ble_shutter_enable_notify
+0x4509 mem_ble_shutter_reconn_adv_interval
+0x450b mem_ble_shutter_discovery_adv_interval
+0x450d mem_ble_shutter_reconn_timeout
+0x450f mem_ble_shutter_reconn_timer
+0x4511 mem_ble_shutter_reconn_blink_on_time
+0x4513 mem_ble_shutter_reconn_blink_off_time
+0x4515 mem_ble_shutter_discovery_blink_on_time
+0x4517 mem_ble_shutter_discovery_blink_off_time
+0x4519 mem_ble_shutter_interval_min
+0x451b mem_ble_shutter_interval_max
+0x451d mem_ble_shutter_latency
+0x451f mem_ble_shutter_timeout
+0x4521 mem_ble_shutter_interval_min_new
+0x4523 mem_ble_shutter_interval_max_new
+0x4525 mem_ble_shutter_latency_new
+0x4527 mem_ble_shutter_timeout_new
+0x4529 mem_ble_shutter_discovery_timeout
+0x452b mem_ble_shutter_connect_timeout
+0x452d mem_shutter_sleep_timeout
+0x452f mem_shutter_sleep_timer
+0x4531 mem_shutter_hard_soft_switch_case
+0x4532 mem_shutter_soft_switch_button_gpio
+0x4533 mem_shutter_soft_switch_power_state
+0x4534 mem_shutter_soft_switch_poweron_time
+0x4535 mem_shutter_soft_switch_poweroff_time
+0x4536 mem_shutter_soft_switch_poweron_callback_function
+0x4538 mem_shutter_soft_switch_poweroff_callback_function
+0x453a mem_shutter_keyscan
+0x453a mem_shutter_key_num
+0x453b mem_cb_shutter_keycan
+0x453d mem_shutter_key_conf0
+0x453e mem_shutter_key_conf1
+0x453f mem_key0_press
+0x4544 mem_key1_press
+0x4549 mem_key2_press
+0x454e mem_key0_release
+0x4553 mem_key1_release
+0x4558 mem_key2_release
+0x455d mem_ble_data_buffer1
+0x4562 mem_ble_data_buffer2
+0x4567 mem_ble_data_buffer3
+0x456c mem_ble_data_buffer4
+0x4571 mem_ble_data_buffer5
+0x4576 mem_ble_data_buffer6
+0x457b mem_ble_data_buffer7
+0x4580 mem_ble_data_buffer8
+0x4585 mem_ble_data_buffer9_58
+0x45b7 mem_queue_each_size
+0x45b8 mem_queue_length
+0x45b9 mem_queue_curr_num
+0x45ba mem_queue_read_ptr
+0x45bb mem_queue_write_ptr
+0x45bc mem_queue_ele
+0x45dc mem_shutter_nv_data
+0x4686 mem_shutter_led_struct_app_led
+0x4686 mem_shutter_led_struct_app_led_type
+0x4687 mem_shutter_led_struct_app_led_blink_count
+0x4688 mem_shutter_led_struct_app_led_gpio
+0x4689 mem_shutter_led_struct_app_led_on_time
+0x468b mem_shutter_led_struct_app_led_off_time
+0x468d mem_shutter_led_struct_app_led_on_callback
+0x468f mem_shutter_led_struct_app_led_off_callback
+0x4691 mem_shutter_power_off_led_style
+0x4691 mem_shutter_power_off_led_style_type
+0x4692 mem_shutter_power_off_led_style_blink_count
+0x4693 mem_shutter_power_off_led_style_gpio
+0x4694 mem_shutter_power_off_led_style_on_time
+0x4696 mem_shutter_power_off_led_style_off_time
+0x4698 mem_shutter_power_off_led_style_on_callback
+0x469a mem_shutter_power_off_led_style_off_callback
+0x469c mem_shutter_soft_swtich_botton_down
+0x469d mem_shutter_soft_swtich_led_struct_temp
+0x46a8 mem_shutter_power_off_timeout
+0x46a9 mem_shutter_power_off_timer
+0x46aa mem_shutter_key_conf0_temp
+0x46ac mem_shutter_led_struct_app_led_gpio_temp
+0x46ad mem_shutter_hard_soft_switch_case_temp
+0x46ae mem_shutter_soft_switch_button_gpio_temp
+0x46af mem_shutter_soft_switch_first_power_on
+0x46b0 mem_shutter_dy_conf
+0x46b1 mem_shutter_1s_timer
+0x46b2 mem_shutter_timer_625us
+0x46b4 mem_rf_init_data_new
+0x46bf mem_key_value_xmem
+0x46c1 mem_shutter_le_hid_map
+0x47a7 mem_shutter_le_uuid_sup
+0x4943 mem_shutter_le_map_len_android
+0x4945 mem_shutter_le_map_len_ios
+0x4947 mem_dy_le_search_service_uuid
+0x4957 mem_iphone_flag
+0x4958 mem_send_data_delay
+0x4959 mem_key_send_clk
+0x495d mem_shutter_key_state0
+0x4967 mem_shutter_key_state1
+0x4971 mem_shutter_key_state2
+0x497b mem_shutter_key_state3
+0x4985 mem_shutter_key_state4
+0x498f mem_shutter_key_state5
+0x4999 mem_shutter_key_state6
+0x49a3 mem_shutter_key_state7
+0x49ad mem_shutter_key_state8
+0x49b7 mem_dy_key0_press
+0x49c1 mem_dy_key1_press
+0x49cb mem_dy_key2_press
+0x49d5 mem_dy_key3_press
+0x49df mem_dy_key4_press
+0x49e9 mem_dy_key5_press
+0x49f3 mem_dy_key6_press
+0x49fd mem_dy_key7_press
+0x4a07 mem_dy_key8_press
+0x4a11 mem_key0_release_new
+0x4a20 mem_key1_release_new
+0x4a2f mem_key2_release_new
+0x4a3e mem_key3_release_new
+0x4a4d mem_key4_release_new
+0x4a5c mem_key5_release_new
+0x4a6b mem_key6_release_new
+0x4a7a mem_key7_release_new
+0x4a89 mem_key8_release_new
+0x4a98 mem_key0_long_press
+0x4a9b mem_key1_long_press
+0x4a9e mem_key2_long_press
+0x4aa1 mem_key3_long_press
+0x4aa4 mem_key4_long_press
+0x4aa7 mem_key5_long_press
+0x4aaa mem_key6_long_press
+0x4aad mem_key7_long_press
+0x4ab0 mem_key8_long_press
+0x4ab3 mem_key0_long_release
+0x4ab6 mem_key1_long_release
+0x4ab9 mem_key2_long_release
+0x4abc mem_key3_long_release
+0x4abf mem_key4_long_release
+0x4ac2 mem_key5_long_release
+0x4ac5 mem_key6_long_release
+0x4ac8 mem_key7_long_release
+0x4acb mem_key8_long_release
+0x4ace mem_combine_key0
+0x4ad0 mem_combine_key1
+0x4ad2 mem_combine_key2
+0x4ad4 mem_combine_key3
+0x4ad6 mem_combine_key4
+0x4ad8 mem_combine_key5
+0x4ada mem_combine_key_state0
+0x4adc mem_combine_key0_press
+0x4ae6 mem_combine_key1_press
+0x4af0 mem_combine_key2_press
+0x4afa mem_combine_key3_press
+0x4b04 mem_combine_key4_press
+0x4b0e mem_combine_key5_press
+0x4b18 mem_combine_key_release
+0x4b22 mem_shutter_move_data
+0x4b26 mem_key0_press_i
+0x4b30 mem_key1_press_i
+0x4b3a mem_key2_press_i
+0x4b44 mem_key3_press_i
+0x4b4e mem_key4_press_i
+0x4b58 mem_key5_press_i
+0x4b62 mem_key6_press_i
+0x4b6c mem_key7_press_i
+0x4b76 mem_key0_release_new_i
+0x4b85 mem_key1_release_new_i
+0x4b94 mem_key2_release_new_i
+0x4ba3 mem_key3_release_new_i
+0x4bb2 mem_key4_release_new_i
+0x4bc1 mem_key5_release_new_i
+0x4bd0 mem_key6_release_new_i
+0x4bdf mem_key7_release_new_i
+0x4bee mem_key8_release_new_i
+0x4bfd mem_key0_long_press_i
+0x4c00 mem_key1_long_press_i
+0x4c03 mem_key2_long_press_i
+0x4c06 mem_key3_long_press_i
+0x4c09 mem_key4_long_press_i
+0x4c0c mem_key5_long_press_i
+0x4c0f mem_key6_long_press_i
+0x4c12 mem_key7_long_press_i
+0x4c15 mem_key8_long_press_i
+0x4c18 mem_key0_long_release_i
+0x4c1b mem_key1_long_release_i
+0x4c1e mem_key2_long_release_i
+0x4c21 mem_key3_long_release_i
+0x4c24 mem_key4_long_release_i
+0x4c27 mem_key5_long_release_i
+0x4c2a mem_key6_long_release_i
+0x4c2d mem_key7_long_release_i
+0x4c30 mem_key8_long_release_i
+0x4c33 mem_key3_release_new_t
+0x4c3d mem_key3_release_new_i_t
+0x4c47 mem_key3_press_count
+0x4c48 mem_shutter_like_timeout
+0x4c49 mem_shutter_key_pressed
+0x4c4a mem_shutter_combine_key_release
+0x4c4b mem_shutter_mousekey_value_list
+0x4e71 mem_shutter_back_count
+0x4e72 mem_shutter_le_conned
+0x4e73 mem_move_config
+0x4e73 mem_shutter_iphone_beyond_x_count
+0x4e74 mem_shutter_iphone_beyond_y_count
+0x4e75 mem_shutter_move_data_x
+0x4e77 mem_shutter_move_data_y
+0x4e79 mem_last_shutter_le_iphone_flag
+0x4e7a mem_move_config_end
+0x4e7a mem_shutter_back_count_cache
+0x4e7b mem_shutter_iphone_beyond_x_cache
+0x4e7c mem_shutter_iphone_beyond_y_cache
+0x4e7d mem_shutter_iphone_move_mid
+0x4e87 mem_shutter_long_key_released_flag
+0x4e88 mem_shutter_move_mid_timer
+0x4e89 mem_shutter_pairing_success
+0x4e8a mem_combine_key_release_value
+0x4e8c mem_last_press_key_value
+0x4e8d mem_shutter_first_move
+0x4e8e mem_move_mode_set
+0x4e8f mem_move_mode_key_index
+0x4e90 mem_move_mode_trigger_enable
+0x4e91 mem_shutter_android_move_mid
+0x4e96 mem_shutter_iphone_up_mid
+0x4ea0 mem_shutter_iphone_like_mid
+0x4eaa mem_shutter_key_num_conf
+0x4eab mem_shutter_dy_key_conf
+0x4eb4 mem_le_dy_adv_data
+0x4ebf mem_le_dy_scan_data
+0x4ecb mem_ble_shutter_dy_interval_min_android
+0x4ed3 mem_ble_shutter_dy_interval_min_ios
+0x4edb mem_shutter_ble_discovery_time_conf
+0x4ee3 mem_queue_dy_each_size
+0x4ee5 mem_shutter_led_on_light_dark_led_conf
+0x4eec mem_shutter_led_off_light_dark_led_conf
+0x4ef3 mem_shutter_reconn_blink_on_time_conf
+0x4ef7 mem_shutter_discovery_blink_on_time_conf
+0x4efb mem_shutter_efuse_start_offset
+0x4efd mem_shutter_efuse_end_offset
+0x4eff mem_initial_move_conf
+0x4eff mem_android_initial_move_x
+0x4f01 mem_android_initial_move_y
+0x4f03 mem_iphone_initial_move_x
+0x4f05 mem_iphone_initial_move_y
+0x4f07 mem_otp_move_config
+0x4f07 mem_otp_shutter_move_data_x
+0x4f09 mem_otp_shutter_move_data_y
+0x4f0b mem_otp_last_shutter_le_iphone_flag
+0x4f0c mem_otp_move_config_end
+0x4f0c mem_otp_write_offset_addr
+0x4f0e mem_otp_read_offset_addr
+0x4f10 mem_otp_read_ios_android_addr
+0x4f12 mem_shutter_le_pairing_handle
+0x4f14 mem_shutter_temp_count
+0x4f16 mem_shutter_first_read_flag
+0x4f17 mem_shutter_valid_data_flag
+0x4f18 mem_shutter_volume_timer
+0x4f19 mem_shutter_link_timer
+0x4f1a mem_shutter_link_data
+0x4f22 mem_shutter_link_data_i
+0x4f2a mem_shutter_link_loop_flag
+0x4f2b mem_shutter_dy_le_enc_timer
+0x4f2c mem_shutter_end
+
Index: output/otp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/otp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/otp.dat	(working copy)
@@ -0,0 +1,5719 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+30
+10
+53
+00
+02
+ee
+30
+ad
+a4
+92
+b2
+ab
+69
+96
+4d
+13
+28
+30
+be
+74
+8c
+46
+13
+1d
+6d
+9c
+09
+25
+5c
+7f
+f7
+78
+b7
+27
+9e
+be
+37
+a7
+d2
+e5
+ac
+d0
+e7
+dc
+43
+38
+f7
+ed
+20
+9c
+98
+9f
+2f
+9c
+73
+63
+73
+1e
+ab
+27
+be
+71
+05
+bc
+fe
+4f
+21
+3c
+63
+a4
+19
+80
+e2
+36
+00
+04
+b1
+dc
+0b
+94
+d8
+98
+e9
+48
+12
+8c
+81
+45
+7c
+77
+88
+93
+75
+6a
+84
+54
+f8
+12
+07
+c1
+c4
+5c
+68
+e8
+be
+76
+24
+40
+18
+a1
+0d
+7f
+9c
+14
+4e
+4b
+46
+cf
+fb
+46
+30
+21
+f7
+d6
+8a
+39
+4d
+ed
+e7
+27
+35
+b3
+f9
+10
+62
+4a
+98
+a8
+9a
+0f
+09
+67
+c7
+f4
+ff
+72
+0e
+be
+fb
+30
+28
+02
+c2
+31
+83
+21
+9c
+1a
+87
+22
+11
+14
+3b
+08
+23
+65
+bf
+55
+e8
+d2
+96
+57
+73
+46
+bf
+17
+ad
+40
+e9
+06
+70
+00
+37
+9d
+fb
+85
+76
+ea
+01
+bf
+6b
+5b
+dd
+c6
+59
+64
+1a
+00
+62
+ef
+fb
+c7
+ad
+c7
+15
+84
+99
+1d
+24
+b8
+c4
+2d
+5c
+7c
+5a
+a0
+59
+16
+87
+f1
+fa
+f0
+69
+cc
+64
+d3
+55
+fe
+64
+c8
+7b
+a1
+be
+8b
+10
+37
+25
+14
+76
+01
+86
+0b
+81
+76
+03
+c0
+6d
+4a
+54
+9d
+e9
+29
+77
+68
+57
+b7
+25
+55
+2d
+d0
+b0
+d0
+d3
+b1
+b5
+38
+0c
+44
+02
+d4
+f2
+8e
+6d
+b3
+03
+b4
+98
+99
+7a
+6a
+f7
+c5
+3c
+09
+af
+e3
+30
+64
+9d
+82
+20
+eb
+a1
+04
+78
+86
+48
+0b
+08
+0d
+2e
+87
+a4
+92
+70
+de
+3a
+98
+5a
+83
+bb
+ca
+0f
+c2
+68
+47
+fa
+79
+28
+5d
+9e
+87
+50
+ac
+5f
+56
+b5
+28
+c3
+cd
+b9
+81
+37
+7d
+47
+d1
+d7
+2e
+10
+52
+f9
+7a
+56
+e3
+65
+73
+fd
+f3
+a5
+8c
+f8
+83
+4b
+62
+c8
+ac
+c5
+1f
+02
+6a
+dd
+b3
+ec
+05
+3a
+d5
+bc
+f9
+a2
+9d
+96
+89
+39
+cb
+af
+a7
+f5
+64
+b8
+17
+4c
+2e
+dc
+bd
+cd
+e3
+4c
+2a
+fd
+7a
+ac
+c2
+fd
+53
+46
+ab
+7e
+3d
+24
+ee
+bf
+f5
+bb
+26
+5a
+1c
+4f
+24
+29
+7c
+00
+dd
+f1
+42
+f4
+6b
+19
+25
+c5
+e0
+e6
+0d
+53
+8b
+b5
+ed
+be
+29
+19
+33
+ad
+00
+49
+52
+b0
+59
+db
+9a
+a7
+93
+2e
+96
+33
+37
+fd
+c7
+50
+10
+32
+a7
+1e
+23
+a4
+c7
+62
+8a
+4f
+ca
+4b
+2e
+3a
+3f
+cd
+8f
+42
+a5
+94
+9e
+ef
+76
+38
+d5
+1e
+a8
+86
+24
+84
+00
+02
+7e
+92
+6b
+10
+5f
+31
+cf
+2b
+f0
+99
+78
+de
+e2
+40
+ab
+9f
+8a
+ad
+ad
+27
+fc
+f7
+a8
+63
+f8
+52
+a1
+4a
+12
+16
+58
+8f
+e9
+ea
+d1
+72
+b9
+c8
+6f
+b2
+6b
+bf
+60
+e5
+59
+f5
+82
+b3
+d9
+42
+0c
+8b
+13
+4b
+0a
+fa
+e4
+e8
+5e
+e4
+dc
+8f
+19
+e9
+c6
+38
+10
+d6
+76
+02
+87
+70
+96
+f5
+5e
+21
+5d
+ad
+ce
+c2
+ed
+da
+a2
+1f
+1f
+ba
+66
+f3
+65
+84
+42
+f3
+d4
+68
+5d
+d5
+d3
+ad
+41
+84
+2b
+f7
+9c
+b8
+7a
+04
+0e
+d2
+dc
+52
+1c
+dd
+e4
+64
+00
+02
+27
+c0
+c9
+04
+7b
+71
+b6
+ce
+fa
+cc
+58
+a8
+0d
+37
+94
+36
+3d
+9b
+73
+f3
+e1
+f3
+56
+6f
+31
+0a
+b6
+0a
+a5
+c3
+dd
+cd
+4d
+b0
+67
+5d
+fa
+61
+bb
+95
+2a
+20
+1e
+0e
+0e
+1e
+0e
+b7
+39
+af
+40
+9d
+b4
+b1
+60
+7a
+fc
+c5
+5c
+8c
+99
+27
+c3
+33
+c6
+46
+0c
+61
+3b
+02
+c4
+7c
+1c
+c7
+88
+be
+4a
+ea
+af
+7a
+d4
+17
+0a
+ed
+42
+54
+c2
+ad
+26
+9c
+35
+0d
+8e
+63
+b0
+f5
+5c
+17
+af
+c5
+fe
+0b
+54
+e3
+27
+25
+50
+7b
+0b
+f5
+d7
+8c
+6d
+92
+47
+8f
+56
+54
+af
+fe
+e7
+34
+3e
+aa
+80
+d3
+b8
+8c
+d6
+07
+0d
+56
+08
+d3
+59
+09
+ab
+ef
+a1
+25
+8f
+a6
+bc
+fc
+9d
+b3
+0e
+b9
+f8
+1b
+51
+68
+36
+9e
+da
+39
+00
+e5
+a3
+d2
+43
+be
+17
+f8
+b5
+fa
+a8
+f3
+f7
+83
+aa
+af
+2b
+1d
+0b
+06
+1a
+eb
+bc
+3b
+4b
+2e
+5e
+10
+d8
+c9
+7c
+e5
+2c
+7e
+2d
+39
+27
+96
+e4
+4a
+1b
+e0
+3f
+7e
+58
+68
+b8
+7e
+87
+bf
+c3
+6b
+92
+91
+2a
+ae
+1e
+55
+74
+f7
+5f
+50
+c7
+6e
+99
+ea
+be
+69
+0b
+ec
+46
+0c
+db
+da
+aa
+40
+ee
+14
+a4
+40
+bd
+70
+78
+5d
+11
+87
+1b
+73
+d3
+8f
+62
+96
+61
+5b
+e9
+08
+4c
+7c
+41
+cc
+d5
+bf
+d0
+fa
+6a
+ad
+3d
+f9
+68
+56
+21
+0e
+ae
+dc
+cd
+b6
+20
+d9
+29
+4a
+4c
+96
+42
+14
+95
+9c
+e5
+46
+e4
+3e
+e4
+c3
+f8
+b9
+bb
+2a
+a8
+c5
+74
+30
+26
+6b
+33
+aa
+2f
+6b
+7c
+8c
+37
+ec
+49
+9b
+03
+69
+b9
+31
+54
+6d
+ce
+9a
+79
+e8
+ca
+f3
+1b
+e6
+d9
+8d
+95
+cc
+e8
+87
+57
+7d
+ec
+88
+c6
+a0
+78
+f3
+9c
+7b
+c1
+1c
+ac
+5f
+41
+51
+a3
+52
+fc
+12
+7a
+dc
+b4
+8e
+7a
+7e
+8b
+83
+d3
+88
+0f
+1a
+06
+66
+5a
+7a
+f9
+41
+e8
+9c
+d8
+ea
+9d
+0a
+61
+f0
+81
+cb
+cc
+fa
+77
+a6
+3f
+ad
+91
+af
+fa
+4b
+6f
+b2
+ab
+6e
+ee
+e8
+e7
+35
+2e
+73
+fd
+c3
+36
+f8
+3b
+1d
+9e
+85
+bd
+ae
+58
+e8
+53
+5b
+fb
+90
+4c
+6a
+54
+18
+e3
+1a
+d0
+4d
+7f
+a5
+ad
+da
+98
+5d
+6c
+e7
+c1
+84
+6e
+c9
+00
+6d
+b5
+2f
+ec
+77
+c9
+78
+c1
+70
+86
+e6
+ca
+1a
+55
+f7
+bd
+73
+1f
+41
+bc
+27
+32
+15
+fa
+a0
+6b
+ba
+63
+68
+e5
+8d
+20
+2b
+ff
+53
+8d
+05
+23
+7f
+42
+18
+63
+34
+f7
+5d
+25
+b9
+c0
+dc
+38
+b3
+b2
+4a
+0c
+3f
+23
+7c
+0d
+14
+2c
+59
+69
+33
+3f
+b9
+a2
+4a
+99
+67
+e1
+0e
+15
+82
+c6
+d0
+3d
+a6
+c5
+91
+25
+f2
+cd
+0f
+4a
+e7
+d2
+43
+e8
+51
+d8
+f4
+4d
+18
+00
+87
+0d
+d0
+15
+c7
+fb
+48
+aa
+d3
+6d
+6c
+16
+02
+f9
+9b
+9a
+45
+46
+a6
+f0
+1b
+a7
+8c
+1d
+b8
+1c
+1b
+dc
+0e
+00
+a5
+1a
+d7
+c9
+a1
+cd
+be
+46
+51
+f4
+70
+d2
+a9
+04
+7c
+8e
+c3
+b9
+b9
+eb
+1a
+94
+58
+1b
+ce
+c0
+7d
+5e
+40
+a4
+35
+4d
+3c
+d5
+7c
+93
+43
+30
+34
+49
+00
+49
+f9
+f9
+4d
+79
+57
+fb
+29
+e8
+22
+ad
+a5
+a5
+7c
+ac
+0c
+0e
+c6
+5c
+8d
+0f
+9a
+c3
+a3
+06
+0e
+19
+73
+9e
+34
+40
+8b
+e3
+6d
+a3
+87
+fb
+52
+81
+c1
+c3
+12
+e2
+50
+c3
+fc
+78
+8f
+b9
+97
+9c
+a6
+81
+03
+d6
+b9
+ce
+15
+55
+e7
+b2
+98
+ff
+e7
+bc
+05
+b6
+14
+8a
+e6
+9f
+ec
+04
+da
+56
+ca
+c0
+98
+9c
+98
+57
+8a
+e9
+d0
+9a
+62
+8d
+8f
+36
+c2
+95
+ca
+b8
+f7
+99
+c3
+17
+88
+97
+ab
+40
+00
+b9
+22
+cd
+85
+00
+36
+32
+03
+90
+b2
+66
+10
+2b
+68
+0f
+ee
+66
+18
+90
+7a
+28
+e7
+57
+f4
+a6
+07
+e3
+7c
+7a
+2a
+30
+d8
+b1
+9c
+9c
+55
+6a
+d1
+e1
+6c
+62
+ba
+1a
+66
+89
+56
+93
+21
+4b
+d0
+d3
+0c
+e3
+4e
+96
+68
+3e
+c2
+5e
+70
+06
+e5
+0a
+f0
+c0
+f4
+46
+2a
+18
+ed
+e0
+97
+09
+a3
+5c
+c6
+c6
+58
+04
+a9
+0b
+2b
+67
+d5
+3f
+ca
+01
+8a
+60
+75
+95
+e2
+1c
+83
+18
+f6
+58
+33
+92
+5b
+c8
+f2
+a8
+8e
+ae
+c7
+33
+b6
+44
+20
+66
+6b
+d4
+f7
+1b
+5b
+e6
+d1
+02
+52
+43
+ae
+71
+64
+05
+f6
+0e
+a8
+9d
+45
+5d
+e6
+24
+e1
+23
+6a
+c8
+4a
+82
+bc
+fb
+9a
+08
+ec
+66
+70
+4a
+5f
+4b
+e9
+c8
+35
+d0
+f6
+c8
+7d
+63
+91
+f5
+3e
+08
+d7
+48
+84
+48
+ee
+13
+c3
+ff
+57
+a9
+f9
+9d
+44
+25
+61
+0b
+e5
+a3
+5b
+3e
+06
+eb
+ee
+9e
+6e
+ff
+ae
+a6
+d7
+c4
+11
+24
+c5
+4e
+b5
+54
+12
+0c
+96
+ad
+91
+6d
+11
+53
+ce
+0b
+47
+8b
+94
+34
+2d
+8e
+0c
+ca
+d1
+7a
+f9
+7c
+39
+7a
+bd
+68
+9d
+b4
+5f
+65
+07
+16
+3f
+55
+0e
+b4
+d4
+d3
+09
+ed
+37
+df
+53
+d1
+40
+d3
+3d
+a0
+55
+08
+55
+e7
+c7
+f9
+f0
+dd
+00
+42
+7e
+66
+c1
+19
+c4
+60
+aa
+86
+4b
+79
+2f
+09
+45
+d6
+ef
+43
+70
+b9
+4e
+67
+3e
+25
+81
+c0
+e9
+15
+d2
+f3
+60
+77
+c3
+b1
+e1
+82
+d6
+07
+a6
+28
+fb
+8e
+78
+4b
+b5
+92
+af
+78
+6a
+e9
+d2
+f6
+9b
+94
+23
+ac
+8e
+eb
+02
+10
+02
+b4
+51
+81
+c6
+a5
+e1
+78
+d5
+e9
+9a
+17
+01
+e0
+cf
+93
+0d
+34
+bf
+6d
+f4
+61
+85
+27
+cf
+e9
+62
+0d
+dc
+dd
+f2
+5f
+57
+a9
+3d
+b9
+5f
+e4
+a5
+ea
+7a
+d6
+fa
+da
+dd
+d4
+90
+69
+e2
+07
+db
+e8
+5b
+d2
+c6
+e5
+ad
+df
+65
+8b
+a6
+05
+43
+60
+c7
+82
+c3
+22
+f2
+6d
+7a
+54
+90
+0d
+48
+fc
+0e
+ac
+66
+7e
+99
+19
+22
+30
+6b
+6f
+ec
+23
+3e
+a1
+73
+40
+c2
+2b
+b5
+47
+44
+f8
+d7
+65
+97
+92
+08
+ee
+4e
+c1
+bf
+a1
+d3
+a2
+15
+fe
+7f
+c4
+14
+78
+fa
+c1
+c3
+6f
+18
+36
+6a
+ed
+8a
+28
+c1
+95
+94
+e0
+3a
+54
+25
+75
+4e
+39
+80
+88
+93
+72
+3a
+1e
+f5
+d8
+73
+38
+d7
+d7
+fe
+11
+2a
+ec
+30
+87
+e7
+cb
+f6
+c0
+ec
+8d
+76
+22
+eb
+ea
+8d
+07
+30
+3c
+14
+78
+13
+18
+61
+3e
+03
+aa
+86
+9f
+2c
+82
+86
+97
+bd
+df
+bf
+58
+a8
+bc
+14
+cd
+7b
+e3
+e6
+ea
+3e
+22
+d6
+57
+83
+79
+02
+5a
+b5
+9c
+32
+b1
+c5
+94
+80
+79
+29
+45
+85
+5d
+f5
+1e
+e8
+26
+f3
+44
+ef
+c4
+44
+c8
+d4
+9b
+6f
+04
+7e
+ef
+00
+7e
+4c
+21
+12
+ea
+45
+06
+a5
+84
+2e
+a0
+e8
+24
+12
+3f
+4c
+5a
+6b
+ac
+f3
+c8
+e1
+8f
+a8
+26
+6d
+76
+46
+a0
+28
+3f
+db
+57
+39
+eb
+62
+8a
+82
+67
+1c
+71
+5b
+c7
+bc
+10
+ee
+53
+be
+26
+03
+58
+5a
+93
+43
+8a
+51
+e7
+26
+44
+ec
+18
+3a
+54
+8b
+af
+60
+7f
+d4
+8d
+d3
+80
+5d
+05
+0a
+d2
+b8
+3c
+f9
+f1
+93
+0d
+70
+bc
+9b
+e3
+09
+00
+cc
+ec
+d0
+ba
+70
+7d
+76
+5f
+73
+a2
+02
+ac
+69
+2c
+46
+04
+7d
+0e
+37
+cc
+0a
+96
+ce
+4a
+cd
+41
+45
+35
+34
+10
+9f
+ed
+c8
+09
+13
+a9
+d1
+b3
+02
+2e
+6e
+05
+b0
+e2
+40
+b8
+b5
+fc
+76
+47
+be
+74
+d3
+4a
+a4
+45
+ca
+a6
+3e
+83
+d4
+e4
+bd
+cb
+49
+9e
+87
+d2
+2a
+a0
+66
+5f
+24
+4f
+21
+d5
+ae
+0a
+72
+19
+9f
+a7
+50
+95
+8c
+33
+5e
+61
+6f
+b5
+c1
+bf
+cf
+70
+60
+10
+cd
+91
+c2
+da
+6e
+44
+8f
+b3
+36
+69
+6f
+41
+32
+1a
+ad
+1b
+f2
+b0
+63
+cd
+0f
+8c
+1c
+f1
+da
+13
+5b
+6d
+8a
+42
+7c
+f9
+1a
+49
+0c
+13
+b8
+c0
+ea
+00
+68
+ad
+0e
+6b
+bf
+e0
+da
+fd
+57
+f5
+41
+bc
+f5
+a0
+ea
+55
+52
+37
+55
+aa
+0c
+63
+ee
+67
+8a
+64
+27
+37
+ba
+a8
+c4
+bd
+fc
+19
+71
+f2
+54
+fd
+98
+c2
+e5
+a0
+99
+72
+7e
+97
+75
+d2
+37
+06
+b4
+61
+22
+e4
+9e
+3d
+1d
+ec
+22
+12
+7b
+ea
+bd
+cc
+7c
+93
+cd
+74
+a3
+48
+f8
+da
+fe
+37
+c2
+31
+25
+c7
+9f
+e8
+1d
+b0
+b9
+6c
+cc
+17
+93
+6b
+88
+28
+5d
+9b
+e0
+43
+6e
+56
+61
+c2
+f2
+1f
+8f
+b7
+f2
+5d
+4d
+c3
+19
+5a
+01
+d0
+0b
+50
+12
+41
+36
+f6
+65
+50
+52
+66
+65
+fb
+8b
+94
+ed
+67
+29
+36
+c5
+5e
+fd
+b2
+30
+fc
+67
+53
+bc
+d0
+82
+a5
+b7
+48
+f7
+af
+26
+a3
+53
+da
+a7
+36
+ff
+9e
+a5
+ab
+2c
+30
+8f
+77
+a2
+69
+95
+7b
+8c
+90
+42
+19
+ac
+3c
+5a
+d6
+f0
+3c
+ac
+52
+e2
+4f
+7d
+63
+23
+ec
+b3
+d1
+2f
+0d
+53
+96
+e8
+d0
+d2
+d6
+80
+0e
+6f
+0c
+5e
+17
+23
+07
+af
+3b
+bd
+4c
+dc
+38
+db
+b2
+ea
+31
+07
+ed
+f0
+27
+99
+ce
+73
+94
+42
+c8
+dd
+4c
+a4
+f4
+c7
+2a
+31
+81
+30
+a9
+8f
+cf
+ee
+f8
+65
+d8
+38
+75
+d9
+46
+5e
+b7
+57
+71
+59
+c1
+9b
+c7
+36
+04
+1d
+fe
+3c
+28
+65
+c0
+9e
+11
+f3
+0e
+02
+80
+18
+3f
+93
+63
+c9
+6b
+af
+f5
+db
+cb
+23
+01
+c6
+62
+67
+ba
+6e
+66
+54
+9f
+70
+47
+ac
+39
+3b
+f8
+0d
+18
+b5
+3b
+89
+a0
+20
+7c
+8f
+e2
+51
+16
+73
+78
+60
+c9
+50
+e1
+02
+a1
+1b
+27
+ec
+f0
+44
+92
+17
+cf
+64
+78
+c9
+fa
+b8
+c2
+07
+3f
+83
+4e
+75
+b6
+07
+42
+8d
+18
+b3
+e5
+30
+4f
+9f
+98
+b0
+73
+f2
+94
+e4
+72
+45
+9e
+35
+2a
+85
+6c
+f8
+ac
+9c
+6f
+5b
+7d
+61
+c5
+e4
+ec
+fa
+8c
+27
+0c
+9c
+c5
+ac
+a6
+44
+9f
+51
+8d
+73
+cf
+74
+d1
+2c
+8b
+7d
+d9
+8d
+f4
+f9
+4c
+dd
+58
+f6
+85
+ef
+d7
+e5
+f5
+06
+26
+02
+70
+9e
+9f
+b4
+be
+34
+32
+75
+fa
+03
+c0
+ee
+1b
+90
+91
+89
+6e
+f7
+30
+1f
+bc
+be
+12
+1c
+3a
+8d
+a6
+a0
+72
+97
+79
+cd
+66
+07
+09
+be
+61
+d3
+73
+f1
+32
+a6
+52
+0a
+a8
+d1
+a2
+f1
+6e
+a8
+a7
+ff
+54
+55
+67
+87
+70
+c7
+95
+09
+e8
+cb
+c8
+47
+35
+a9
+e2
+63
+ee
+e9
+b2
+3b
+6a
+3a
+c9
+8b
+d6
+9a
+5c
+bc
+35
+85
+6d
+88
+87
+0c
+bd
+8c
+56
+92
+bf
+d9
+a1
+63
+d1
+46
+46
+55
+22
+28
+26
+c8
+f6
+6f
+0a
+cf
+5f
+52
+70
+b5
+37
+ac
+47
+96
+b8
+a0
+e4
+a3
+c9
+55
+3b
+81
+ee
+56
+b1
+40
+5c
+b1
+ac
+fb
+1e
+43
+db
+a8
+8d
+7a
+fb
+fa
+a9
+b6
+52
+69
+4c
+81
+f5
+fc
+c0
+96
+af
+1a
+78
+0f
+a5
+e4
+27
+97
+09
+74
+59
+97
+98
+58
+16
+1e
+00
+90
+38
+6a
+f5
+22
+b5
+fb
+8c
+f1
+c2
+25
+15
+6e
+56
+05
+10
+74
+19
+77
+d5
+f5
+b3
+cc
+7f
+c4
+96
+db
+ce
+a1
+0a
+50
+af
+2f
+3d
+9a
+18
+52
+81
+4f
+1f
+9a
+b3
+ba
+03
+90
+d9
+64
+d9
+15
+b1
+34
+9f
+72
+c8
+eb
+77
+ef
+2a
+36
+27
+58
+dd
+5f
+88
+33
+04
+bc
+4d
+ac
+a2
+ae
+c3
+b4
+e2
+1b
+fc
+b6
+6b
+fe
+d9
+9b
+b9
+ec
+e8
+37
+bd
+93
+4d
+9f
+ff
+da
+0f
+05
+84
+31
+b8
+d4
+db
+20
+0e
+6b
+d6
+c1
+95
+e8
+38
+53
+5a
+08
+6d
+db
+7a
+6b
+0d
+c8
+e0
+a4
+ac
+b0
+48
+c1
+23
+d4
+3c
+71
+6b
+0c
+64
+d7
+a5
+47
+6b
+25
+f1
+cc
+ee
+72
+41
+b8
+02
+c2
+a5
+18
+94
+3f
+6a
+1e
+d8
+bd
+2e
+36
+1f
+c9
+44
+76
+bd
+bf
+a5
+c4
+3d
+0d
+f6
+f7
+b1
+d6
+d6
+86
+ac
+9e
+be
+28
+41
+d3
+5b
+7c
+53
+da
+ca
+bd
+94
+60
+9d
+20
+e9
+b0
+94
+6a
+af
+68
+7d
+7b
+20
+14
+f7
+22
+61
+b7
+04
+f8
+70
+17
+0a
+7a
+44
+8b
+ff
+f7
+fb
+53
+50
+75
+0c
+59
+e7
+b4
+a5
+e9
+de
+d4
+93
+8c
+c4
+d5
+9e
+2f
+53
+ec
+11
+7e
+2e
+34
+c2
+b7
+aa
+57
+b2
+0e
+3a
+06
+c0
+9b
+9c
+ea
+75
+19
+64
+4a
+4e
+10
+2d
+04
+54
+58
+be
+25
+c1
+cb
+7f
+2d
+31
+d6
+f2
+58
+8c
+4b
+fa
+82
+82
+f2
+61
+9d
+ec
+6f
+12
+ca
+58
+09
+ac
+74
+fc
+45
+54
+fc
+1c
+2f
+2d
+04
+21
+cf
+2b
+e9
+0f
+01
+67
+8e
+98
+38
+ff
+83
+f3
+37
+a2
+7d
+0e
+46
+11
+c3
+cf
+8f
+d5
+07
+09
+51
+4b
+fa
+3f
+ce
+bb
+64
+24
+24
+ca
+b9
+de
+05
+7d
+87
+54
+4e
+7d
+4a
+e9
+48
+56
+66
+5c
+a7
+dd
+50
+55
+2b
+d6
+dc
+6d
+21
+37
+78
+ab
+83
+23
+0b
+a3
+cd
+94
+95
+e1
+55
+11
+45
+1c
+18
+f3
+86
+3c
+ac
+20
+f9
+f2
+69
+a6
+6c
+3d
+7b
+3d
+13
+00
+ad
+5f
+f3
+39
+ef
+57
+21
+90
+01
+2c
+fd
+47
+8f
+9a
+3e
+f2
+0f
+79
+33
+e0
+63
+3a
+af
+39
+dc
+97
+46
+a2
+1c
+85
+4f
+dd
+bd
+37
+74
+13
+18
+a3
+74
+7e
+15
+44
+c9
+f7
+d7
+92
+d0
+59
+07
+a3
+9e
+c0
+67
+d9
+03
+4e
+69
+b8
+1a
+9d
+e5
+38
+88
+61
+30
+7a
+96
+2e
+53
+57
+a2
+53
+03
+1b
+1c
+17
+72
+c3
+02
+35
+8a
+9e
+92
+fd
+5e
+24
+37
+62
+88
+e7
+21
+bd
+e0
+e6
+87
+48
+a6
+b1
+ce
+28
+14
+3c
+2d
+9a
+d4
+06
+7c
+cb
+c4
+1f
+bd
+b6
+37
+f4
+6e
+0f
+84
+dd
+3e
+21
+ee
+3b
+18
+32
+6e
+7c
+3f
+f5
+81
+66
+71
+81
+66
+39
+90
+e7
+8c
+e7
+69
+a1
+b2
+33
+e7
+8b
+4c
+83
+8e
+28
+08
+52
+69
+de
+fe
+2f
+df
+9f
+33
+93
+f6
+43
+2c
+ff
+fe
+e8
+ff
+59
+41
+8c
+ca
+b8
+58
+cc
+de
+85
+d9
+ab
+08
+7f
+ba
+d2
+bf
+00
+49
+3c
+4d
+5d
+13
+a7
+42
+47
+da
+c9
+16
+9e
+f3
+3a
+91
+79
+b2
+d3
+45
+14
+1d
+c9
+8e
+63
+bb
+d8
+bf
+1f
+32
+f0
+82
+47
+27
+f4
+ed
+1e
+2a
+c1
+b8
+1b
+4d
+fa
+8e
+1f
+4a
+86
+71
+92
+e4
+0a
+6f
+1d
+54
+1a
+05
+17
+31
+ca
+96
+6b
+6f
+0c
+ef
+ad
+c7
+d4
+5a
+3c
+a5
+ba
+1d
+4c
+43
+dc
+ca
+89
+79
+2e
+53
+d4
+89
+84
+38
+9f
+15
+44
+3d
+69
+fd
+d1
+f6
+33
+5d
+a4
+10
+0a
+fc
+ea
+54
+d8
+7d
+3c
+d6
+bf
+b7
+0f
+85
+33
+ba
+70
+f5
+bc
+c8
+39
+8b
+04
+9f
+0d
+c8
+7a
+a2
+fe
+09
+5d
+e5
+9b
+be
+5c
+05
+9b
+59
+5b
+97
+1f
+72
+c3
+a1
+6c
+60
+d9
+51
+2f
+e4
+8c
+eb
+6a
+5c
+70
+20
+6b
+81
+4c
+fd
+79
+b0
+d4
+e9
+4e
+20
+5b
+c0
+85
+a5
+6c
+d4
+1a
+61
+19
+b5
+81
+5a
+4c
+3d
+6b
+01
+c1
+ed
+0c
+26
+73
+27
+07
+fd
+72
+ff
+32
+45
+43
+b8
+d2
+57
+96
+ed
+7f
+97
+3f
+67
+b8
+18
+fc
+f7
+91
+6a
+0b
+4b
+d8
+72
+80
+d5
+e9
+2b
+8b
+1d
+76
+f6
+29
+05
+c3
+16
+f3
+d3
+6a
+9c
+a1
+d8
+f2
+0a
+34
+b5
+15
+5a
+f9
+a8
+9a
+18
+75
+b6
+fc
+94
+ef
+8f
+d2
+b3
+93
+d1
+7b
+23
+d4
+9f
+09
+fd
+c9
+4f
+eb
+c3
+44
+1a
+fa
+20
+34
+68
+f2
+f5
+77
+3c
+24
+49
+db
+40
+ad
+eb
+2b
+95
+57
+3f
+09
+bf
+d9
+47
+be
+1d
+e1
+d2
+5b
+e8
+0c
+ae
+9b
+88
+76
+9c
+ca
+bb
+9d
+1a
+b1
+de
+8b
+99
+24
+33
+93
+26
+1f
+78
+a1
+68
+80
+7e
+01
+3f
+4d
+d0
+74
+10
+fd
+06
+fb
+e9
+0a
+ca
+e3
+0a
+43
+ef
+b0
+e9
+e9
+bf
+8d
+58
+ad
+7d
+39
+7f
+50
+c1
+3b
+96
+fa
+d4
+21
+7c
+90
+e6
+55
+2b
+f2
+ff
+6e
+62
+5c
+24
+6f
+c0
+ef
+aa
+42
+3a
+c1
+f6
+a2
+be
+4b
+90
+3b
+d7
+c8
+31
+fd
+a8
+0d
+6d
+a4
+37
+97
+3a
+e6
+ef
+5c
+21
+13
+dc
+52
+93
+00
+1b
+9b
+fa
+10
+0b
+e6
+be
+f9
+a5
+51
+58
+37
+ef
+5d
+e3
+e1
+7a
+1d
+3b
+e7
+aa
+26
+7d
+4d
+a7
+8a
+3d
+dd
+d5
+62
+35
+d9
+f4
+d4
+de
+07
+2e
+ef
+99
+a6
+4a
+04
+e5
+d6
+e4
+19
+2c
+30
+f0
+35
+c1
+09
+98
+dc
+5e
+24
+32
+03
+39
+18
+80
+de
+dd
+0b
+11
+28
+2e
+e7
+fe
+5c
+9a
+1a
+a5
+cf
+06
+39
+c7
+14
+84
+9b
+1e
+6d
+11
+4f
+22
+23
+38
+b9
+81
+7a
+d8
+37
+c9
+76
+d1
+38
+db
+b2
+fb
+cb
+3f
+a1
+a2
+ec
+41
+ef
+d9
+03
+fb
+22
+53
+c2
+5d
+1d
+06
+35
+e3
+07
+12
+38
+36
+72
+da
+75
+22
+e1
+dd
+19
+15
+bd
+84
+e4
+40
+bb
+98
+60
+b5
+82
+4d
+e8
+33
+b4
+ec
+86
+45
+80
+90
+82
+64
+c5
+1c
+6d
+83
+64
+23
+07
+99
+18
+e3
+79
+c5
+53
+cf
+d5
+26
+fb
+6a
+52
+99
+ed
+16
+0e
+37
+ef
+dd
+aa
+5f
+27
+0a
+3e
+9f
+99
+55
+56
+2d
+e3
+4e
+a5
+c5
+c2
+3e
+01
+2e
+2d
+2e
+9c
+5d
+a2
+1f
+a3
+6b
+7f
+6d
+7a
+e4
+dd
+a8
+3a
+53
+50
+f5
+54
+4c
+cb
+cf
+02
+50
+57
+e3
+7d
+e1
+a1
+6b
+a6
+f4
+9b
+52
+95
+a1
+19
+8f
+2c
+2a
+22
+88
+e2
+18
+2b
+97
+69
+4c
+3f
+33
+67
+78
+22
+f5
+e2
+be
+84
+0e
+9e
+28
+d5
+6c
+3d
+bd
+73
+d6
+8d
+26
+ac
+8d
+75
+8e
+a6
+21
+b6
+94
+02
+5c
+55
+eb
+a4
+58
+61
+08
+85
+b5
+75
+4f
+2c
+9f
+20
+35
+6f
+f2
+4e
+07
+4d
+bd
+8e
+53
+a4
+68
+13
+61
+ee
+d2
+75
+a7
+22
+b2
+1b
+ad
+30
+7d
+5d
+9b
+1c
+85
+9d
+87
+2d
+ff
+18
+bd
+1b
+bb
+67
+a0
+e8
+bd
+89
+b2
+6a
+8f
+03
+7e
+d0
+ab
+35
+94
+56
+c4
+17
+3b
+d0
+f7
+3e
+92
+c8
+62
+54
+9a
+03
+3e
+dc
+3a
+84
+b5
+5a
+ee
+e9
+ae
+aa
+4f
+db
+f8
+ff
+20
+fa
+69
+84
+ec
+b9
+cb
+07
+4b
+b2
+e5
+83
+d5
+f5
+f6
+12
+4b
+5f
+ec
+e1
+cb
+28
+ce
+34
+10
+42
+f8
+ab
+e6
+b8
+16
+bc
+57
+6a
+01
+ca
+4f
+bb
+78
+d4
+b8
+b5
+13
+03
+82
+66
+c3
+03
+d8
+dc
+1f
+34
+6f
+93
+f1
+39
+9b
+0c
+ba
+ba
+1c
+4f
+09
+73
+40
+9c
+a2
+f8
+6f
+0a
+53
+58
+57
+9d
+5b
+98
+a2
+4a
+ae
+ec
+55
+f4
+d1
+96
+41
+2c
+9d
+c1
+70
+25
+9a
+8c
+f8
+e5
+fc
+45
+f9
+5b
+bb
+79
+84
+82
+bf
+b2
+be
+82
+00
+81
+ca
+a9
+03
+38
+fd
+7d
+c3
+ec
+fc
+64
+42
+b1
+a7
+3e
+fe
+19
+e0
+63
+57
+c9
+e3
+ac
+35
+50
+83
+b0
+66
+0a
+50
+8c
+60
+9c
+6d
+00
+16
+bb
+40
+2c
+2b
+1d
+87
+93
+2b
+cd
+72
+61
+14
+f1
+0f
+b0
+7c
+db
+bf
+3d
+13
+de
+83
+15
+ab
+36
+e0
+97
+7f
+c2
+7f
+8d
+d7
+90
+6d
+a5
+cc
+71
+3d
+73
+a2
+0b
+40
+f9
+2c
+d6
+ba
+8b
+78
+b2
+51
+a3
+7c
+44
+d7
+40
+d0
+89
+8a
+58
+bd
+22
+5b
+7c
+d2
+92
+cc
+dc
+e0
+1b
+4e
+93
+5c
+f5
+93
+a4
+4f
+1e
+b8
+ff
+aa
+55
+40
+00
+00
+40
+01
+00
+00
+04
+20
+01
+00
+c0
+19
+5a
+c2
+52
+00
+04
+00
+10
+04
+00
+00
+00
+08
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+20
+04
+00
+00
+00
+00
+00
+08
+00
+aa
+55
+08
+00
+8e
+48
+00
+69
+05
+01
+00
+03
+0f
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+94
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+02
+00
+e6
+4a
+05
+01
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+0d
+00
+5f
+47
+0c
+09
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+0e
+00
+6c
+43
+1f
+0c
+09
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+0c
+00
+6d
+42
+0b
+42
+54
+20
+4b
+45
+59
+42
+4f
+41
+52
+44
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+01
+00
+b1
+48
+01
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+64
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+64
+aa
+55
+01
+00
+53
+46
+64
+aa
+55
+02
+00
+4f
+46
+58
+02
+aa
+55
+02
+00
+1e
+47
+70
+17
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+02
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+01
+7f
+1f
+01
+7f
+1e
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+00
+aa
+55
+06
+00
+95
+4a
+ff
+ff
+ff
+ff
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+03
+02
+aa
+55
+02
+00
+f4
+43
+10
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+01
+00
+14
+49
+81
+aa
+55
+01
+00
+13
+49
+ff
+aa
+55
+02
+00
+16
+49
+81
+80
+aa
+55
+01
+00
+15
+49
+ff
+aa
+55
+04
+00
+18
+49
+81
+81
+ff
+ff
+aa
+55
+03
+00
+10
+49
+0b
+0a
+ff
+aa
+55
+01
+00
+0f
+49
+0c
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c1
+85
+84
+83
+82
+81
+80
+c7
+c6
+c4
+c3
+aa
+55
+1d
+00
+1f
+49
+06
+07
+08
+15
+14
+13
+12
+11
+84
+10
+0f
+0e
+0d
+c2
+c3
+c4
+c7
+80
+81
+85
+c6
+c5
+82
+83
+ff
+ff
+ff
+ff
+ff
+aa
+55
+88
+00
+c7
+49
+00
+00
+00
+00
+e6
+00
+7f
+3e
+14
+2b
+04
+29
+1d
+00
+35
+1e
+1a
+39
+16
+00
+1b
+00
+3a
+1f
+08
+3c
+07
+3d
+06
+00
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+00
+2e
+25
+12
+40
+0f
+00
+37
+00
+41
+26
+13
+2f
+33
+34
+00
+38
+2d
+27
+00
+00
+e0
+e3
+00
+e7
+00
+45
+00
+2a
+31
+00
+28
+00
+42
+43
+00
+00
+00
+2c
+44
+51
+4c
+00
+00
+00
+00
+00
+00
+4f
+00
+00
+00
+00
+00
+52
+00
+50
+00
+00
+00
+e1
+e5
+00
+00
+00
+00
+00
+00
+e2
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+0f
+00
+84
+4a
+00
+af
+3a
+3b
+3c
+3d
+ad
+ab
+ec
+ee
+ed
+eb
+e9
+ea
+a9
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+06
+03
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+3e
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+d5
+7c
+24
+a9
Index: output/program.lis
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/program.lis	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/program.lis	(working copy)
@@ -0,0 +1,1358 @@
+              include "bt_format "
+              org 0x0000
+0000 c284001d bbit1 8 ,pf_patch_ext 
+0001 c0000038 beq patch00_0 ,p_soft_reset 
+0002 c00d006c beq patch03_2 ,p_initialize_radio_cont 
+0003 c0128046 beq patch04_5 ,p_lpm_sleep 
+0004 c01400ad beq patch05_0 ,p_lpm_dispatch 
+0005 c01f02a0 beq patch07_6 ,p_keyboard_setting_config_next 
+0006 c01f82a3 beq patch07_7 ,p_keyboard_load_info_check 
+0007 c02000f1 beq patch08_0 ,p_keyboard_store_device_info 
+0008 c02181fa beq patch08_3 ,p_keyboard_bb_event_timer 
+0009 c02203e4 beq patch08_4 ,p_keyboard_adc_vol_init 
+000a c024839d beq patch09_1 ,p_keyboard_idle 
+000b c02580fc beq patch09_3 ,p_keyboard_work_start 
+000c c0260100 beq patch09_4 ,p_kscan_dispatch 
+000d c0270229 beq patch09_6 ,p_keyboard_keyvalue_chang 
+000e c0288273 beq patch0a_1 ,p_keyboard_keyvalue_fn_replace_press 
+000f c02b029a beq patch0a_6 ,p_keyboard_long_button_bt_discovery 
+0010 c02b83c8 beq patch0a_7 ,p_keyboard_24g_start_pair_mode 
+0011 c02c82ff beq patch0b_1 ,p_keyboard_motion_data_check 
+0012 c02e0302 beq patch0b_4 ,p_keyboard_value_tpye_consumer_set 
+0013 c02f0176 beq patch0b_6 ,p_keyboard_lpm_before_common 
+0014 c03502ae beq patch0d_2 ,p_keyboard_le_parse_att 
+0015 c03e0395 beq patch0f_4 ,p_keyboard_app_enter_hibernate 
+0016 c04103ee beq patch10_2 ,p_mouse_adc_bat_percent_lowpower_out 
+0017 c051c7fb beq patch14_3 ,keyboard_24g_hibernate_set 
+0018 c0748077 beq patch1d_1 ,p_otp_write 
+0019 c0750074 beq patch1d_2 ,p_otp_read_data 
+001a c06780bc beq patch19_7 ,p_keyboard_init 
+001b c07d00a9 beq patch1f_2 ,p_gpio_set_wake_by_current_state 
+001c 2020233e branch assert 
+
+pf_patch_ext:
+001d c17f8000 rtneq patch3f_7 
+001e c0568054 beq patch35_5 ,p_g24_pair_sm_common 
+001f c05e8057 beq patch37_5 ,p_g24_reconn_dispatch_next 
+0020 c06103c7 beq patch38_2 ,p_g24_transmit_no_interrupt 
+0021 c0798023 beq patch3e_3 ,p_initialize_radio2 
+0022 2020233e branch assert 
+
+p_initialize_radio2:
+0023 37d98200 until null ,lpo_edge 
+0024 708a8660 jam 0x60 ,0x8a86 
+0025 708a8b3b jam 0x3b ,0x8a8b 
+0026 2040229d call dpll_on 
+0027 70804300 jam 0 ,core_config 
+0028 70804205 jam clksel_dpll ,core_clksel 
+0029 58557474 setarg 0x557474 
+002a 67f18968 store 3 ,0x8968 
+002b 7089606e jam 0x6e ,0x8960 
+002c 20402135 call rx_dcoc 
+002d 20402287 call rfpll_aac_ghpc 
+002e 20402281 call set_xtal_cap 
+002f 7041480c jam system_clk_12m ,mem_system_clk 
+0030 708a3006 jam 0x06 ,0x8a30 
+0031 708a32dd jam 0xdd ,0x8a32 
+0032 708a88e0 jam 0xe0 ,0x8a88 
+0033 708a8c2d jam 0x2d ,0x8a8c 
+0034 708a3178 jam 0x78 ,0x8a31 
+0035 20406f53 call sadc_calibration 
+0036 204022cb call dpll_ring_ibias_calc 
+0037 20206ac9 branch set_bistfix_save_patchram 
+
+p_soft_reset:
+0038 2435803b nbranch p_soft_reset_next ,wake 
+0039 37d98200 until null ,lpo_edge 
+003a 37d98200 until null ,lpo_edge 
+
+p_soft_reset_next:
+003b 20403e9a call keyboard_wakeup_from_power_check 
+003c 24342002 nbranch soft_reset + 1 ,user 
+003d 6fe0c88d fetch 1 ,mem_power_on_flag 
+003e 203a2002 branch soft_reset + 1 ,blank 
+003f 6fe0c90f fetch 1 ,mem_keyboard_pb_button_gpio 
+0040 c07fa002 beq ui_button_gpio_disable ,soft_reset + 1 
+0041 1fe20e00 copy pdata ,queue 
+0042 6fe2067b fetch 4 ,mem_saved_gpio_in 
+0043 afec0000 qisolate0 pdata 
+0044 2040c69b call keyboard_pb_set ,true 
+0045 20202002 branch soft_reset + 1 
+
+p_lpm_sleep:
+0046 6fe143f2 fetch 2 ,mem_cb_before_lpm_sleep 
+0047 20407d7b call callback_func 
+0048 6fe240ad fetch 4 ,mem_sleep_counter_all 
+0049 9840fe00 iadd temp ,pdata 
+004a 67e240ad store 4 ,mem_sleep_counter_all 
+004b 204023d7 call lpm_save_context 
+004c 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
+004d 79207e04 set1 lpm_doze_en_bit ,pdata 
+004e 204023c3 call lpm_write_sel_hv 
+004f 2455a3ad ncall lpm_preon_counter ,wake 
+0050 37d98200 until null ,lpo_edge 
+0051 1b227e00 copy clkn ,pdata 
+0052 67e340b1 store 6 ,mem_sleep_clkn 
+0053 20202413 branch lpm_sleep_skip_cb_function + 10 
+
+p_g24_pair_sm_common:
+0054 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
+0055 207a0000 rtn blank 
+0056 202032ad branch g24_pair_sm_common + 12 
+
+p_g24_reconn_dispatch_next:
+0057 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+0058 1fe17ee0 and_into 0xe0 ,pdata 
+0059 203a005e branch p_keyboard_g24_reconn_dispatch_next ,blank 
+005a 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+005b 1fe0fe01 increase 1 ,pdata 
+005c 67e145f7 store 2 ,mem_24g_reconn_count 
+005d 20600000 rtn 
+
+p_keyboard_g24_reconn_dispatch_next:
+005e 20403557 call g24_reconn_data_prep 
+005f 2040362a call g24_transmit_receive_ack 
+0060 242c355e nbranch g24_reconn_device_fail ,sync 
+0061 2437b55e nbranch g24_reconn_device_fail ,user3 
+0062 20400064 call p_keyboard_g24_ackpayload_parse 
+0063 20203540 branch g24_reconn_dispatch_next + 5 
+
+p_keyboard_g24_ackpayload_parse:
+0064 20403647 call g24_ackpayload_parse 
+0065 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
+0066 2fe1f008 compare 0x08 ,pdata ,0xf8 
+0067 24608000 nrtn true 
+0068 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
+0069 c07fc7fb beq 0xff ,keyboard_24g_hibernate_set 
+006a 67e0c70d store 1 ,mem_keyboard_led_status 
+006b 20600000 rtn 
+
+p_initialize_radio_cont:
+006c 37d98200 until null ,lpo_edge 
+006d 7089460d jam 0x0d ,0x8946 
+006e 70896f10 jam 0x10 ,0x896f 
+006f 708a13cd jam 0xcd ,0x8a13 
+0070 6ff08a06 fetch 1 ,0x8a06 
+0071 1fe17efc and pdata ,0xfc ,pdata 
+0072 67f08a06 store 1 ,0x8a06 
+0073 20202255 branch initialize_radio_cont + 6 
+
+p_otp_read_data:
+0074 20406b28 call enable_otp_read 
+0075 20406b63 call otp_read_data1 
+0076 20206b26 branch otp_disable_chgpump 
+
+p_otp_write:
+0077 20406b22 call otp_enable_chgpump65 
+0078 20406b2f call otp_set_addr 
+0079 20406b29 call otp_reset 
+
+p_otp_program:
+007a e8408011 ifetcht 1 ,rega 
+007b 1a20a201 increase 1 ,rega 
+007c 18000e00 force 0 ,queue 
+
+p_otp_program_bit:
+007d 793f8022 set0 mark_otp_write ,mark 
+
+p_otp_program_bit2:
+007e a84c0000 qisolate0 temp 
+007f 202080a1 branch p_otp_skip_0 ,true 
+0080 6ff08046 fetch 1 ,core_otp_din 
+0081 79207e06 set1 6 ,pdata 
+0082 79207e07 set1 7 ,pdata 
+0083 67f08046 store 1 ,core_otp_din 
+0084 70804702 jam 0x02 ,core_otp_ctrl 
+0085 70804782 jam 0x82 ,core_otp_ctrl 
+0086 793ffe07 set0 7 ,pdata 
+0087 67f08046 store 1 ,core_otp_din 
+0088 7080478a jam 0x8a ,core_otp_ctrl 
+0089 2000000b nop 11 
+008a 708047ca jam 0xca ,core_otp_ctrl 
+008b 20000021 nop 33 
+008c 7080474a jam 0x4a ,core_otp_ctrl 
+008d 2000002c nop 44 
+008e 708047ca jam 0xca ,core_otp_ctrl 
+008f 20000016 nop 22 
+0090 7080478a jam 0x8a ,core_otp_ctrl 
+0091 20000021 nop 33 
+0092 70804782 jam 0x82 ,core_otp_ctrl 
+0093 20000001 nop 1 
+0094 70804792 jam 0x92 ,core_otp_ctrl 
+0095 2000000a nop 10 
+0096 708047b2 jam 0xb2 ,core_otp_ctrl 
+0097 6ff08007 fetch 1 ,core_otp_rdata 
+0098 70804792 jam 0x92 ,core_otp_ctrl 
+0099 20000001 nop 1 
+009a 70804782 jam 0x82 ,core_otp_ctrl 
+009b 20000001 nop 1 
+009c afec0000 qisolate0 pdata 
+009d 2020807d branch p_otp_program_bit ,true 
+009e c51100a1 bmark1 mark_otp_write ,p_otp_skip_0 
+009f 79200022 set1 mark_otp_write ,mark 
+00a0 2020007e branch p_otp_program_bit2 
+
+p_otp_skip_0:
+00a1 6ff10044 fetch 2 ,core_otp_addr 
+00a2 1fe0fe01 increase 1 ,pdata 
+00a3 67f10044 store 2 ,core_otp_addr 
+00a4 18e08e01 increase 1 ,queue 
+00a5 28e01e08 compare 8 ,queue ,0xf 
+00a6 2420807d nbranch p_otp_program_bit ,true 
+00a7 c200007a loop p_otp_program 
+00a8 20206b26 branch otp_disable_chgpump 
+
+p_gpio_set_wake_by_current_state:
+00a9 79200407 set1 gpio_active_bit ,temp 
+00aa 20406ee0 call gpio_get_bit 
+00ab 7d208407 nsetflag true ,gpio_active_bit ,temp 
+00ac 20206eac branch gpio_set_wake 
+
+p_lpm_dispatch:
+00ad 204023f0 call lpo_calibration 
+00ae 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+00af 207a0000 rtn blank 
+00b0 20600000 rtn 
+00b1 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
+00b2 247a0000 nrtn blank 
+00b3 6fe0ca7b fetch 1 ,mem_keyboard_control_key_flag 
+00b4 247a0000 nrtn blank 
+00b5 6fe0c720 fetch 1 ,mem_device_direct_timer 
+00b6 247a0000 nrtn blank 
+00b7 6fe14750 fetch 2 ,mem_device_discovery_timer 
+00b8 247a0000 nrtn blank 
+00b9 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+00ba 247a0000 nrtn blank 
+00bb 20202467 branch lpm_dispatch + 4 
+
+p_keyboard_init:
+00bc 20403717 call app_param_init 
+00bd 20407384 call enable_authrom 
+00be 204000cc call p_keyboard_setting_config 
+00bf 204001a2 call p_keyboard_gpio_init 
+00c0 204000c2 call p_keyboard_low_vol_mult_set 
+00c1 20203eb2 branch keyboard_init + 4 
+
+p_keyboard_low_vol_mult_set:
+00c2 6fe0c678 fetch 1 ,mem_device_flag 
+00c3 c08000c6 bne mode_24g_device ,p_keyboard_low_vol_mult_ble_set 
+00c4 204035d3 call g24_interval_param_8ms 
+00c5 202058fc branch mouse_24g_long_sleep_set 
+
+p_keyboard_low_vol_mult_ble_set:
+00c6 580000a0 setarg 160 
+00c7 204040f9 call keyboard_mult_auto_get 
+00c8 6fe0c422 fetch 1 ,mem_adc_power_flag 
+00c9 c4000000 rtnbit0 0 
+00ca 58000050 setarg 80 
+00cb 202040f9 branch keyboard_mult_auto_get 
+
+p_keyboard_setting_config:
+00cc 204000d4 call p_keyboard_gpio_drive_strength_init 
+00cd 20758000 rtn wake 
+00ce 204035c8 call g24_transmit_init 
+00cf 2040323a call g24_chmap_param_init 
+00d0 204000de call p_keyboard_param_init 
+00d1 7040a60a jam 0x0a ,mem_lpm_overhead 
+00d2 204000dc call p_keyboard_device_led_all_off 
+00d3 20203ec2 branch keyboard_setting_config + 5 
+
+p_keyboard_gpio_drive_strength_init:
+00d4 6fe14948 fetch 2 ,mem_kb_row_ptr 
+00d5 1fe22400 copy pdata ,regb 
+00d6 df200008 arg 8 ,loopcnt 
+
+p_keyboard_gpio_drive_strength_loop:
+00d7 e8408012 ifetcht 1 ,regb 
+00d8 20400400 call p_gpio_set_ds_bit 
+00d9 1a40a401 increase 1 ,regb 
+00da c20000d7 loop p_keyboard_gpio_drive_strength_loop 
+00db 20600000 rtn 
+
+p_keyboard_device_led_all_off:
+00dc 20404184 call keyboard_low_voltage_led_off 
+00dd 20204162 branch keyboard_device_led_all_off + 1 
+
+p_keyboard_param_init:
+00de 20403ef4 call keyboard_compare_addr_init 
+00df 204000e1 call p_keyboard_param_common_init 
+00e0 20203edd branch keyboard_param_init + 2 
+
+p_keyboard_param_common_init:
+00e1 58009000 setarg mouse_ble_att_list_addr 
+00e2 67e142f9 store 2 ,mem_ui_le_uuid_table 
+00e3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00e4 c291e80c bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
+00e5 580095b8 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
+00e6 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+00e7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00e8 c290680c bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
+00e9 c290e80c bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
+00ea 580094fc setarg keyboard_ble_hid_map_magic_keyboard_addr 
+00eb 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+00ec 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00ed c291680c bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
+00ee 58004ae8 setarg mem_keyboard_le_table 
+00ef 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+00f0 2020680c branch hid_device_param_common_init 
+
+p_keyboard_store_device_info:
+00f1 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00f2 c28780f4 bbit1 keyboard_enable_otp ,p_keyboard_store_otp_device_info 
+00f3 20203fd8 branch keyboard_store_device_info + 1 
+
+p_keyboard_store_otp_device_info:
+00f4 6fe14abd fetch 2 ,mem_otp_read_retention_offset 
+00f5 68494abf fetcht 2 ,mem_otp_read_retention_max_size 
+00f6 98467c00 isub temp ,null 
+00f7 20610000 rtn positive 
+00f8 6fe0c678 fetch 1 ,mem_device_flag 
+00f9 c0003fe1 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+00fa c000bfeb beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+00fb 20600000 rtn 
+
+p_keyboard_work_start:
+00fc 58000100 setarg 0x0100 
+00fd 67e140a4 store 2 ,mem_lpm_interval 
+00fe 7040a60c jam 0x0c ,mem_lpm_overhead 
+00ff 2020430f branch keyboard_start_work + 1 
+
+p_kscan_dispatch:
+0100 20400103 call p_keyboard_keyscan 
+0101 20400397 call p_keyboard_key_process 
+0102 20204333 branch kscan_dispatch + 3 
+
+p_keyboard_keyscan:
+0103 204001a2 call p_keyboard_gpio_init 
+0104 58000000 setarg 0 
+0105 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0106 d8c0494e arg mem_keyscan_value_current ,contr 
+0107 d8a04963 arg mem_keyscan_value_check ,contw 
+0108 df200014 arg 20 ,loopcnt 
+0109 20407cdc call memcpy 
+010a 204043af call keyboard_stb_state_low 
+010b 5800494e setarg mem_keyscan_value_current 
+010c 67e14998 store 2 ,mem_keyscan_value_ptr 
+010d 58004ada setarg mem_keyscan_exmcu_value_new 
+010e 67e1499a store 2 ,mem_keyscan_exmcu_value_ptr 
+010f 204043ad call keyboard_stb_state_high 
+0110 204043ab call keyboard_clk_input 
+
+p_keyboard_keyscan_exmcu_start_check:
+0111 6fe1499e fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0112 1fe0fe01 increase 1 ,pdata 
+0113 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0114 c2848103 bbit1 9 ,p_keyboard_keyscan 
+0115 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+0116 20406ee0 call gpio_get_bit 
+0117 24208111 nbranch p_keyboard_keyscan_exmcu_start_check ,true 
+0118 204043af call keyboard_stb_state_low 
+
+p_keyboard_keyscan_wait_wake_next:
+0119 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+011a 20406ee0 call gpio_get_bit 
+011b 20208119 branch p_keyboard_keyscan_wait_wake_next ,true 
+011c 20400151 call p_keyboard_keyscan_get_exmcu_value 
+011d 20400140 call p_keyboard_keyscan_get_mcu_value 
+011e 204043ab call keyboard_clk_input 
+011f 204043ad call keyboard_stb_state_high 
+
+p_keyboard_keyscan_copy_value:
+0120 6fe1494c fetch 2 ,mem_kb_excol_ptr 
+0121 1fe22400 copy pdata ,regb 
+0122 70499d00 jam 0 ,mem_keyscan_col_loop_count 
+
+p_keyboard_compare_col_excol_gpio_loop:
+0123 e8408012 ifetcht 1 ,regb 
+0124 6fe1494a fetch 2 ,mem_kb_col_ptr 
+0125 1fe22200 copy pdata ,rega 
+0126 1a222600 copy rega ,regc 
+0127 df200014 arg 20 ,loopcnt 
+
+p_keyboard_compare_col_gpio_loop:
+0128 efe08011 ifetch 1 ,rega 
+0129 98467c00 isub temp ,null 
+012a 2022c366 branch keyboard_copy_value_exmcu_to_mcu ,zero 
+012b 1a20a201 increase 1 ,rega 
+012c c2000128 loop p_keyboard_compare_col_gpio_loop 
+
+p_keyboard_compare_col_excol_gpio_loop_next:
+012d 1a40a401 increase 1 ,regb 
+012e 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+012f 1fe0fe01 increase 1 ,pdata 
+0130 67e0c99d store 1 ,mem_keyscan_col_loop_count 
+0131 1fe67c0b sub pdata ,11 ,null 
+0132 20210123 branch p_keyboard_compare_col_excol_gpio_loop ,positive 
+0133 202001b9 branch p_keyboard_key_row_init 
+
+p_keyboard_copy_value_exmcu_to_mcu:
+0134 6fe14998 fetch 2 ,mem_keyscan_value_ptr 
+0135 1fe20a00 copy pdata ,contw 
+0136 1a227e00 copy rega ,pdata 
+0137 9a667e00 isub regc ,pdata 
+0138 98a08a00 iadd contw ,contw 
+0139 6fe1499a fetch 2 ,mem_keyscan_exmcu_value_ptr 
+013a 1fe22600 copy pdata ,regc 
+013b 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+013c 9a60a600 iadd regc ,regc 
+013d efe08013 ifetch 1 ,regc 
+013e e7e08005 istore 1 ,contw 
+013f 2020012d branch p_keyboard_compare_col_excol_gpio_loop_next 
+
+p_keyboard_keyscan_get_mcu_value:
+0140 6fe1494a fetch 2 ,mem_kb_col_ptr 
+0141 1fe22400 copy pdata ,regb 
+0142 70499d00 jam 0 ,mem_keyscan_col_loop_count 
+
+p_keyboard_keyscan_mcu_start:
+0143 70499c00 jam 0 ,mem_keyscan_value_temp 
+0144 e8408012 ifetcht 1 ,regb 
+0145 284ffe07 isolate1 7 ,temp 
+0146 2020814b branch p_keyboard_keyscan_mcu_start_loop ,true 
+0147 20406ef1 call gpio_out_active 
+0148 20400165 call p_keyboard_keyscan_get_col_value 
+0149 e8408012 ifetcht 1 ,regb 
+014a 20406f0b call gpio_set_high_impedance 
+
+p_keyboard_keyscan_mcu_start_loop:
+014b 1a40a401 increase 1 ,regb 
+014c 6fe14998 fetch 2 ,mem_keyscan_value_ptr 
+014d 2040437d call keyboard_keyscan_value_store 
+014e 1fe67c13 sub pdata ,19 ,null 
+014f 20210143 branch p_keyboard_keyscan_mcu_start ,positive 
+0150 20600000 rtn 
+
+p_keyboard_keyscan_get_exmcu_value:
+0151 70499d00 jam 0 ,mem_keyscan_col_loop_count 
+
+p_keyboard_keyscan_exmcu_start_loop:
+0152 204043a9 call keyboard_clk_state_low 
+0153 20400159 call p_keyboard_keyscan_exmcu_get_col_value 
+0154 204043a7 call keyboard_clk_state_high 
+0155 20400159 call p_keyboard_keyscan_exmcu_get_col_value 
+0156 1fe67c0b sub pdata ,11 ,null 
+0157 20210152 branch p_keyboard_keyscan_exmcu_start_loop ,positive 
+0158 202043a9 branch keyboard_clk_state_low 
+
+p_keyboard_keyscan_exmcu_get_col_value:
+0159 70499c00 jam 0 ,mem_keyscan_value_temp 
+015a 20400165 call p_keyboard_keyscan_get_col_value 
+015b 6fe1499a fetch 2 ,mem_keyscan_exmcu_value_ptr 
+
+p_keyboard_keyscan_value_store:
+015c 1fe20a00 copy pdata ,contw 
+015d 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+015e 98a08a00 iadd contw ,contw 
+015f 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
+0160 e7e08005 istore 1 ,contw 
+0161 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+0162 1fe0fe01 increase 1 ,pdata 
+0163 67e0c99d store 1 ,mem_keyscan_col_loop_count 
+0164 20600000 rtn 
+
+p_keyboard_keyscan_get_col_value:
+0165 6fe14948 fetch 2 ,mem_kb_row_ptr 
+0166 1fe22600 copy pdata ,regc 
+0167 df200008 arg 8 ,loopcnt 
+
+p_keyboard_keyscan_get_col_value_loop:
+0168 e8408013 ifetcht 1 ,regc 
+0169 20406eed call gpio_out_inactive 
+016a e8408013 ifetcht 1 ,regc 
+016b 20406f0b call gpio_set_high_impedance 
+016c 200000f0 nop 240 
+016d e8408013 ifetcht 1 ,regc 
+016e 20406ee0 call gpio_get_bit 
+016f 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
+0170 1fe37e00 rshift pdata ,pdata 
+0171 7920fe07 setflag true ,7 ,pdata 
+0172 67e0c99c store 1 ,mem_keyscan_value_temp 
+0173 1a60a601 increase 1 ,regc 
+0174 c2000168 loop p_keyboard_keyscan_get_col_value_loop 
+0175 20600000 rtn 
+
+p_keyboard_lpm_before_common:
+0176 20407de6 call clear_wake 
+0177 6848c90f fetcht 1 ,mem_keyboard_pb_button_gpio 
+0178 20406eac call gpio_set_wake 
+0179 6fe1494a fetch 2 ,mem_kb_col_ptr 
+017a 1fe22400 copy pdata ,regb 
+017b df200014 arg 20 ,loopcnt 
+
+p_keyboard_key_col_wake_init:
+017c e8408012 ifetcht 1 ,regb 
+017d 284ffe07 isolate1 7 ,temp 
+017e 2440eef1 ncall gpio_out_active ,true 
+017f 1a40a401 increase 1 ,regb 
+0180 c200017c loop p_keyboard_key_col_wake_init 
+0181 20403f1b call keyboard_gpio_pu_idle 
+0182 70488c00 jam 0 ,mem_qdec_set_flag 
+0183 6fe14948 fetch 2 ,mem_kb_row_ptr 
+0184 1fe22400 copy pdata ,regb 
+0185 df200008 arg 8 ,loopcnt 
+
+p_keyboard_key_row_wake_init:
+0186 e8408012 ifetcht 1 ,regb 
+0187 18467cff sub temp ,ui_button_gpio_disable ,null 
+0188 24428193 ncall p_keyboard_key_row_wake_set ,zero 
+0189 e8408012 ifetcht 1 ,regb 
+018a 20406f0b call gpio_set_high_impedance 
+018b 1a40a401 increase 1 ,regb 
+018c c2000186 loop p_keyboard_key_row_wake_init 
+018d 20406f4b call lpm_puchk_set_check 
+018e 204023e1 call lpm_write_gpio_wakeup 
+018f 6848c666 fetcht 1 ,mem_device_reuse_2ice_gpio 
+0190 20404f0a call device_gpio_config_input_pu 
+0191 20404f0e call mouse_gpio_set_analog 
+0192 202040dd branch keyboard_adc_gpio_set_before_hibernate 
+
+p_keyboard_key_row_wake_set:
+0193 6fe0c9a0 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0194 203a6eac branch gpio_set_wake ,blank 
+0195 20206ea5 branch gpio_set_wake_by_current_state 
+
+p_gpio_set_low_pullup_wakeup:
+0196 18467cff sub temp ,ui_button_gpio_disable ,null 
+0197 20628000 rtn zero 
+0198 d9000003 arg 3 ,debug 
+0199 20406e9c call get_gpio_wakeup_index 
+019a 284c0000 isolate0 0 ,temp 
+019b 2020819d branch p_gpio_set_low_pullup_low4bit ,true 
+019c 19121000 lshift4 debug ,debug 
+
+p_gpio_set_low_pullup_low4bit:
+019d efe08005 ifetch 1 ,contw 
+019e 9e017e00 iand alarm ,pdata 
+019f 9901fe00 ior debug ,pdata 
+01a0 e7e08005 istore 1 ,contw 
+01a1 20600000 rtn 
+
+p_keyboard_gpio_init:
+01a2 20407de6 call clear_wake 
+01a3 6848c90f fetcht 1 ,mem_keyboard_pb_button_gpio 
+01a4 20404f0a call device_gpio_config_input_pu 
+01a5 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+01a6 2feffe0a isolate1 keyboard_disable_ice ,pdata 
+01a7 204081cf call p_lpm_write_ice_disable ,true 
+01a8 5800491f setarg mem_key_row_gpio 
+01a9 67e14948 store 2 ,mem_kb_row_ptr 
+01aa 58004927 setarg mem_key_col_gpio 
+01ab 67e1494a store 2 ,mem_kb_col_ptr 
+01ac 5800493c setarg mem_key_excol_gpio 
+01ad 67e1494c store 2 ,mem_kb_excol_ptr 
+01ae 204001b9 call p_keyboard_key_row_init 
+01af 204023e1 call lpm_write_gpio_wakeup 
+01b0 6fe1494a fetch 2 ,mem_kb_col_ptr 
+01b1 1fe22400 copy pdata ,regb 
+01b2 df200014 arg 20 ,loopcnt 
+
+p_keyboard_key_cow_init:
+01b3 e8408012 ifetcht 1 ,regb 
+01b4 284ffe07 isolate1 7 ,temp 
+01b5 2440ef0b ncall gpio_set_high_impedance ,true 
+01b6 1a40a401 increase 1 ,regb 
+01b7 c2003f09 loop keyboard_key_cow_init 
+01b8 20600000 rtn 
+
+p_keyboard_key_row_init:
+01b9 6fe14948 fetch 2 ,mem_kb_row_ptr 
+01ba 1fe22400 copy pdata ,regb 
+01bb df200008 arg 8 ,loopcnt 
+
+p_keyboard_key_row_init_loop:
+01bc e8408012 ifetcht 1 ,regb 
+01bd 20406f0b call gpio_set_high_impedance 
+01be 204001c2 call p_gpio_clear_low_pullup 
+01bf 1a40a401 increase 1 ,regb 
+01c0 c20001bc loop p_keyboard_key_row_init_loop 
+01c1 20600000 rtn 
+
+p_gpio_clear_low_pullup:
+01c2 20406ec0 call gpio_set_low_pullup 
+01c3 18467cff sub temp ,ui_button_gpio_disable ,null 
+01c4 20628000 rtn zero 
+01c5 d9000000 arg 0 ,debug 
+01c6 20406e9c call get_gpio_wakeup_index 
+01c7 284c0000 isolate0 0 ,temp 
+01c8 202081ca branch gpio_clear_low_pullup_low4bit ,true 
+01c9 19121000 lshift4 debug ,debug 
+
+gpio_clear_low_pullup_low4bit:
+01ca efe08005 ifetch 1 ,contw 
+01cb 9e017e00 iand alarm ,pdata 
+01cc 9901fe00 ior debug ,pdata 
+01cd e7e08005 istore 1 ,contw 
+01ce 20600000 rtn 
+
+p_lpm_write_ice_disable:
+01cf 6ff08142 fetch 1 ,core_lpm_sysctl 
+01d0 793ffe03 set0 ice_mode ,pdata 
+01d1 67f08142 store 1 ,core_lpm_sysctl 
+01d2 20600000 rtn 
+
+p_keyboard_device_poweron_timer:
+01d3 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+01d4 207a0000 rtn blank 
+01d5 1fe0ffff increase -1 ,pdata 
+01d6 67e0cac2 store 1 ,mem_keyboard_device_poweron_timer 
+01d7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+01d8 c29401dc bbit1 keyboard_enable_030_power_led ,p_keyboard_device_poweron_030_led 
+01d9 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+01da 203a4166 branch keyboard_device_led_off ,blank 
+01db 2020416c branch keyboard_device_led_on 
+
+p_keyboard_device_poweron_030_led:
+01dc 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+01dd 203a413c branch keyboard_power_led_off ,blank 
+01de 2020413a branch keyboard_power_led_on 
+
+p_keyboard_num_capslock_led_on_timer:
+01df 6fe0c678 fetch 1 ,mem_device_flag 
+01e0 c00001e3 beq mode_24g_device ,p_keyboard_num_capslock_led_on_timer_next 
+01e1 6fe0c753 fetch 1 ,mem_device_le_bb_connected_flag 
+01e2 c1000000 rtneq 0 
+
+p_keyboard_num_capslock_led_on_timer_next:
+01e3 6fe0cac5 fetch 1 ,mem_keyboard_mode_led_on_timer 
+01e4 c1800000 rtnne 0 
+01e5 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
+01e6 c02d4193 beq usb_interface_insert ,keyboard_usb_led_check 
+01e7 6fe14741 fetch 2 ,mem_device_no_data_timer 
+01e8 207a0000 rtn blank 
+01e9 6fe1471e fetch 2 ,mem_device_no_data_timeout 
+01ea 68494741 fetcht 2 ,mem_device_no_data_timer 
+01eb 98460400 isub temp ,temp 
+01ec 6fe14ac3 fetch 2 ,mem_keyboard_num_caps_scoll_led_on_timer 
+01ed 98467e00 isub temp ,pdata 
+01ee 202101f2 branch p_keyboard_num_cap_scoll_led_check ,positive 
+01ef 2040419d call keyboard_numlock_led_off 
+01f0 204041a9 call keyboard_scrolllock_led_off 
+01f1 202041a3 branch keyboard_capslock_led_off 
+
+p_keyboard_num_cap_scoll_led_check:
+01f2 20404199 call keyboard_numlock_led_check_on 
+01f3 204041a5 call keyboard_scrolllock_led_check_on 
+01f4 202001f5 branch p_keyboard_capslock_led_check_on 
+
+p_keyboard_capslock_led_check_on:
+01f5 6fe0c70d fetch 1 ,mem_keyboard_led_status 
+01f6 c300c1a3 bbit0 kb_pc_keysel_capslock ,keyboard_capslock_led_off 
+01f7 704ac200 jam 0 ,mem_keyboard_device_poweron_timer 
+01f8 6848c914 fetcht 1 ,mem_keyboard_caps_led_gpio 
+01f9 20206ef1 branch gpio_out_active 
+
+p_keyboard_bb_event_timer:
+01fa 204040e0 call keyboard_low_voltage_param_set 
+01fb 204040cc call keyboard_adc_read 
+01fc 204040dd call keyboard_adc_gpio_set_before_hibernate 
+01fd 20404100 call keyboard_low_voltage_led_timer 
+01fe 204001df call p_keyboard_num_capslock_led_on_timer 
+01ff 204041ab call keyboard_rgb_on_timer 
+0200 204001d3 call p_keyboard_device_poweron_timer 
+0201 2040413e call keyboard_mode_led_timer 
+0202 204003d6 call p_keyboard_device_pair_led_timer 
+0203 20400217 call p_keyboard_key_press_timer 
+0204 2040428f call keyboard_commbination_key_process 
+0205 204042c4 call keyboard_same_key_long_press_timer 
+0206 2040326c call g24_pair_timeout_timer 
+0207 20403507 call g24_reconn_timeout_timer 
+0208 204058f6 call mouse_24g_long_sleep_param_update_timer 
+0209 204042b5 call keyboard_24g_repeat_send_data 
+020a 204042bf call keyboard_24g_led_status_get_timer 
+020b 20404299 call keyboard_check_discovery_timeout_timer 
+020c 204042a4 call keyboard_check_direct_timeout_timer 
+020d 2040550d call mouse_le_enable_att_list_timer 
+020e 204042ad call keyboard_le_battery_updata_timer 
+020f 20405510 call mouse_le_send_smp_security_request_timer 
+0210 204042b2 call keyboard_le_send_conn_param_update_timer 
+0211 204042a1 call keyboard_le_auto_recognize_timer 
+0212 20405527 call mouse_current_mult_update_timer 
+0213 2040429e call keyboard_store_information_delay_timer 
+0214 204042c9 call keyboard_commbination_delay_release_timer 
+0215 204042cc call keyboard_usb_updata_timer 
+0216 202042d5 branch keyboard_check_no_data_timeout_timer 
+
+p_keyboard_key_press_timer:
+0217 20400219 call p_keyboard_device_select_g24_nopress_timer 
+0218 2020021f branch p_keyboard_device_select_bt_nopress_timer 
+
+p_keyboard_device_select_g24_nopress_timer:
+0219 7048a900 jam 0 ,mem_keyboard_switch_g24_press_timer 
+021a 6fe0c8a7 fetch 1 ,mem_keyboard_switch_g24_enable 
+021b 207a0000 rtn blank 
+021c 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
+021d 20400225 call p_keyboard_store_device_number 
+021e 20206c99 branch soft_reset_chip 
+
+p_keyboard_device_select_bt_nopress_timer:
+021f 7048aa00 jam 0 ,mem_keyboard_switch_bt_press_timer 
+0220 6fe0c8a8 fetch 1 ,mem_keyboard_switch_bt_enable 
+0221 207a0000 rtn blank 
+0222 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
+0223 20404045 call keyboard_store_device_number 
+0224 20206c99 branch soft_reset_chip 
+
+p_keyboard_store_device_number:
+0225 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+0226 c287d594 bbit1 keyboard_enable_otp ,mouse_write_otp_device_flag 
+0227 c2874045 bbit1 keyboard_enable_eeprom ,keyboard_store_device_number 
+0228 20600000 rtn 
+
+p_keyboard_keyvalue_chang:
+0229 2040442e call keyboard_keyvalue_normal_replace 
+022a 20400249 call p_keyboard_keyvalue_fn_replace 
+022b 2040022d call p_keyboard_keyvalue_commbination_replace 
+022c 202043dd branch keyboard_keyvalue_change + 14 
+
+p_keyboard_keyvalue_commbination_replace:
+022d 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+022e c02344f2 beq hid_key_print_screen ,keyboard_commination_screen_shot_replace 
+022f c025c4f8 beq hid_key_page_up ,keyboard_commination_pageup_replace 
+0230 c02744fe beq hid_key_page_down ,keyboard_commination_pagedown_replace 
+0231 c0254500 beq hid_key_home ,keyboard_commination_home_replace 
+0232 c026c502 beq hid_key_end ,keyboard_commination_end_replace 
+0233 c052c504 beq hid_key_select_all ,keyboard_commination_select_all 
+0234 c053450b beq hid_key_copy ,keyboard_commbination_copy 
+0235 c053c50d beq hid_key_paste ,keyboard_commbination_paste 
+0236 c054450f beq hid_key_cut ,keyboard_commbination_cut 
+0237 c054c511 beq hid_key_all_os_lock ,keyboard_commination_os_lock 
+0238 c055451c beq hid_key_osk ,keyboard_commbination_osk 
+0239 c056c523 beq hid_key_search ,keyboard_commbination_search 
+023a c055c52a beq hid_key_language ,keyboard_commbination_language 
+023b c0564535 beq hid_key_app_tiling ,keyboard_commbination_app_tiling 
+023c c057823e beq hid_key_all_os_home ,p_keyboard_commination_all_ac_home_replace 
+023d 20600000 rtn 
+
+p_keyboard_commination_all_ac_home_replace:
+023e 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+023f c0018246 beq system_os_mac ,p_keyboard_value_mac_home 
+0240 6fe0c678 fetch 1 ,mem_device_flag 
+0241 c0800244 bne mode_24g_device ,p_keyboard_value_ac_home_key 
+0242 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+0243 c0010246 beq system_os_ios ,p_keyboard_value_mac_home 
+
+p_keyboard_value_ac_home_key:
+0244 580000f0 setarg hid_key_ac_home 
+0245 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_value_mac_home:
+0246 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0247 704a9e0b jam hid_key_h ,mem_keyboard_commbination_standard_key_value 
+0248 2020453e branch keyboard_commbination_keypress 
+
+p_keyboard_keyvalue_fn_replace:
+0249 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+024a 2feffe00 isolate1 0 ,pdata 
+024b 2040c4f0 call keyboard_commbination_delay_release_clear ,true 
+024c 20400269 call p_keyboard_keyvalue_nfn_replace 
+024d 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
+024e 245a445b ncall keyboard_keyvalue_fn_replace_press ,blank 
+024f 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+0250 c17f8000 rtneq 0xff 
+0251 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+0252 c31a0255 bbit0 keyboard_enable_fn_lock ,p_keyboard_fn_lock_check 
+0253 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
+0254 20200256 branch p_keyboard_fn_lock_check + 1 
+
+p_keyboard_fn_lock_check:
+0255 6fe0ca84 fetch 1 ,mem_keyboard_fn_first 
+0256 6848ca7a fetcht 1 ,mem_keyboard_fn_flag 
+0257 9842fe00 ixor temp ,pdata 
+0258 20628000 rtn zero 
+0259 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+025a c014c451 beq hid_key_esc ,keyboard_keyvalue_fn_esc 
+025b c0264459 beq hid_key_delete ,keyboard_keyvalue_fn_delete 
+025c c01d027d beq hid_key_f1 ,p_keyboard_keyvalue_f1 
+025d c01d8283 beq hid_key_f2 ,p_keyboard_keyvalue_f2 
+025e c01e0289 beq hid_key_f3 ,p_keyboard_keyvalue_f3 
+025f c01e8293 beq hid_key_f4 ,p_keyboard_keyvalue_f4 
+0260 1fe67c45 sub pdata ,hid_key_f12 ,null 
+0261 24610000 nrtn positive 
+0262 d840003a arg hid_key_f1 ,temp 
+0263 98467e00 isub temp ,pdata 
+0264 24610000 nrtn positive 
+0265 d8c04a86 arg mem_keyboard_fn_f1 ,contr 
+0266 98c08c00 iadd contr ,contr 
+0267 efe08006 ifetch 1 ,contr 
+0268 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_nfn_replace:
+0269 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+026a c1810000 rtnne system_os_ios 
+026b 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+026c c01a826e beq 0x35 ,p_keyboard_ios_0x35 
+026d 20600000 rtn 
+
+p_keyboard_ios_0x35:
+026e 6fe0ca7d fetch 1 ,mem_keyboard_shift_flag 
+026f c1008000 rtneq 1 
+0270 704a9d40 jam 0x40 ,mem_keyboard_commbination_control_key_value 
+0271 704a9e35 jam 0x35 ,mem_keyboard_commbination_standard_key_value 
+0272 2020453e branch keyboard_commbination_keypress 
+
+p_keyboard_keyvalue_fn_replace_press:
+0273 20404468 call keyboard_keyvalue_fn_lock_replace 
+0274 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+0275 c029448d beq hid_key_up_arrow ,keyboard_keyvalue_fn_up_arrow 
+0276 c028c491 beq hid_key_down_arrow ,keyboard_keyvalue_fn_down_arrow 
+0277 c0284495 beq hid_key_left_arrow ,keyboard_keyvalue_fn_left_arrow 
+0278 c027c499 beq hid_key_right_arrow ,keyboard_keyvalue_fn_right_arrow 
+0279 c00d44ac beq hid_key_w ,keyboard_keyvalue_os_android 
+027a c00444bc beq hid_key_e ,keyboard_keyvalue_os_windows 
+027b c00a44c3 beq hid_key_q ,keyboard_keyvalue_os_ios 
+027c 20600000 rtn 
+
+p_keyboard_keyvalue_f1:
+027d 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+027e c0010281 beq system_os_ios ,p_keyboard_keyvalue_ios_back 
+027f 580000f6 setarg hid_key_ac_back 
+0280 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_ios_back:
+0281 580000f8 setarg hid_key_light_down 
+0282 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_f2:
+0283 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+0284 c0010287 beq system_os_ios ,p_keyboard_keyvalue_ios_f2 
+0285 580000f1 setarg hid_key_mail 
+0286 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_ios_f2:
+0287 580000f9 setarg hid_key_light_up 
+0288 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_f3:
+0289 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+028a c001028f beq system_os_ios ,p_keyboard_keyvalue_ios_f3 
+028b c0008291 beq system_os_android ,p_keyboard_keyvalue_fn_android_f3 
+028c 704a9d08 jam 0x08 ,mem_keyboard_commbination_control_key_value 
+028d 704a9e0c jam hid_key_i ,mem_keyboard_commbination_standard_key_value 
+028e 2020453e branch keyboard_commbination_keypress 
+
+p_keyboard_keyvalue_ios_f3:
+028f 580000f7 setarg hid_key_os_soft_kb 
+0290 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_fn_android_f3:
+0291 580000fe setarg hid_key_android_set 
+0292 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_f4:
+0293 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+0294 c0010297 beq system_os_ios ,p_keyboard_keyvalue_ios_f4 
+0295 580000e8 setarg hid_key_multikey_media 
+0296 202044aa branch keyboard_keyvalue_store_temp 
+
+p_keyboard_keyvalue_ios_f4:
+0297 704a9d0a jam 0x0a ,mem_keyboard_commbination_control_key_value 
+0298 704a9e20 jam hid_key_3 ,mem_keyboard_commbination_standard_key_value 
+0299 2020453e branch keyboard_commbination_keypress 
+
+p_keyboard_long_button_bt_discovery:
+029a 6fe0c750 fetch 1 ,mem_device_discovery_timer 
+029b c1800000 rtnne 0 
+029c 70470d00 jam 0 ,mem_keyboard_led_status 
+029d 204041a3 call keyboard_capslock_led_off 
+029e 20404184 call keyboard_low_voltage_led_off 
+029f 20204677 branch keyboard_long_button_bt_discovery + 2 
+
+p_keyboard_setting_config_next:
+02a0 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+02a1 c287bf31 bbit1 keyboard_enable_otp ,keyboard_load_otp_info 
+02a2 20203ec8 branch keyboard_setting_config + 11 
+
+p_keyboard_load_info_check:
+02a3 204002a5 call p_keyboard_app_initflag_check 
+02a4 20203fa4 branch keyboard_load_info_check + 2 
+
+p_keyboard_app_initflag_check:
+02a5 6fe0c678 fetch 1 ,mem_device_flag 
+02a6 d84000ff arg 0xff ,temp 
+02a7 98467c00 isub temp ,null 
+02a8 2022bfca branch keyboard_app_initflag_check + 4 ,zero 
+02a9 6fe146a0 fetch 2 ,mem_store_flag 
+02aa d840aa55 arg eeprom_init_flag ,temp 
+02ab 98467c00 isub temp ,null 
+02ac 2022e7cf branch hid_device_load_device_info ,zero 
+02ad 20203fca branch keyboard_app_initflag_check + 4 
+
+p_keyboard_le_parse_att:
+02ae 1a220c00 copy rega ,contr 
+02af efe18006 ifetch 3 ,contr 
+02b0 67e1c39b store 3 ,mem_le_att_opcode 
+02b1 c000c919 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+02b2 c003c95c beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+02b3 c004c938 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+02b4 c005c952 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+02b5 c0044971 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
+02b6 c00602bb beq attop_read_blob_request ,p_keyboard_le_parse_att_read_blob_request 
+02b7 c005499f beq attop_read_request ,keyboard_le_parse_att_read_request 
+02b8 c00949c5 beq attop_write_request ,keyboard_le_parse_att_write_request 
+02b9 c02949cb beq attop_write_command ,keyboard_le_parse_att_write_command 
+02ba 20202b76 branch le_parse_att2 
+
+p_keyboard_le_parse_att_read_blob_request:
+02bb efe10006 ifetch 2 ,contr 
+02bc 67e10693 store 2 ,mem_le_att_offset 
+02bd 98002200 iforce rega 
+02be 6849439c fetcht 2 ,mem_le_att_handle 
+02bf 6fe14334 fetch 2 ,mem_le_pairing_handle 
+02c0 98467c00 isub temp ,null 
+02c1 2422ad2e nbranch le_send_att_read_blob_response ,zero 
+02c2 20204999 branch keyboard_le_send_att_read_blob_response 
+
+p_keyboard_le_parse_att_read_request:
+02c3 6849439c fetcht 2 ,mem_le_att_handle 
+02c4 6fe0c323 fetch 1 ,mem_le_configuration 
+02c5 c28182f9 bbit1 bit_ble_read_auth ,p_keyboard_le_send_att_read_response_check_auth 
+
+p_keyboard_le_send_att_read_response:
+02c6 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+02c7 c30582c9 bbit0 keyboard_enable_adc ,p_keyboard_le_send_att_read_response + 3 
+02c8 c30c82cb bbit0 keyboard_enable_le_battery_service_cancel ,p_keyboard_le_send_att_read_response_next 
+02c9 6fe1439c fetch 2 ,mem_le_att_handle 
+02ca c0182de1 beq 0x30 ,le_send_att_error_response_notfound 
+
+p_keyboard_le_send_att_read_response_next:
+02cb 6fe1439c fetch 2 ,mem_le_att_handle 
+02cc c002c9b7 beq 0x05 ,keyboard_le_send_att_appearance 
+02cd c00849ba beq 0x10 ,keyboard_le_send_att_pnp_id 
+
+p_keyboard_le_send_att_read_response_next_1:
+02ce 6849439c fetcht 2 ,mem_le_att_handle 
+02cf 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+02d0 c29182db bbit1 keyboard_enable_mouse ,p_le_send_att_read_response 
+02d1 6fe14334 fetch 2 ,mem_le_pairing_handle 
+02d2 98467c00 isub temp ,null 
+02d3 242282db nbranch p_le_send_att_read_response ,zero 
+02d4 20402e24 call le_get_search_max_mtu_data 
+02d5 684948d6 fetcht 2 ,mem_keyboard_le_hid_map 
+02d6 18420c00 copy temp ,contr 
+02d7 e8410006 ifetcht 2 ,contr 
+02d8 18408401 increase 1 ,temp 
+02d9 20407db2 call not_greater_than 
+02da 202002eb branch p_le_send_att_read_response_less 
+
+p_le_send_att_read_response:
+02db 20402cb0 call le_att_get_handle_ptr2 
+02dc 2422ade1 nbranch le_send_att_error_response_notfound ,zero 
+02dd 20542d26 call le_send_att_read_response_check_handle ,user 
+02de 20740000 rtn user 
+02df 20402cbb call le_att_get_handle_ptr_found 
+02e0 18c08dfe increase -2 ,contr 
+02e1 efe10006 ifetch 2 ,contr 
+02e2 d8402a00 arg uuid_chrctr_device_name ,temp 
+02e3 98467c00 isub temp ,null 
+02e4 2022ad14 branch le_send_device_name ,zero 
+02e5 18c22600 copy contr ,regc 
+02e6 20402e24 call le_get_search_max_mtu_data 
+02e7 1a620c00 copy regc ,contr 
+02e8 e8408006 ifetcht 1 ,contr 
+02e9 18408401 increase 1 ,temp 
+02ea 20407db2 call not_greater_than 
+
+p_le_send_att_read_response_less:
+02eb 1fe22600 copy pdata ,regc 
+02ec 1fe22200 copy pdata ,rega 
+02ed 20407c6f call store_contr 
+02ee 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+02ef 5800000b setarg attop_read_response 
+02f0 e7e08005 istore 1 ,contw 
+02f1 6fe1439c fetch 2 ,mem_le_att_handle 
+02f2 c00f82f6 beq 0x1f ,p_keyboard_reference_hid_report_fix 
+02f3 1a60f3ff add regc ,-1 ,loopcnt 
+02f4 20407c69 call get_contr 
+02f5 20207cdc branch memcpy 
+
+p_keyboard_reference_hid_report_fix:
+02f6 1a60f3ff add regc ,-1 ,loopcnt 
+02f7 d8c04ae6 arg mem_keyboard_hid_fix_handle ,contr 
+02f8 20207cdc branch memcpy 
+
+p_keyboard_le_send_att_read_response_check_auth:
+02f9 6fe14334 fetch 2 ,mem_le_pairing_handle 
+02fa 98467c00 isub temp ,null 
+02fb 242282c6 nbranch p_keyboard_le_send_att_read_response ,zero 
+02fc 20402da5 call le_check_encrypt_state 
+02fd 243402cb nbranch p_keyboard_le_send_att_read_response_next ,user 
+02fe 20202d24 branch le_send_att_read_response_error_insufficient_auth 
+
+p_keyboard_motion_data_check:
+02ff 6fe0caa0 fetch 1 ,mem_keyboard_consumer_key_status 
+0300 c0010320 beq keyboard_consumer_key_release ,p_keyboard_value_consumer_release 
+0301 202046cd branch keyboard_motion_data_check + 3 
+
+p_keyboard_value_tpye_consumer_set:
+0302 18427e00 copy temp ,pdata 
+0303 704a6f05 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
+0304 6848c9a6 fetcht 1 ,mem_keyboard_all_press_key_count 
+0305 18467c00 sub temp ,hid_key_null ,null 
+0306 20228320 branch p_keyboard_value_consumer_all_key_release ,zero 
+0307 c074032c beq hid_key_multikey_media ,p_keyboard_value_media 
+0308 c0748332 beq hid_key_multikey_vol_down ,p_keyboard_value_vol_down 
+0309 c0750336 beq hid_key_multikey_vol_up ,p_keyboard_value_vol_up 
+030a c075833a beq hid_key_multikey_mute ,p_keyboard_value_mute 
+030b c076033e beq hid_key_multikey_pre_track ,p_keyboard_value_pre_track 
+030c c0768342 beq hid_key_multikey_next_track ,p_keyboard_value_next_track 
+030d c0770346 beq hid_key_multikey_paly ,p_keyboard_value_play 
+030e c077834a beq hid_key_multikey_stop ,p_keyboard_value_stop 
+030f c078034e beq hid_key_ac_home ,p_keyboard_value_ac_home 
+0310 c0788352 beq hid_key_mail ,p_keyboard_value_mail 
+0311 c0790356 beq hid_key_my_computer ,p_keyboard_value_my_computer 
+0312 c079835a beq hid_key_ac_favorites ,p_keyboard_value_ac_favorites 
+0313 c07a035e beq hid_key_calculator ,p_keyboard_value_calculator 
+0314 c07a8362 beq hid_key_ac_search ,p_keyboard_value_ac_search 
+0315 c07b0366 beq hid_key_ac_back ,p_keyboard_value_ac_back 
+0316 c07b836a beq hid_key_os_soft_kb ,p_keyboard_value_os_soft_kb 
+0317 c07c0372 beq hid_key_light_down ,p_keyboard_value_light_down 
+0318 c07c8376 beq hid_key_light_up ,p_keyboard_value_light_up 
+0319 c07d037a beq hid_key_ios_android_os_lock ,p_keyboard_value_os_lock 
+031a c07d837e beq hid_key_mac_eject ,p_keyboard_value_mac_eject 
+031b c07e0382 beq hid_key_ac_forward ,p_keyboard_value_ac_forward 
+031c c07e8386 beq hid_key_ac_stop ,p_keyboard_value_ac_stop 
+031d c07f038a beq hid_key_android_set ,p_keyboard_value_android_set 
+031e c07f838e beq hid_key_system_sleep ,p_keyboard_value_system_sleep 
+031f 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_consumer_all_key_release:
+
+p_keyboard_value_consumer_release:
+0320 7049a902 jam 2 ,mem_keyboard_data_change_flag 
+0321 6fe0c9a6 fetch 1 ,mem_keyboard_all_press_key_count 
+0322 205a46ef call keyboard_value_release_all_key ,blank 
+0323 704aa000 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+0324 6fe0c678 fetch 1 ,mem_device_flag 
+0325 c0000329 beq mode_24g_device ,p_keyboard_24g_consumer_release 
+0326 58000005 setarg hid_reportid_bit_consumer_key 
+0327 67e1ca6f store 3 ,mem_keyboard_tx_data 
+0328 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_24g_consumer_release:
+0329 58000003 setarg hid_reportid_consumer_key 
+032a 67e1ca6f store 3 ,mem_keyboard_tx_data 
+032b 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_media:
+032c 6fe0c678 fetch 1 ,mem_device_flag 
+032d c0804715 bne mode_24g_device ,keyboard_value_media 
+032e 58000183 setarg 0x0183 
+
+p_keyboard_24g_standard_data_send:
+032f 67e14a70 store 2 ,mem_keyboard_tx_data + 1 
+0330 704a6f03 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+0331 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_vol_down:
+0332 6fe0c678 fetch 1 ,mem_device_flag 
+0333 c0804718 bne mode_24g_device ,keyboard_value_vol_down 
+0334 580000ea setarg 0x00ea 
+0335 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_vol_up:
+0336 6fe0c678 fetch 1 ,mem_device_flag 
+0337 c080471a bne mode_24g_device ,keyboard_value_vol_up 
+0338 580000e9 setarg 0x00e9 
+0339 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mute:
+033a 6fe0c678 fetch 1 ,mem_device_flag 
+033b c080471c bne mode_24g_device ,keyboard_value_mute 
+033c 580000e2 setarg 0x00e2 
+033d 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_pre_track:
+033e 6fe0c678 fetch 1 ,mem_device_flag 
+033f c080471e bne mode_24g_device ,keyboard_value_pre_track 
+0340 580000b6 setarg 0x00b6 
+0341 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_next_track:
+0342 6fe0c678 fetch 1 ,mem_device_flag 
+0343 c0804720 bne mode_24g_device ,keyboard_value_next_track 
+0344 580000b5 setarg 0x00b5 
+0345 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_play:
+0346 6fe0c678 fetch 1 ,mem_device_flag 
+0347 c0804722 bne mode_24g_device ,keyboard_value_play 
+0348 580000cd setarg 0x00cd 
+0349 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_stop:
+034a 6fe0c678 fetch 1 ,mem_device_flag 
+034b c0804724 bne mode_24g_device ,keyboard_value_stop 
+034c 580000b7 setarg 0x00b7 
+034d 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_home:
+034e 6fe0c678 fetch 1 ,mem_device_flag 
+034f c0804726 bne mode_24g_device ,keyboard_value_ac_home 
+0350 58000223 setarg 0x0223 
+0351 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mail:
+0352 6fe0c678 fetch 1 ,mem_device_flag 
+0353 c0804728 bne mode_24g_device ,keyboard_value_mail 
+0354 5800018a setarg 0x018a 
+0355 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_my_computer:
+0356 6fe0c678 fetch 1 ,mem_device_flag 
+0357 c080472a bne mode_24g_device ,keyboard_value_my_computer 
+0358 58000194 setarg 0x0194 
+0359 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_favorites:
+035a 6fe0c678 fetch 1 ,mem_device_flag 
+035b c080472c bne mode_24g_device ,keyboard_value_ac_favorites 
+035c 5800022a setarg 0x022a 
+035d 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_calculator:
+035e 6fe0c678 fetch 1 ,mem_device_flag 
+035f c080472e bne mode_24g_device ,keyboard_value_calculator 
+0360 58000192 setarg 0x0192 
+0361 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_search:
+0362 6fe0c678 fetch 1 ,mem_device_flag 
+0363 c0804730 bne mode_24g_device ,keyboard_value_ac_search 
+0364 58000221 setarg 0x0221 
+0365 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_back:
+0366 6fe0c678 fetch 1 ,mem_device_flag 
+0367 c0804732 bne mode_24g_device ,keyboard_value_ac_back 
+0368 58000224 setarg 0x0224 
+0369 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_soft_kb:
+036a 6fe0c678 fetch 1 ,mem_device_flag 
+036b c0804737 bne mode_24g_device ,keyboard_value_os_soft_kb 
+036c 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+036d c0008370 beq system_os_android ,p_keyboard_value_os_soft_kb_android 
+036e 580001ae setarg 0x01ae 
+036f 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_soft_kb_android:
+0370 58000307 setarg 0x0307 
+0371 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_light_down:
+0372 6fe0c678 fetch 1 ,mem_device_flag 
+0373 c080473d bne mode_24g_device ,keyboard_value_light_down 
+0374 58000070 setarg 0x0070 
+0375 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_light_up:
+0376 6fe0c678 fetch 1 ,mem_device_flag 
+0377 c080473f bne mode_24g_device ,keyboard_value_light_up 
+0378 5800006f setarg 0x006f 
+0379 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_lock:
+037a 6fe0c678 fetch 1 ,mem_device_flag 
+037b c0804741 bne mode_24g_device ,keyboard_value_os_lock 
+037c 58000030 setarg 0x0030 
+037d 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mac_eject:
+037e 6fe0c678 fetch 1 ,mem_device_flag 
+037f c0804743 bne mode_24g_device ,keyboard_value_mac_eject 
+0380 580000b8 setarg 0x00b8 
+0381 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_forward:
+0382 6fe0c678 fetch 1 ,mem_device_flag 
+0383 c0804745 bne mode_24g_device ,keyboard_value_ac_forward 
+0384 58000225 setarg 0x0225 
+0385 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_stop:
+0386 6fe0c678 fetch 1 ,mem_device_flag 
+0387 c0804747 bne mode_24g_device ,keyboard_value_ac_stop 
+0388 58000226 setarg 0x0226 
+0389 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_android_set:
+038a 6fe0c678 fetch 1 ,mem_device_flag 
+038b c0804749 bne mode_24g_device ,keyboard_value_ac_refresh 
+038c 58000306 setarg 0x0306 
+038d 2020032f branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_system_sleep:
+038e 6fe0c678 fetch 1 ,mem_device_flag 
+038f c0804752 bne mode_24g_device ,keyboard_value_system_sleep 
+0390 704a6f02 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+0391 58000002 setarg 0x02 
+0392 67e0ca70 store 1 ,mem_keyboard_tx_data + 1 
+0393 202046e6 branch keyboard_motion_data_check_next 
+0394 c076c720 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+
+p_keyboard_app_enter_hibernate:
+0395 204047b3 call keyboard_setgpio_hibernate 
+0396 2020379c branch app_enter_hibernate 
+
+p_keyboard_key_process:
+0397 da20494e arg mem_keyscan_value_current ,rega 
+0398 da404963 arg mem_keyscan_value_check ,regb 
+0399 df200014 arg 20 ,loopcnt 
+039a 20407d66 call string_compare 
+039b 242283c4 nbranch p_keyboard_press_change_or_no_key ,zero 
+039c 202043ba branch keyboard_key_process + 5 
+
+p_keyboard_idle:
+039d 2040039f call p_keyboard_evt_ui_timer_check 
+039e 202042de branch keyboard_idle + 1 
+
+p_keyboard_evt_ui_timer_check:
+039f da200000 arg 0 ,rega 
+03a0 684a4b9a fetcht 4 ,mem_keyboard_evt_btclk 
+03a1 1c422400 copy clkn_bt ,regb 
+03a2 1a427e00 copy regb ,pdata 
+03a3 98467c00 isub temp ,null 
+03a4 244177f4 ncall ui_timer_timeout ,positive 
+
+p_keyboard_evt_ui_timer_check_loop:
+03a5 1a427e00 copy regb ,pdata 
+03a6 18408428 increase 40 ,temp 
+03a7 98467c00 isub temp ,null 
+03a8 242103b1 nbranch p_keyboard_evt_ui_timer_check_end ,positive 
+03a9 1a20a201 increase 1 ,rega 
+03aa 1a217e0f and rega ,0x0f ,pdata 
+03ab 243a03a5 nbranch p_keyboard_evt_ui_timer_check_loop ,blank 
+03ac da200000 arg 0 ,rega 
+03ad 204003b6 call p_keyboard_evt_ui_timer_check_send_evt 
+
+p_keyboard_evt_ui_timer_init:
+03ae 1c427e00 copy clkn_bt ,pdata 
+03af 67e24b9a store 4 ,mem_keyboard_evt_btclk 
+03b0 20600000 rtn 
+
+p_keyboard_evt_ui_timer_check_end:
+03b1 1a227e00 copy rega ,pdata 
+03b2 207a0000 rtn blank 
+03b3 184085d8 increase -40 ,temp 
+03b4 793f841c set0 28 ,temp 
+03b5 604a4b9a storet 4 ,mem_keyboard_evt_btclk 
+
+p_keyboard_evt_ui_timer_check_send_evt:
+03b6 67e0cb9e store 1 ,mem_keyboard_evt_timer_count 
+
+p_keyboard_evt_50ms_loop:
+03b7 6fe0cb9e fetch 1 ,mem_keyboard_evt_timer_count 
+03b8 207a0000 rtn blank 
+03b9 1fe0ffff increase -1 ,pdata 
+03ba 67e0cb9e store 1 ,mem_keyboard_evt_timer_count 
+03bb 204003bd call p_keyboard_delay_lpm_timer 
+03bc 202003b7 branch p_keyboard_evt_50ms_loop 
+
+p_keyboard_delay_lpm_timer:
+03bd 6fe0cb99 fetch 1 ,mem_keyboard_delay_lpm_flag 
+03be 207a0000 rtn blank 
+03bf 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+03c0 c07f83c2 beq 0xff ,p_keyboard_delay_lpm_timer_next 
+03c1 70409401 jam 1 ,mem_lpm_mode 
+
+p_keyboard_delay_lpm_timer_next:
+03c2 704b9900 jam 0 ,mem_keyboard_delay_lpm_flag 
+03c3 20600000 rtn 
+
+p_keyboard_press_change_or_no_key:
+03c4 70409400 jam 0 ,mem_lpm_mode 
+03c5 704b9901 jam 1 ,mem_keyboard_delay_lpm_flag 
+03c6 202043b1 branch keyboard_press_change_or_no_key 
+
+p_g24_transmit_no_interrupt:
+03c7 20204815 branch keyboard_g24_transmit_no_interrupt 
+
+p_keyboard_24g_start_pair_mode:
+03c8 20404184 call keyboard_low_voltage_led_off 
+03c9 20403f2c call keyboard_pairing_check_otp_offset 
+03ca 7049a900 jam 0 ,mem_keyboard_data_change_flag 
+03cb 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+03cc 247a0000 nrtn blank 
+03cd 58000000 setarg 0 
+03ce 67e14741 store 2 ,mem_device_no_data_timer 
+03cf 67e145f5 store 2 ,mem_24g_reconn_timeout 
+03d0 67e0c5f9 store 1 ,mem_24g_reconn_type 
+03d1 d8e00000 arg keyboard_24g_pairing_flag ,queue 
+03d2 20404a25 call keyboard_enable_function_flag 
+03d3 204048e9 call keyboard_stop_discovery 
+03d4 7045a002 jam type_kb ,mem_24g_data_type 
+03d5 2020326f branch g24_pair_start 
+
+p_keyboard_device_pair_led_timer:
+03d6 6fe0c678 fetch 1 ,mem_device_flag 
+03d7 c00003d9 beq mode_24g_device ,p_keyboard_device_24g_pair_led 
+03d8 20204148 branch keyboard_device_pair_led_timer + 2 
+
+p_keyboard_device_24g_pair_led:
+03d9 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+03da 203a03dc branch p_keyboard_pair_sucess_led_move ,blank 
+03db 2020414d branch keyboard_device_pair_led 
+
+p_keyboard_pair_sucess_led_move:
+03dc 6fe0cac5 fetch 1 ,mem_keyboard_mode_led_on_timer 
+03dd 247a0000 nrtn blank 
+03de 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+03df 243a03e3 nbranch p_keyboard_pair_sucess_led_move_next ,blank 
+03e0 6fe0c70d fetch 1 ,mem_keyboard_led_status 
+03e1 c28083e3 bbit1 kb_pc_keysel_capslock ,p_keyboard_pair_sucess_led_move_next 
+03e2 20204172 branch keyboard_device_24g_led_off 
+
+p_keyboard_pair_sucess_led_move_next:
+03e3 20600000 rtn 
+
+p_keyboard_adc_vol_init:
+03e4 6fe0c8b1 fetch 1 ,mem_keyboard_power_type 
+03e5 c0004098 beq keyboard_battary_1v5 ,keyboard_adc_vol_1v5_init 
+03e6 c00083e9 beq keyboard_battary_3v0 ,p_keyboard_adc_vol_3v0_init 
+03e7 c00140a2 beq keyboard_battary_4v2 ,keyboard_adc_vol_4v2_init 
+03e8 20204098 branch keyboard_adc_vol_1v5_init 
+
+p_keyboard_adc_vol_3v0_init:
+03e9 58be0122 setarg 0xbe0122 
+03ea 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
+03eb 5800dc00 setarg 0x00dc00 
+03ec e7e18005 istore 3 ,contw 
+03ed 20600000 rtn 
+
+p_mouse_adc_bat_percent_lowpower_out:
+03ee efe40011 ifetch 8 ,rega 
+03ef 67e4064e store 8 ,mem_pdatatemp 
+
+p_mouse_adc_bat_percent_lowpower_out_battery:
+03f0 20407057 call adc_clear_no_power_flag 
+03f1 204003fa call p_adc_clear_low_power_flag 
+03f2 6fe10654 fetch 2 ,mem_pdatatemp + 6 
+03f3 68490650 fetcht 2 ,mem_pdatatemp + 2 
+03f4 98467c00 isub temp ,null 
+03f5 24417054 ncall adc_set_no_power_flag ,positive 
+03f6 68490652 fetcht 2 ,mem_pdatatemp + 4 
+03f7 98467c00 isub temp ,null 
+03f8 244103fd ncall p_adc_set_low_power_flag ,positive 
+03f9 20204ed0 branch mouse_adc_bat_level_set 
+
+p_adc_clear_low_power_flag:
+03fa 6848c422 fetcht 1 ,mem_adc_power_flag 
+03fb 793f8400 set0 0 ,temp 
+03fc 20207059 branch adc_set_power_flag 
+
+p_adc_set_low_power_flag:
+03fd 6848c422 fetcht 1 ,mem_adc_power_flag 
+03fe 79200400 set1 0 ,temp 
+03ff 20207059 branch adc_set_power_flag 
+
+p_gpio_set_ds_bit:
+0400 d8a08049 arg core_gpio_ds ,contw 
+0401 18410e07 and temp ,0x07 ,queue 
+0402 18497e00 rshift3 temp ,pdata 
+0403 1fe17e03 and_into 3 ,pdata 
+0404 98a08a00 iadd contw ,contw 
+0405 efe08005 ifetch 1 ,contw 
+0406 f9207e00 qset1 pdata 
+0407 e7e08005 istore 1 ,contw 
+0408 20600000 rtn 
+
Index: output/ramcode.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/ramcode.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/ramcode.rom	(working copy)
@@ -0,0 +1,1033 @@
+c284001d
+c0000038
+c00d006c
+c0128046
+c01400ad
+c01f02a0
+c01f82a3
+c02000f1
+c02181fa
+c02203e4
+c024839d
+c02580fc
+c0260100
+c0270229
+c0288273
+c02b029a
+c02b83c8
+c02c82ff
+c02e0302
+c02f0176
+c03502ae
+c03e0395
+c04103ee
+c051c7fb
+c0748077
+c0750074
+c06780bc
+c07d00a9
+2020233e
+c17f8000
+c0568054
+c05e8057
+c06103c7
+c0798023
+2020233e
+37d98200
+708a8660
+708a8b3b
+2040229d
+70804300
+70804205
+58557474
+67f18968
+7089606e
+20402135
+20402287
+20402281
+7041480c
+708a3006
+708a32dd
+708a88e0
+708a8c2d
+708a3178
+20406f53
+204022cb
+20206ac9
+2435803b
+37d98200
+37d98200
+20403e9a
+24342002
+6fe0c88d
+203a2002
+6fe0c90f
+c07fa002
+1fe20e00
+6fe2067b
+afec0000
+2040c69b
+20202002
+6fe143f2
+20407d7b
+6fe240ad
+9840fe00
+67e240ad
+204023d7
+6fe0c0cb
+79207e04
+204023c3
+2455a3ad
+37d98200
+1b227e00
+67e340b1
+20202413
+6fe24576
+207a0000
+202032ad
+6fe145f7
+1fe17ee0
+203a005e
+6fe145f7
+1fe0fe01
+67e145f7
+20600000
+20403557
+2040362a
+242c355e
+2437b55e
+20400064
+20203540
+20403647
+6fe0c50f
+2fe1f008
+24608000
+6fe0c510
+c07fc7fb
+67e0c70d
+20600000
+37d98200
+7089460d
+70896f10
+708a13cd
+6ff08a06
+1fe17efc
+67f08a06
+20202255
+20406b28
+20406b63
+20206b26
+20406b22
+20406b2f
+20406b29
+e8408011
+1a20a201
+18000e00
+793f8022
+a84c0000
+202080a1
+6ff08046
+79207e06
+79207e07
+67f08046
+70804702
+70804782
+793ffe07
+67f08046
+7080478a
+2000000b
+708047ca
+20000021
+7080474a
+2000002c
+708047ca
+20000016
+7080478a
+20000021
+70804782
+20000001
+70804792
+2000000a
+708047b2
+6ff08007
+70804792
+20000001
+70804782
+20000001
+afec0000
+2020807d
+c51100a1
+79200022
+2020007e
+6ff10044
+1fe0fe01
+67f10044
+18e08e01
+28e01e08
+2420807d
+c200007a
+20206b26
+79200407
+20406ee0
+7d208407
+20206eac
+204023f0
+6fe1c0bd
+207a0000
+20600000
+6fe0ca7a
+247a0000
+6fe0ca7b
+247a0000
+6fe0c720
+247a0000
+6fe14750
+247a0000
+6fe0ca9f
+247a0000
+20202467
+20403717
+20407384
+204000cc
+204001a2
+204000c2
+20203eb2
+6fe0c678
+c08000c6
+204035d3
+202058fc
+580000a0
+204040f9
+6fe0c422
+c4000000
+58000050
+202040f9
+204000d4
+20758000
+204035c8
+2040323a
+204000de
+7040a60a
+204000dc
+20203ec2
+6fe14948
+1fe22400
+df200008
+e8408012
+20400400
+1a40a401
+c20000d7
+20600000
+20404184
+20204162
+20403ef4
+204000e1
+20203edd
+58009000
+67e142f9
+6fe4488e
+c291e80c
+580095b8
+67e148d6
+6fe4488e
+c290680c
+c290e80c
+580094fc
+67e148d6
+6fe4488e
+c291680c
+58004ae8
+67e148d6
+2020680c
+6fe4488e
+c28780f4
+20203fd8
+6fe14abd
+68494abf
+98467c00
+20610000
+6fe0c678
+c0003fe1
+c000bfeb
+20600000
+58000100
+67e140a4
+7040a60c
+2020430f
+20400103
+20400397
+20204333
+204001a2
+58000000
+67e1499e
+d8c0494e
+d8a04963
+df200014
+20407cdc
+204043af
+5800494e
+67e14998
+58004ada
+67e1499a
+204043ad
+204043ab
+6fe1499e
+1fe0fe01
+67e1499e
+c2848103
+6848c911
+20406ee0
+24208111
+204043af
+6848c911
+20406ee0
+20208119
+20400151
+20400140
+204043ab
+204043ad
+6fe1494c
+1fe22400
+70499d00
+e8408012
+6fe1494a
+1fe22200
+1a222600
+df200014
+efe08011
+98467c00
+2022c366
+1a20a201
+c2000128
+1a40a401
+6fe0c99d
+1fe0fe01
+67e0c99d
+1fe67c0b
+20210123
+202001b9
+6fe14998
+1fe20a00
+1a227e00
+9a667e00
+98a08a00
+6fe1499a
+1fe22600
+6fe0c99d
+9a60a600
+efe08013
+e7e08005
+2020012d
+6fe1494a
+1fe22400
+70499d00
+70499c00
+e8408012
+284ffe07
+2020814b
+20406ef1
+20400165
+e8408012
+20406f0b
+1a40a401
+6fe14998
+2040437d
+1fe67c13
+20210143
+20600000
+70499d00
+204043a9
+20400159
+204043a7
+20400159
+1fe67c0b
+20210152
+202043a9
+70499c00
+20400165
+6fe1499a
+1fe20a00
+6fe0c99d
+98a08a00
+6fe0c99c
+e7e08005
+6fe0c99d
+1fe0fe01
+67e0c99d
+20600000
+6fe14948
+1fe22600
+df200008
+e8408013
+20406eed
+e8408013
+20406f0b
+200000f0
+e8408013
+20406ee0
+6fe0c99c
+1fe37e00
+7920fe07
+67e0c99c
+1a60a601
+c2000168
+20600000
+20407de6
+6848c90f
+20406eac
+6fe1494a
+1fe22400
+df200014
+e8408012
+284ffe07
+2440eef1
+1a40a401
+c200017c
+20403f1b
+70488c00
+6fe14948
+1fe22400
+df200008
+e8408012
+18467cff
+24428193
+e8408012
+20406f0b
+1a40a401
+c2000186
+20406f4b
+204023e1
+6848c666
+20404f0a
+20404f0e
+202040dd
+6fe0c9a0
+203a6eac
+20206ea5
+18467cff
+20628000
+d9000003
+20406e9c
+284c0000
+2020819d
+19121000
+efe08005
+9e017e00
+9901fe00
+e7e08005
+20600000
+20407de6
+6848c90f
+20404f0a
+6fe4488e
+2feffe0a
+204081cf
+5800491f
+67e14948
+58004927
+67e1494a
+5800493c
+67e1494c
+204001b9
+204023e1
+6fe1494a
+1fe22400
+df200014
+e8408012
+284ffe07
+2440ef0b
+1a40a401
+c2003f09
+20600000
+6fe14948
+1fe22400
+df200008
+e8408012
+20406f0b
+204001c2
+1a40a401
+c20001bc
+20600000
+20406ec0
+18467cff
+20628000
+d9000000
+20406e9c
+284c0000
+202081ca
+19121000
+efe08005
+9e017e00
+9901fe00
+e7e08005
+20600000
+6ff08142
+793ffe03
+67f08142
+20600000
+6fe0cac2
+207a0000
+1fe0ffff
+67e0cac2
+6fe4488e
+c29401dc
+6fe0cac2
+203a4166
+2020416c
+6fe0cac2
+203a413c
+2020413a
+6fe0c678
+c00001e3
+6fe0c753
+c1000000
+6fe0cac5
+c1800000
+6fe0cace
+c02d4193
+6fe14741
+207a0000
+6fe1471e
+68494741
+98460400
+6fe14ac3
+98467e00
+202101f2
+2040419d
+204041a9
+202041a3
+20404199
+204041a5
+202001f5
+6fe0c70d
+c300c1a3
+704ac200
+6848c914
+20206ef1
+204040e0
+204040cc
+204040dd
+20404100
+204001df
+204041ab
+204001d3
+2040413e
+204003d6
+20400217
+2040428f
+204042c4
+2040326c
+20403507
+204058f6
+204042b5
+204042bf
+20404299
+204042a4
+2040550d
+204042ad
+20405510
+204042b2
+204042a1
+20405527
+2040429e
+204042c9
+204042cc
+202042d5
+20400219
+2020021f
+7048a900
+6fe0c8a7
+207a0000
+7048a700
+20400225
+20206c99
+7048aa00
+6fe0c8a8
+207a0000
+7048a800
+20404045
+20206c99
+6fe4488e
+c287d594
+c2874045
+20600000
+2040442e
+20400249
+2040022d
+202043dd
+6fe0c9aa
+c02344f2
+c025c4f8
+c02744fe
+c0254500
+c026c502
+c052c504
+c053450b
+c053c50d
+c054450f
+c054c511
+c055451c
+c056c523
+c055c52a
+c0564535
+c057823e
+20600000
+6fe0caa1
+c0018246
+6fe0c678
+c0800244
+6fe0caa1
+c0010246
+580000f0
+202044aa
+704a9d08
+704a9e0b
+2020453e
+6fe0c9ab
+2feffe00
+2040c4f0
+20400269
+6fe0ca7a
+245a445b
+6fe0c74f
+c17f8000
+6fe4488e
+c31a0255
+6fe0ca93
+20200256
+6fe0ca84
+6848ca7a
+9842fe00
+20628000
+6fe0c9aa
+c014c451
+c0264459
+c01d027d
+c01d8283
+c01e0289
+c01e8293
+1fe67c45
+24610000
+d840003a
+98467e00
+24610000
+d8c04a86
+98c08c00
+efe08006
+202044aa
+6fe0caa1
+c1810000
+6fe0c9aa
+c01a826e
+20600000
+6fe0ca7d
+c1008000
+704a9d40
+704a9e35
+2020453e
+20404468
+6fe0c9aa
+c029448d
+c028c491
+c0284495
+c027c499
+c00d44ac
+c00444bc
+c00a44c3
+20600000
+6fe0caa1
+c0010281
+580000f6
+202044aa
+580000f8
+202044aa
+6fe0caa1
+c0010287
+580000f1
+202044aa
+580000f9
+202044aa
+6fe0caa1
+c001028f
+c0008291
+704a9d08
+704a9e0c
+2020453e
+580000f7
+202044aa
+580000fe
+202044aa
+6fe0caa1
+c0010297
+580000e8
+202044aa
+704a9d0a
+704a9e20
+2020453e
+6fe0c750
+c1800000
+70470d00
+204041a3
+20404184
+20204677
+6fe4488e
+c287bf31
+20203ec8
+204002a5
+20203fa4
+6fe0c678
+d84000ff
+98467c00
+2022bfca
+6fe146a0
+d840aa55
+98467c00
+2022e7cf
+20203fca
+1a220c00
+efe18006
+67e1c39b
+c000c919
+c003c95c
+c004c938
+c005c952
+c0044971
+c00602bb
+c005499f
+c00949c5
+c02949cb
+20202b76
+efe10006
+67e10693
+98002200
+6849439c
+6fe14334
+98467c00
+2422ad2e
+20204999
+6849439c
+6fe0c323
+c28182f9
+6fe4488e
+c30582c9
+c30c82cb
+6fe1439c
+c0182de1
+6fe1439c
+c002c9b7
+c00849ba
+6849439c
+6fe4488e
+c29182db
+6fe14334
+98467c00
+242282db
+20402e24
+684948d6
+18420c00
+e8410006
+18408401
+20407db2
+202002eb
+20402cb0
+2422ade1
+20542d26
+20740000
+20402cbb
+18c08dfe
+efe10006
+d8402a00
+98467c00
+2022ad14
+18c22600
+20402e24
+1a620c00
+e8408006
+18408401
+20407db2
+1fe22600
+1fe22200
+20407c6f
+20402dee
+5800000b
+e7e08005
+6fe1439c
+c00f82f6
+1a60f3ff
+20407c69
+20207cdc
+1a60f3ff
+d8c04ae6
+20207cdc
+6fe14334
+98467c00
+242282c6
+20402da5
+243402cb
+20202d24
+6fe0caa0
+c0010320
+202046cd
+18427e00
+704a6f05
+6848c9a6
+18467c00
+20228320
+c074032c
+c0748332
+c0750336
+c075833a
+c076033e
+c0768342
+c0770346
+c077834a
+c078034e
+c0788352
+c0790356
+c079835a
+c07a035e
+c07a8362
+c07b0366
+c07b836a
+c07c0372
+c07c8376
+c07d037a
+c07d837e
+c07e0382
+c07e8386
+c07f038a
+c07f838e
+202046e6
+7049a902
+6fe0c9a6
+205a46ef
+704aa000
+6fe0c678
+c0000329
+58000005
+67e1ca6f
+202046e6
+58000003
+67e1ca6f
+202046e6
+6fe0c678
+c0804715
+58000183
+67e14a70
+704a6f03
+202046e6
+6fe0c678
+c0804718
+580000ea
+2020032f
+6fe0c678
+c080471a
+580000e9
+2020032f
+6fe0c678
+c080471c
+580000e2
+2020032f
+6fe0c678
+c080471e
+580000b6
+2020032f
+6fe0c678
+c0804720
+580000b5
+2020032f
+6fe0c678
+c0804722
+580000cd
+2020032f
+6fe0c678
+c0804724
+580000b7
+2020032f
+6fe0c678
+c0804726
+58000223
+2020032f
+6fe0c678
+c0804728
+5800018a
+2020032f
+6fe0c678
+c080472a
+58000194
+2020032f
+6fe0c678
+c080472c
+5800022a
+2020032f
+6fe0c678
+c080472e
+58000192
+2020032f
+6fe0c678
+c0804730
+58000221
+2020032f
+6fe0c678
+c0804732
+58000224
+2020032f
+6fe0c678
+c0804737
+6fe0caa1
+c0008370
+580001ae
+2020032f
+58000307
+2020032f
+6fe0c678
+c080473d
+58000070
+2020032f
+6fe0c678
+c080473f
+5800006f
+2020032f
+6fe0c678
+c0804741
+58000030
+2020032f
+6fe0c678
+c0804743
+580000b8
+2020032f
+6fe0c678
+c0804745
+58000225
+2020032f
+6fe0c678
+c0804747
+58000226
+2020032f
+6fe0c678
+c0804749
+58000306
+2020032f
+6fe0c678
+c0804752
+704a6f02
+58000002
+67e0ca70
+202046e6
+c076c720
+204047b3
+2020379c
+da20494e
+da404963
+df200014
+20407d66
+242283c4
+202043ba
+2040039f
+202042de
+da200000
+684a4b9a
+1c422400
+1a427e00
+98467c00
+244177f4
+1a427e00
+18408428
+98467c00
+242103b1
+1a20a201
+1a217e0f
+243a03a5
+da200000
+204003b6
+1c427e00
+67e24b9a
+20600000
+1a227e00
+207a0000
+184085d8
+793f841c
+604a4b9a
+67e0cb9e
+6fe0cb9e
+207a0000
+1fe0ffff
+67e0cb9e
+204003bd
+202003b7
+6fe0cb99
+207a0000
+6fe0c74f
+c07f83c2
+70409401
+704b9900
+20600000
+70409400
+704b9901
+202043b1
+20204815
+20404184
+20403f2c
+7049a900
+6fe145ef
+247a0000
+58000000
+67e14741
+67e145f5
+67e0c5f9
+d8e00000
+20404a25
+204048e9
+7045a002
+2020326f
+6fe0c678
+c00003d9
+20204148
+6fe145ef
+203a03dc
+2020414d
+6fe0cac5
+247a0000
+6fe0cac2
+243a03e3
+6fe0c70d
+c28083e3
+20204172
+20600000
+6fe0c8b1
+c0004098
+c00083e9
+c00140a2
+20204098
+58be0122
+67e1c8ab
+5800dc00
+e7e18005
+20600000
+efe40011
+67e4064e
+20407057
+204003fa
+6fe10654
+68490650
+98467c00
+24417054
+68490652
+98467c00
+244103fd
+20204ed0
+6848c422
+793f8400
+20207059
+6848c422
+79200400
+20207059
+d8a08049
+18410e07
+18497e00
+1fe17e03
+98a08a00
+efe08005
+f9207e00
+e7e08005
+20600000
Index: output/romcode.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/romcode.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/romcode.rom	(working copy)
@@ -0,0 +1,31735 @@
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00020001
+18000228
+03020002
+030a0128
+2a000200
+00000014
+00000000
+00000000
+00000000
+00000000
+02000400
+02012803
+01020005
+03c2022a
+03020006
+07020128
+2a040200
+06000608
+2c006400
+02000801
+01022800
+02000918
+20012803
+0502000a
+000b002a
+02290202
+000c0000
+02280002
+000d180a
+01280302
+02000e02
+59062a29
+69684369
+02000f70
+02012803
+50020010
+3502072a
+01aa2212
+02001100
+12022800
+02001218
+06012803
+4e020013
+1401012a
+28030200
+00151201
+082a4d02
+00000000
+00000000
+02020016
+00000229
+08020017
+01020229
+03020018
+191a0128
+2a4d0200
+00000007
+00000000
+0202001a
+00000229
+0802001b
+01010229
+0302001c
+1d120128
+2a4d0200
+1e000002
+29020200
+1f000002
+29080200
+20010302
+28030200
+00211201
+022a4d02
+00220000
+02290202
+00230000
+02290802
+00240104
+01280302
+0200250e
+00022a4d
+02002600
+02022908
+02002702
+02012803
+4b020028
+0c05f52a
+01a10109
+00150585
+01750125
+830a1895
+09ea0901
+09e209e9
+09b509b6
+0ab709cd
+8a0a0223
+01940a01
+0a022a0a
+210a0192
+02240a02
+0a03070a
+700901ae
+30096f09
+250ab809
+02260a02
+8102270a
+0105c002
+01a10609
+01750285
+07050895
+e729e019
+01250015
+01950281
+03810875
+01750595
+01190805
+02910529
+03750195
+06950391
+00150875
+0500ff26
+2a001907
+008100ff
+090105c0
+8501a102
+a1010901
+19090500
+15082901
+75012500
+81089501
+09010502
+16310930
+ff26f801
+95107507
+09068102
+25811538
+9508757f
+05068101
+02380a0c
+06810195
+0105c0c0
+01a18009
+00150485
+01750125
+81190395
+02818329
+05750195
+29c00381
+28030200
+002a1a01
+082a3302
+00000000
+00000000
+0202002b
+00010229
+0302002c
+2d020128
+2a4a0200
+00010104
+02002e03
+0f022800
+02002f18
+12012803
+19020030
+3164012a
+29020200
+32000002
+28030200
+00330401
+002a4c02
+061a0000
+8809ffbc
+048501a1
+ff2a0019
+26001500
+087500ff
+00810195
+010541c0
+01a10609
+08950175
+e0190705
+0015e729
+02810125
+08750195
+05950381
+08050175
+05290119
+01950291
+03910375
+08750695
+ff260015
+19070500
+00ff2a00
+f3c00081
+02090105
+018501a1
+00a10109
+01190905
+00150529
+05950125
+02810175
+03750195
+01050181
+31093009
+26F80116
+107507FF
+06810295
+81153809
+08757f25
+06810195
+380a0c05
+81019502
+05c0c006
+a1800901
+05028501
+29811901
+25001588
+75089501
+c0068101
+09ff0006
+8501a10e
+751f95BA
+00ff2608
+01090015
+BA850291
+08751f95
+1500ff26
+81010900
+0c05C002
+01a10109
+00150585
+01750125
+830a1895
+09ea0901
+09e209e9
+09b509b6
+0ab709cd
+8a0a0223
+01940a01
+0a022a0a
+210a0192
+02240a02
+0a03070a
+700901ae
+30096f09
+250ab809
+02260a02
+8102270a
+0c05c002
+01a10109
+00150385
+19038026
+03802a00
+01951075
+12c00081
+02000112
+40000000
+10203151
+02010002
+093b0100
+02003b02
+32a00001
+00000409
+01010301
+00210900
+22010002
+0507001a
+00400381
+01040902
+01030100
+21090002
+01000200
+0700f322
+40038205
+00010200
+02280002
+00021801
+01280302
+02000320
+00012a05
+02020004
+00000229
+00020005
+18000228
+03020006
+07020128
+2a000200
+69684313
+61657370
+454c422d
+20202020
+20202020
+03020008
+09020128
+2a010200
+0a03c102
+28030200
+000b0201
+082a0402
+00060006
+012c0064
+0002000c
+180a0228
+0302000d
+0e020128
+2a500200
+248a0207
+00018266
+0002000f
+18120228
+03020010
+11060128
+2a4e0200
+00120101
+01280302
+02001312
+00022a4d
+02001400
+00022902
+02001500
+02022908
+02001601
+12012803
+4d020017
+0000022a
+02020018
+00000229
+08020019
+01030229
+0302001a
+1b020128
+2a4b0200
+090c051b
+8501a101
+09e90902
+09e209ea
+25011530
+9510750c
+c0008101
+0302001c
+1d020128
+2a4a0200
+00011104
+02001e01
+04012803
+4c02001f
+2000012a
+28000200
+21180f02
+28030200
+00221201
+012a1902
+02000063
+00020013
+01001302
+00130200
+13020004
+02000600
+00050013
+00001302
+00170200
+17022800
+01000000
+28000200
+02180102
+28030200
+00032001
+012a0502
+02000400
+00022902
+02000500
+00022800
+02000618
+02012803
+00020007
+4355112a
+204e4f48
+20203130
+20202020
+08202020
+28030200
+00090201
+022a0102
+000a00c8
+01280302
+02000b02
+06082a04
+64000600
+0c012c00
+28000200
+0d180a02
+28030200
+000e0201
+072a5002
+66248a02
+0f000182
+28000200
+10fff002
+28030200
+00111201
+0efff102
+00000000
+00000000
+00000000
+00120000
+02290202
+00130000
+01280302
+02001408
+000efff2
+00000000
+00000000
+00000000
+98000000
+91428a2f
+cf713744
+a5b5c0fb
+5be9b5db
+f13956c2
+a459f111
+d5923f82
+98ab1c5e
+01d807aa
+be12835b
+c3243185
+74550c7d
+fe72be5d
+a780deb1
+749bdc06
+c1c19bf1
+86e49b69
+c6efbe47
+cc0fc19d
+6f240ca1
+aa2de92c
+dc4a7484
+da5cb0a9
+5276f988
+6d983e51
+c8a831c6
+c7b00327
+f3bf597f
+47c6e00b
+51d5a791
+6706ca63
+85142929
+3827b70a
+fc2e1b21
+134d2c6d
+5453380d
+bb650a73
+2e766a0a
+8581c2c9
+a192722c
+4ba2bfe8
+70a81a66
+a3c24b8b
+19c76c51
+24d192e8
+85d69906
+70f40e35
+16106aa0
+0819a4c1
+4c1e376c
+b5274877
+b334b0bc
+4a391c0c
+4f4ed8aa
+f35b9cca
+ee682e6f
+6f748f82
+1478a563
+0884c878
+fa8cc702
+eb90beff
+f7a4506c
+f2bef9a3
+00c67178
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+0000d05f
\ No newline at end of file
Index: output/sched.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/sched.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/output/sched.rom	(working copy)
@@ -0,0 +1,892 @@
+mem_patch00:
+01   #mem_patch00
+00   #mem_patch01
+00   #mem_patch02
+04   #mem_patch03
+20   #mem_patch04
+01   #mem_patch05
+00   #mem_patch06
+c0   #mem_patch07
+19   #mem_patch08
+5a   #mem_patch09
+c2   #mem_patch0a
+52   #mem_patch0b
+00   #mem_patch0c
+04   #mem_patch0d
+00   #mem_patch0e
+10   #mem_patch0f
+04   #mem_patch10
+00   #mem_patch11
+00   #mem_patch12
+00   #mem_patch13
+08   #mem_patch14
+00   #mem_patch15
+00   #mem_patch16
+00   #mem_patch17
+00   #mem_patch18
+80   #mem_patch19
+00   #mem_patch1a
+00   #mem_patch1b
+00   #mem_patch1c
+06   #mem_patch1d
+00   #mem_patch1e
+04   #mem_patch1f
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+00   #mem_patch23
+00   #mem_patch24
+00   #mem_patch25
+00   #mem_patch26
+00   #mem_patch27
+00   #mem_patch28
+00   #mem_patch29
+00   #mem_patch2a
+00   #mem_patch2b
+00   #mem_patch2c
+00   #mem_patch2d
+00   #mem_patch2e
+00   #mem_patch2f
+00   #mem_patch30
+00   #mem_patch31
+00   #mem_patch32
+00   #mem_patch33
+00   #mem_patch34
+20   #mem_patch35
+00   #mem_patch36
+20   #mem_patch37
+04   #mem_patch38
+00   #mem_patch39
+00   #mem_patch3a
+00   #mem_patch3b
+00   #mem_patch3c
+00   #mem_patch3d
+08   #mem_patch3e
+00   #mem_patch3f
+
+
+mem_keyboard_flag:
+#byte 0
+#bit0 KEYBOARD_24G_PAIRING_FLAG
+#bit1 KEYBOARD_STORE_MEMORY_FLAG
+#bit2 KEYBOARD_LOW_VOLTAGE_FLAG
+#bit3 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit4 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+00
+
+#byte 1
+#bit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+#bit1 KEYBOARD_ENABLE_16M
+#bit2 KEYBOARD_DISABLE_ICE
+#bit3 KEYBOARD_ENABLE_ADC
+#bit4 KEYBOARD_ENABLE_FLASH
+#bit5 KEYBOARD_ENABLE_2K_EEPROM
+#bit6 KEYBOARD_ENABLE_EEPROM
+#bit7 KEYBOARD_ENABLE_OTP
+69
+
+#byte 2
+#bit0 KEYBOARD_ENABLE_24G
+#bit1 KEYBOARD_ENABLE_AUTO_24G_PARING
+#bit2 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit4 KEYBOARD_ENABLE_24G_2M_PHY
+#bit5 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+05
+
+#byte 3
+#bit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+#bit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit2 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+01
+
+#byte 4
+#bit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+#bit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+#bit2 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+#bit3 KEYBOARD_ENABLE_MOUSE
+#bit4 KEYBOARD_ENABLE_USB
+00
+
+#byte 5
+#bit0 KEYBOARD_ENABLE_030_POWER_LED
+#bit1 KEYBOARD_ENABLE_LOW_LED
+#bit2 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+#bit3 KEYBOARD_ENABLE_BACKLIGHT
+03
+
+#byte 6
+#bit0 KEYBOARD_ENABLE_FN_ARROW
+#bit1 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+#bit2 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+#bit3 KEYBOARD_ENABLE_FN_OS_SWITCH
+#bit4 KEYBOARD_ENABLE_FN_LOCK
+0f
+
+#byte 7
+#bit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+#bit2 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+#bit3 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+#bit4 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+00
+
+
+mem_device_option:0f
+mem_power_on_flag:01
+
+
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:01
+
+#rf
+mem_tx_power:01	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_rssi_buff_index:07
+mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
+mem_rssi_dis_min_24g_init:85
+mem_rssi_dis_max_24g_init:90
+mem_rssi_dis_min_ble_init:75
+mem_rssi_dis_max_ble_init:80
+mem_rssi_hex_received_max_value_init:63
+mem_power_ctrl_pac_succ_cnt_init:7d
+
+#usb
+mem_keyboard_usb_vid_pid:
+01 #enable
+#mouse only#auto pair
+51 31#VID
+10 50#PID
+#mouse & keyboard
+51 31#VID
+20 50#PID
+
+#2.4g
+mem_24g_lap: 03 11 36 55 51 61
+mem_24g_data_type:02	#01--mouse  02--keyboard
+mem_24g_fast_conn_enable:01
+mem_24g_fast_conn_addr:0f 0f 0f 0f
+mem_24g_ch_map_update:00   #00--disable   01--enable
+mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
+mem_24g_disable_fec1:00	 #00--default mode  01--new process
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+mem_device_24g_pair_tx_power:94 #-20dBm
+
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:0a 00	#1s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_device_24g_search_dongle_time_init:32 00	#3mins
+mem_store_information_delay_timer_init:02
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+#bt
+mem_lpm_mode:01
+mem_lpm_mult:10
+mem_lpm_mult_init:10
+
+
+#ble
+mem_le_lap:73 83 92 a1 b1 c1
+mem_le_adv_channel_map:07
+
+mem_le_battery_level_updata_timer_init:96 00
+mem_le_keyboard_handle:15 00
+mem_le_notify_handle:19 00
+mem_le_multimedia_handle:1d 00
+mem_le_systemctrl_handle:21 00
+mem_le_pairing_handle:28 00
+mem_le_battery_level_handle:30 00
+mem_keyboard_hid_fix_handle:05 01
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#flag
+02 01 05
+#uuid
+03 03 12 18
+#appearance
+03 19 c1 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+#06 ff 06 00 03 00 80
+#name
+'\09BT KEYBOARD
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BT KEYBOARD
+
+#max 20bytes, att list data rom limits
+mem_le_name_len:
+'BT KEYBOARD
+
+mem_le_interval_min:
+08 00 #min interval
+08 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_le_search_mac_manu_name:
+41 70 70 6c 65 20 49 6e 63
+mem_le_search_mac_uuid:
+0a 18
+mem_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+mem_keybord_appearance:c1 03
+
+mem_keyboard_le_change_vid_pid_flag:
+01			# 00:disable    01:enable
+02
+e8 04		# vid: 04 e8
+21 70		# pid: 70 21
+01 00
+
+mem_keyboard_blob_response_consumer_customize:
+09 b8 		#bit4  MAC EJECT
+0a 25 02 		#bit5  AC Forward
+0a 26 02 		#bit6  AC Stop
+0a 24 02 		#bit6  AC Back
+
+81 02
+c0
+05 01
+09 06
+a1 01
+85 02
+
+#adc
+
+#adc config
+mem_keyboard_power_type:01 #00 1v5; 01 3v0; 02 4v2
+mem_adc_config_flag:01
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:00
+#00 ADC_CH_VBAT
+#01 ADC_CH_VDCDC5V
+#06 ADC_CH_GPIO18
+#07 ADC_CH_GPIO10
+#08 ADC_CH_GPIO9
+#09 ADC_CH_GPIO12
+#0a ADC_CH_GPIO6
+#0b ADC_CH_GPIO20
+#0c ADC_CH_GPIO21
+#0d ADC_CH_GPIO22
+#0e ADC_CH_GPIO13
+
+mem_adc_dma_enable:00
+mem_adc_saddr_ptr:00 07
+mem_adc_eaddr_ptr:ff 07
+
+#led
+mem_keyboard_device_poweron_timer_init:1e
+
+#system
+mem_device_24g_power_on_fast_conn_timer:02 00	#1s
+mem_device_24g_reconn_timeout_init:64 #10s
+mem_device_24g_pair_timeout_init:58 02  #1min
+mem_device_fast_direct_timeout:64 #10s
+mem_device_direct_timeout:64  #10s
+mem_device_discovery_timeout:58 02  #1min
+mem_device_no_data_timeout:70 17   #10mins
+mem_adc_low_volatage_led_blink_timer:64 00 #10s
+mem_keyboard_pair_led_blink_count:05	#500ms
+mem_keyboard_low_volatage_led_blink_count:02		#200ms
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+
+mem_device_flag:00	#00--24g 01--ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 00 00
+
+mem_device_number:01
+mem_keyboard_switch_device_to_g24:01  7f 1f		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt1:01  7f 1e		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt2:00  7f 20		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt3:00  7f 21		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_usb:00  7f 22
+
+#rgb
+mem_rgb_on_color:
+07		#white
+01		#blue
+02		#green
+04		#red
+03		#cyan
+05		#purple
+06		#orange
+
+mem_customize_timer_setup: 50 00  	# n*0.3125ms
+mem_keyboard_num_caps_scoll_led_on_timer:58 02		#1min
+
+mem_rgb_pwm_conf:
+13	#pwm gpio
+01	#pwm channel
+a0	#three  byte frequency
+0f
+00
+1e 	#duty cycle (by percent %)
+
+mem_keyboard_led_r_gpio:ff #13
+mem_keyboard_led_g_gpio:ff #14
+mem_keyboard_led_b_gpio:ff #15
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:00					#                 00                                    00                                 01
+# mem_config_select_device_button_gpio:ff			#              00~16			               ff					ff
+mem_keyboard_commbination_key_bt:ff ff			#		 not care				   not care			     Fn+C
+mem_keyboard_commbination_key_24g:ff ff		#		 not care				   not care			     Esc+Q
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+mem_eeprom_wp_gpio:ff
+mem_eeprom_scl_gpio:03
+mem_eeprom_sda_gpio:02
+mem_eeprom_base:10 00
+mem_flash_base:00 50 00
+mem_otp_read_retention_max_size:20 03
+
+
+mem_keyboard_caps_led_gpio:81
+mem_keyboard_num_led_gpio:ff
+mem_keyboard_power_led_gpio:81
+mem_keyboard_low_voltage_alarm_gpio:80
+mem_keyboard_scroll_led_gpio:ff
+mem_keyboard_24g_led_gpio:81
+mem_keyboard_bt1_led_gpio:81
+mem_keyboard_bt2_led_gpio:ff
+mem_keyboard_bt3_led_gpio:ff
+
+#mem_rf_debug_rx_gpio:96
+#mem_rf_debug_tx_gpio:89
+
+
+mem_mcu_stb_gpio:0b			#IOB0
+mem_mcu_clk_gpio:0a				#IOB1
+mem_mcu_rstb_gpio:ff
+
+mem_keyboard_pb_button_gpio:0c
+mem_device_reuse_2ice_gpio:05
+#portA:8x,portB:cx,fixed conf,don't change
+mem_key_excol_gpio:c2 c1 85 84 83 82 81 80 c7 c6 c4 c3   #fx0012
+
+#gpio00~16
+mem_key_row_gpio:
+06		#r0
+07		#r1
+08		#r2
+15		#r3
+14		#r4
+13		#r5
+12		#r6
+11		#r7
+
+#gpio00~16   portA:8x,portB:cx
+mem_key_col_gpio:
+84		#c0
+10		#c1
+0f		#c2
+0e		#c3
+0d		#c4
+c2		#c5
+c3		#c6
+c4		#c7
+c7		#c8
+80		#c9
+81		#c10
+85		#c11
+c6		#c12
+c5		#c14
+82		#c15
+83 		#c16
+ff		#c13
+ff		#c17
+ff		#c18
+ff		#c19
+ff		#c20
+
+mem_keyboard_keyvalue_map:
+#r0 ~ r7
+#A  B  C    D   E    F   G  H
+00 00 00 00 e6 00 7f 3e #A   
+14 2b 04 29 1d 00 35 1e #B
+1a 39 16 00 1b 00 3a 1f #C
+08 3c 07 3d 06 00 3b 20 #D
+15 17 09 0a 19 05 22 21 #E
+18 1c 0d 0b 10 11 23 24 #F
+0c 30 0e 3f 36 00 2e 25 #G
+12 40 0f 00 37 00 41 26 #H
+13 2f 33 34 00 38 2d 27 #I
+00 00 e0 e3 00 e7 00 45 #J
+00 2a 31 00 28 00 42 43 #K
+00 00 00 2c 44 51 4c 00 #L
+00 00 00 00 00 4f 00 00 #M
+00 00 00 52 00 50 00 00 #N
+00 e1 e5 00 00 00 00 00 #O
+00 e2 00 00 00 00 00 00 #P
+00 00 00 00 00 00 00 00 #QS
+
+mem_keyboard_fn_first:	00			#fn first  00:press f1~f12=f1~f12      01:press fn+f1~f12=f1~f12
+mem_keyboard_fn_esc:	af			#esc
+mem_keyboard_fn_f1: 3a			#f1
+mem_keyboard_fn_f2:	3b			#f2
+mem_keyboard_fn_f3:	3c			#f3
+mem_keyboard_fn_f4:	3d			#f4
+mem_keyboard_fn_f5:	ad			#f5
+mem_keyboard_fn_f6:	ab			#f6
+mem_keyboard_fn_f7:	ec			#f7
+mem_keyboard_fn_f8:	ee			#f8
+mem_keyboard_fn_f9:	ed			#f9
+mem_keyboard_fn_f10:	eb			#f10
+mem_keyboard_fn_f11:	e9			#f11
+mem_keyboard_fn_f12:	ea			#f12
+mem_keyboard_fn_del:	a9			#delete
+mem_keyboard_fn_lock_keyvalue:29
+
+mem_keyboard_le_table:
+#att table
+# 01 00 02 00 28  # Primary Service Declaration
+# 02 00 18        # Generic Access Service (UUID: 0x1800)
+# 02 00 02 03 28  # Characteristic Declaration
+# 01 0a           # Properties: Read, Write
+# 03 00 02 00 2a  # Device Name Characteristic (UUID: 0x2A00)
+# 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+# 04 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 05 00 02 01 2a  # Appearance Characteristic (UUID: 0x2A01)
+# 02 c1 03        # Value: 0x03C2 (Generic Keyboard)
+
+# 06 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 07 00 02 04 2a  # Peripheral Preferred Connection Parameters (UUID: 0x2A04)
+# 08 06 00 06 00  # Minimum Connection Interval: 0x0006 (7.5ms)
+# 64 00           # Maximum Connection Interval: 0x0064 (100ms)
+# 2c 01           # Slave Latency: 0x012C (300)
+
+# 08 00 02 00 28  # Primary Service Declaration
+# 02 01 18        # Generic Attribute Service (UUID: 0x1801)
+# 09 00 02 03 28  # Characteristic Declaration
+# 01 20           # Properties: Indicate
+# 0a 00 02 05 2a 01 00 # Service Changed Characteristic (UUID: 0x2A05)
+# 0b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+
+# 0c 00 02 00 28  # Primary Service Declaration
+# 02 0a 18        # Battery Service (UUID: 0x180F)
+# 0d 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 0e 00 02 29 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 06 59 69 43 68 69 70  # Value: Battery Level Data
+
+# 0f 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 10 00 02 50 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 07 02 e8 04 21 70 01 00  # Value: HID Information Data
+
+# 11 00 02 00 28  # Primary Service Declaration
+# 02 12 18        # HID Service (UUID: 0x1812)
+# 12 00 02 03 28  # Characteristic Declaration
+# 01 06           # Properties: Read, Write Without Response
+# 13 00 02 4e 2a  # Report Map Characteristic (UUID: 0x2A4B)
+# 01 01           # Value: Report Map Data
+
+# 14 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 15 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+# 16 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 17 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 01        # Value: Report ID and Type
+
+# 18 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 19 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 07 00 00 00 00 00 00 00  # Value: Report Data
+# 1a 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 1b 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 01 01        # Value: Report ID and Type
+
+# 1c 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 1d 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 1e 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 1f 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 05 01        # Value: Report ID and Type
+
+# 20 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 21 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 22 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 23 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 04 01        # Value: Report ID and Type
+
+# 24 00 02 03 28  # Characteristic Declaration
+# 01 0e           # Properties: Read, Write
+# 25 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 26 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 02        # Value: Report ID and Type
+
+# 27 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 28 00 02 4b 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# f5 05 0c 09 01 a1 01 85 05  # Value: HID Control Point Data
+# 15 00 25 01 75 01 95 18
+# 0a 83 01 09 ea 09 e9 09 e2
+# 09 b6 09 b5 09 cd 09 b7
+# 0a 23 02 0a 8a 01 0a 94 01
+# 0a 2a 02 0a 92 01 0a 21 02
+# 0a 24 02 0a 07 03 0a ae 01
+# 09 70 09 6f 09 30 09 b8
+# 0a 25 02 0a 26 02 0a 27 02
+# 81 02 c0
+
+# 05 01 09 06 a1 01 85 02  # HID Keyboard Input Report
+# 75 01 95 08 05 07 19 e0 29 e7
+# 15 00 25 01 81 02 95 01 75 08
+# 81 03 95 05 75 01 05 08 19 01
+# 29 05 91 02 95 01 75 03 91 03
+# 95 06 75 08 15 00 26 ff 00
+# 05 07 19 00 2a ff 00 81 00
+# c0
+
+# 05 01 09 02 a1 01 85 01  # HID Mouse Input Report
+# 09 01 a1 00 05 09 19 01 29 08
+# 15 00 25 01 75 01 95 08 81 02
+# 05 01 09 30 09 31 16 01 f8
+# 26 ff 07 75 10 95 02 81 06
+# 09 38 15 81 25 7f 75 08 95 01
+# 81 06 05 0c 0a 38 02 95 01
+# 81 06 c0 c0
+
+# 05 01 09 80 a1 01 85 04  # HID System Control Input Report
+# 15 00 25 01 75 01 95 03 19 81
+# 29 83 81 02 95 01 75 05 81 03
+# c0
+# 29 00 02 03 28  # Characteristic Declaration
+# 01 1a           # Properties: Read, Notify
+# 2a 00 02 33 2a  # Report Characteristic (UUID: 0x2A33)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+
+# 2b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 01 00        # Value: 0x0001 (Notifications Enabled)
+
+# 2c 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 2d 00 02 4a 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 04 01 01 00 03  # Value: HID Information Data
+
+# 2e 00 02 00 28  # Primary Service Declaration
+# 02 0f 18        # Battery Service (UUID: 0x180F)
+
+# 2f 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 30 00 02 19 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 01 64           # Value: Battery Level (100%)
+
+# 31 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 32 00 02 03 28  # Characteristic Declaration
+# 01 04           # Properties: Write Without Response
+# 33 00 02 4c 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# 00 00 00        # Value: HID Control Point Data
+
+#se map
+af 00              # Feature
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 06        # Usage (Keyboard)
+A1 01        # Collection (Application)
+85 02        #   Report ID (2)
+75 01        #   Report Size (1)
+95 08        #   Report Count (8)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 E0        #   Usage Minimum (0xE0)
+29 E7        #   Usage Maximum (0xE7)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 08        #   Report Size (8)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 05        #   Report Count (5)
+75 01        #   Report Size (1)
+05 08        #   Usage Page (LEDs)
+19 01        #   Usage Minimum (Num Lock)
+29 05        #   Usage Maximum (Kana)
+91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 01        #   Report Count (1)
+75 03        #   Report Size (3)
+91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 06        #   Report Count (6)
+75 08        #   Report Size (8)
+15 00        #   Logical Minimum (0)
+26 FF 00  #   Logical Maximum (255)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 00        #   Usage Minimum (0x00)
+29 FF        #   Usage Maximum (0xFF)
+81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+05 0C        # Usage Page (Consumer)
+09 01        # Usage (Consumer Control)
+A1 01        # Collection (Application)
+85 03        #   Report ID (3)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 18        #   Report Count (24)
+0A 83 01  #   Usage (AL Consumer Control Configuration)
+09 EA        #   Usage (Volume Decrement)
+09 E9        #   Usage (Volume Increment)
+09 E2        #   Usage (Mute)
+09 B6        #   Usage (Scan Previous Track)
+09 B5        #   Usage (Scan Next Track)
+09 CD        #   Usage (Play/Pause)
+09 B7        #   Usage (Stop)
+0A 23 02  #   Usage (AC Home)
+0A 8A 01  #   Usage (AL Email Reader)
+0A 94 01  #   Usage (AL Local Machine Browser)
+0A 2A 02  #   Usage (AC Bookmarks)
+0A 92 01  #   Usage (AL Calculator)
+0A 21 02  #   Usage (AC Search)
+0A 24 02  #   Usage (AC Back)
+0A 07 03  #   Usage (0x0307)
+0A AE 01  #   Usage (AL Keyboard Layout)
+09 70        #   Usage (0x70)
+09 6F        #   Usage (0x6F)
+09 30        #   Usage (Power)
+09 B8        #   Usage (Eject)
+0A 25 02  #   Usage (AC Forward)
+0A 26 02  #   Usage (AC Stop)
+0A 06 03  #   Usage (AC Refresh)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#af 00             # Feature
+
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 E0        #   Usage Minimum (0xE0)
+# 29 E7        #   Usage Maximum (0xE7)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF  #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 80        # Usage (Sys Control)
+A1 01        # Collection (Application)
+85 04        #   Report ID (4)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 03        #   Report Count (3)
+19 81        #   Usage Minimum (Sys Power Down)
+29 83        #   Usage Maximum (Sys Wake Up)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 05        #   Report Size (5)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#sb map
+# af 00             # Feature
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 E0        #   Usage Minimum (0xE0)
+# 29 E7        #   Usage Maximum (0xE7)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF        #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# 05 0C        # Usage Page (Consumer)
+# 09 01        # Usage (Consumer Control)
+# A1 01        # Collection (Application)
+# 85 03        #   Report ID (3)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 18        #   Report Count (24)
+# 0A 83 01  #   Usage (AL Consumer Control Configuration)
+# 09 EA        #   Usage (Volume Decrement)
+# 09 E9        #   Usage (Volume Increment)
+# 09 E2        #   Usage (Mute)
+# 09 B6        #   Usage (Scan Previous Track)
+# 09 B5        #   Usage (Scan Next Track)
+# 09 CD        #   Usage (Play/Pause)
+# 09 B7        #   Usage (Stop)
+# 0A 23 02  #   Usage (AC Home)
+# 0A 8A 01  #   Usage (AL Email Reader)
+# 0A 94 01  #   Usage (AL Local Machine Browser)
+# 0A 2A 02  #   Usage (AC Bookmarks)
+# 0A 92 01  #   Usage (AL Calculator)
+# 0A 21 02  #   Usage (AC Search)
+# 0A 24 02  #   Usage (AC Back)
+# 0A 07 03  #   Usage (0x0307)
+# 0A AE 01  #   Usage (AL Keyboard Layout)
+# 09 70        #   Usage (0x70)
+# 09 6F        #   Usage (0x6F)
+# 09 30        #   Usage (Power)
+# 09 B8        #   Usage (Eject)
+# 0A 25 02  #   Usage (AC Forward)
+# 0A 26 02  #   Usage (AC Stop)
+# 0A 27 02  #   Usage (AC Refresh)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# # 05 0C        # Usage Page (Consumer)
+# # 09 01        # Usage (Consumer Control)
+# # A1 01        # Collection (Application)
+# # 85 03        #   Report ID (3)
+# # 19 00        #   Usage Minimum (Unassigned)
+# # 2A FF 03  #   Usage Maximum (0x03FF)
+# # 15 00        #   Logical Minimum (0)
+# # 26 FF 03  #   Logical Maximum (1023)
+# # 95 01        #   Report Count (1)
+# # 75 10        #   Report Size (16)
+# # 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# # C0              # End Collection
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 80        # Usage (Sys Control)
+# A1 01        # Collection (Application)
+# 85 04        #   Report ID (4)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 03        #   Report Count (3)
+# 19 81        #   Usage Minimum (Sys Power Down)
+# 29 83        #   Usage Maximum (Sys Wake Up)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 05        #   Report Size (5)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+# 120 bytes
+
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:35 3f 64
+mem_lpm_isogate:db 7b 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:00
+mem_lpm_sysctl:08
+mem_lpm_hv_sel:b4
+
+mem_fcomp_div:18
+mem_xtal_c_sel:3e
+mem_gpio_wakeup_cfg:00 00 00 00 00 00 00 00 00 00 00 02
+
+mem_version:08 0e 05 03 00
+mem_le_tx2m_delay:20
+
+mem_rx_window_sniff:00 10
+
+mem_gain_fix:ff	#00:soft agc; ff:hw agc
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
+
+
+#adc config
+mem_adc_config_flag:01
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:00
+#00 ADC_CH_VBAT
+#01 ADC_CH_VDCDC5V
+#06 ADC_CH_GPIO_4
+#07 ADC_CH_GPIO_2
+#08 ADC_CH_GPIO_1
+#09 ADC_CH_GPIO_3
+#0a ADC_CH_GPIO_0
+#0b ADC_CH_GPIO_5
+#0c ADC_CH_GPIO_6
+#0d ADC_CH_GPIO_7
+
+mem_adc_dma_enable:00
+mem_adc_saddr_ptr:00 07
+mem_adc_eaddr_ptr:ff 07
+
+mem_ring_ibias_trim:a0
+mem_ring_ibias_vtune_high:bc 02 #700mv
+mem_ring_ibias_vtune_low:90 01 #400mv
+mem_ring_ibias_calc_adc_gpio:03
+mem_ring_ibias_calc_adc_channel:09
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
+
Index: program/app_kb.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/app_kb.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/app_kb.prog	(working copy)
@@ -0,0 +1,3925 @@
+
+keyboard_softreset_process:
+	call keyboard_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_keyboard_pb_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	copy pdata,queue
+	fetch 4,mem_saved_gpio_in
+	qisolate0 pdata					// bt button gpio num
+	call keyboard_pb_set,true
+	branch soft_reset+2	
+
+keyboard_wakeup_from_power_check:
+	disable user
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_poweron
+	fetch 1,core_lpm_isogate
+	bbit1 cold_wake,mouse_wakeup_from_poweron
+	enable user	//wake from hibernate
+	branch mouse_wakeup_from_poweron
+
+keyboard_default_init:
+	call hid_device_default_parm_init
+	call keyboard_xtal_init
+	call keyboard_24g_phy_select
+	branch g24_pair_param_init
+
+keyboard_xtal_init:
+	jam XTAL_16M,mem_fcomp_div		// 0x08--16M 
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_16M
+	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
+	rtn
+
+keyboard_24g_phy_select:
+	call g24_enable_1M
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G_2M_PHY
+	branch g24_enable_2M
+
+
+keyboard_init:
+	call enable_authrom
+	call keyboard_setting_config
+	call keyboard_gpio_init
+	call keyboard_low_vol_mult_set
+	call lpm_config_puchk_disable
+	rtn wake
+	call keyboard_cb_fuction
+	fetch 1,mem_device_flag
+	beq MODE_USB_DEVICE,keyboard_usb_mode_start
+keyboard_init_wireless:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,keyboard_start_discovery
+	jam 0,mem_keyboard_switch_count_temp
+	call keyboard_check_select_device_by_switch
+	jam 1,mem_keyboard_switch_count_temp
+	branch keyboard_start_work
+
+keyboard_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call keyboard_param_init
+	call keyboard_device_led_all_off
+	call keyboard_rgb_off
+	call keyboard_pwm_init
+	call le_set_fixed_ltk_justwork
+	bpatch patch07_6,mem_patch07
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info	
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_load_eeprom_info
+	bbit1 KEYBOARD_ENABLE_FLASH,keyboard_load_flash_info
+	rtn
+
+keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+	
+keyboard_param_init:
+	call keyboard_compare_addr_init
+	call keyboard_param_common_init	
+	call keyboard_adc_vol_init
+	fetch 1,mem_keyboard_device_poweron_timer_init
+	store 1,mem_keyboard_device_poweron_timer
+	jam 0,mem_same_keyvalue_timerout_flag	
+	arg mem_le_adv_swift_pair,contw
+	arg 20,loopcnt
+	call clear_mem
+
+	fetch 1,mem_le_name_len
+	sub pdata,12,null
+	nbranch keyboard_ble_name_set_no_swift_pair,positive
+	setarg 0x06ff06
+	store 3,mem_le_adv_swift_pair
+	setarg 0x000300
+	istore 3,contw
+	setarg 0x80
+	istore 1,contw
+keyboard_ble_store_le_name:
+	fetch 1,mem_le_name_len
+	increase 1,pdata
+	copy pdata,loopcnt
+	arg mem_le_scan_data,contr			// 7byte + mem_le_scan_data
+	branch memcpy
+	
+keyboard_ble_name_set_no_swift_pair:
+	arg mem_le_adv_swift_pair,contw
+	branch keyboard_ble_store_le_name
+
+keyboard_compare_addr_init:
+	arg 0,temp
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,hid_device_compare_addr_store
+	arg 0xffffff,temp
+	branch hid_device_compare_addr_store
+	
+/////////////////////////////////////////////////////////------gpio------///////////////////////////////////////////////////////////
+keyboard_gpio_init:
+	call clear_wake
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call device_gpio_config_input_pu
+
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_DISABLE_ICE,pdata
+	call lpm_write_ice_disable,true
+	
+	//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+	call keyboard_key_row_init
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt	
+keyboard_key_cow_init:
+	ifetcht 1,regb
+	isolate1 7,temp						// exmcu gpio
+	ncall gpio_set_high_impedance,true
+	increase 1,regb
+	loop keyboard_key_cow_init
+	rtn
+
+keyboard_key_row_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+keyboard_key_row_init_loop:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keyboard_gpio_set_low_pullup,zero
+	increase 1,regb
+	loop keyboard_key_row_init_loop
+	branch lpm_write_gpio_wakeup
+	
+keyboard_gpio_set_low_pullup:
+	call gpio_set_high_impedance
+	ifetcht 1,regb
+	branch gpio_set_low_pullup
+
+keyboard_gpio_pu_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+keyboard_gpio_pu_idle_loop:
+	ifetch 1,contr
+	nbranch keyboard_gpio_pu_idle_configured,blank
+	setarg gpcfg_pullup
+	add contr,-1,contw
+	istore 1,contw
+keyboard_gpio_pu_idle_configured:
+	loop keyboard_gpio_pu_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch keyboard_gpio_pu_idle_loop	
+
+keyboard_key_row_wake_set:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	branch gpio_set_wake,blank
+	branch gpio_set_wake_by_current_state
+	
+//////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	
+///////////////////////////////////////otp  eeprom flash/////////////////////////////////////////////////////////////
+keyboard_pairing_check_otp_offset:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	nrtn positive
+	branch assert
+	
+//  otp process	
+keyboard_load_otp_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_device_info_g24_init
+	beq MODE_BT_DEVICE1,keyboard_load_otp_device_info_ble_init
+	rtn	
+	
+keyboard_load_otp_device_info_g24_init:
+	arg 8,regd
+	//setarg 0x400
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fbc,pdata
+	arg 4,temp
+	arg 4,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info_ble_init:
+	arg 32,regd
+	//setarg 0x400
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fb0,pdata
+	arg 16,temp		
+	arg 16,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info:
+	store 2,mem_pdatatemp+2
+	storet 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+keyboard_load_otp_info_check_page_loop:
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+	fetch 2,mem_pdatatemp+2
+	isub regd,pdata
+	store 2,mem_pdatatemp+2
+	branch keyboard_load_otp_info_check_page_loop
+	
+keyboard_load_otp_info_check_first_time:
+	sub regc,0,null
+	branch keyboard_load_otp_info_check_first_time_process,zero
+keyboard_load_otp_info_check_first_time_loop_init:
+	fetch 2,mem_pdatatemp+2
+	iadd regd,pdata
+keyboard_load_otp_info_check_first_time_loop:	
+	isub rege,pdata
+	store 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch keyboard_load_otp_info_check_offset_process,blank
+	fetch 2,mem_pdatatemp+2
+	branch keyboard_load_otp_info_check_first_time_loop
+	
+keyboard_load_otp_info_check_first_time_process:
+	storer rege,1,mem_otp_read_retention_offset
+	rtn
+keyboard_load_otp_info_check_offset_process:
+	setarg 0x1fc0
+	fetcht 2,mem_pdatatemp+2
+	isub temp,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy temp,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,keyboard_load_otp_info_check_offset_process_ble
+	rtn
+
+keyboard_load_otp_info_check_offset_process_g24:	
+	fetch 6,mem_otp_read_retention_memory
+	store 4,mem_device_24g_addr
+	fetch 4,mem_device_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+
+keyboard_load_otp_info_check_offset_process_ble:
+	fetch 1,mem_otp_read_retention_memory
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+	store 1,mem_kb_computer_system
+	fetch 1,mem_otp_read_retention_memory+1
+	store 1,mem_device1_type
+	fetch 6,mem_otp_read_retention_memory+2
+	store 6,mem_device1_addr
+	fetch 6,mem_otp_read_retention_memory+8
+	store 6,mem_device1_locall_addr
+	fetcht 2,mem_otp_read_retention_memory+14
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	branch hid_device_select_reconn_device
+
+
+keyboard_load_eeprom_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_load_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch keyboard_load_eeprom_info,true
+keyboard_load_eeprom_device_info_next:
+	call keyboard_eeprom_init
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+keyboard_load_info_check:
+	bpatch patch07_7,mem_patch07
+	call keyboard_app_initflag_check
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_info_24g
+	beq MODE_BT_DEVICE1,keyboard_load_info_bt1
+	beq MODE_BT_DEVICE2,keyboard_load_info_bt2
+	beq MODE_BT_DEVICE3,keyboard_load_info_bt3
+	beq MODE_USB_DEVICE,keyboard_load_info_usb
+keyboard_load_info_24g:
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	fetch 1,mem_keyboard_24g_fn_lock
+keyboard_load_info_fn_lock:	
+	sub pdata,1,null
+	ncall set_pdata_0,zero
+	store 1,mem_keyboard_fn_lock_flag
+	rtn
+keyboard_load_info_bt1:
+	fetch 1,mem_keyboard_bt1_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt1_computer_system
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+keyboard_load_info_bt:	
+	store 1,mem_kb_computer_system
+	fetcht 2,mem_random_addr_increase_count
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	rtn
+keyboard_load_info_bt2:
+	fetch 1,mem_keyboard_bt2_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt2_computer_system
+	branch keyboard_load_info_bt
+keyboard_load_info_bt3:
+	fetch 1,mem_keyboard_bt3_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt3_computer_system
+	branch keyboard_load_info_bt
+keyboard_load_info_usb:
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	fetch 1,mem_keyboard_usb_fn_lock
+	branch keyboard_load_info_fn_lock
+
+keyboard_app_initflag_check:
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+	storet 2,mem_store_flag
+	call hid_device_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	fetch 4,mem_24g_fast_conn_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info
+
+keyboard_load_flash_info:
+	call hid_device_load_flash_info_check
+	branch keyboard_load_info_check
+
+keyboard_store_device_info:
+	bpatch patch08_0,mem_patch08
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_store_otp_device_info
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_eeprom_device_info
+	bbit1 KEYBOARD_ENABLE_FLASH,hid_device_store_flash_device_info
+	rtn
+	
+keyboard_store_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+
+keyboard_store_otp_device_info_g24:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	isub temp,regb
+	arg mem_device_24g_addr,rega
+	arg 4,loopcnt
+	call otp_write   
+	fetcht 2,mem_otp_read_retention_offset
+	increase 4,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn
+
+keyboard_store_otp_device_info_ble:
+	jam 1,mem_otp_store_device_info_flag
+	fetch 1,mem_otp_store_system_flag
+	rtn blank
+keyboard_wirte_otp_ble:	
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	isub temp,pdata
+	store 2,mem_pdatatemp
+
+	copy pdata,regb
+	arg mem_kb_computer_system,rega
+	arg 1,loopcnt
+	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */	
+
+	fetch 2,mem_pdatatemp
+	add pdata,1,regb
+	arg mem_device1_type,rega
+	arg 13,loopcnt
+	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */
+
+	fetch 2,mem_pdatatemp
+	add pdata,14,regb
+	arg mem_random_addr_increase_count,rega
+	arg 2,loopcnt
+	call otp_write  /* regb = otp address, rega pointers data, loopcnt is count */
+	
+	fetcht 2,mem_otp_read_retention_offset
+	increase 16,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn	
+
+keyboard_store_eeprom_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_store_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch keyboard_store_device_info_delay,true
+keyboard_store_eeprom_device_info_next:	
+	call keyboard_eeprom_init
+keyboard_store_eeprom_device_info_typer_check:	
+	fetch 1,mem_keyboard_device_info_store_flag
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,keyboard_store_eeprom_device_all_info
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,keyboard_store_eeprom_device_info_ble_addr
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,keyboard_store_eeprom_device_info_g24_addr	
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,keyboard_store_eeprom_device_info_fn_lock
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,keyboard_store_eeprom_device_info_device_os
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,keyboard_store_eeprom_device_info_rgb_tpye
+	rtn
+keyboard_store_eeprom_device_all_info:
+	jam 0,mem_keyboard_device_info_store_flag
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data	
+keyboard_store_eeprom_device_info_ble_addr:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 39,temp
+	arg mem_device1_type,rega
+	arg KEYBOARD_BLE_ADDR_EEPROM_OFFECT,regb
+	call iicd_write_protect_eep_data
+	arg 2,temp
+	arg mem_random_addr_increase_count,rega
+	arg KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_g24_addr:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 4,temp
+	arg mem_device_24g_addr,rega
+	arg KEYBOARD_G24_ADDR_EEPROM_OFFECT,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_fn_lock:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 5,temp
+	arg mem_keyboard_24g_fn_lock,rega
+	arg KEYBOARD_FN_FLAG_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check	
+keyboard_store_eeprom_device_info_device_os:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 3,temp
+	arg mem_keyboard_bt1_computer_system,rega
+	arg KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_rgb_tpye:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 4,temp
+	arg mem_backlight_on_flag,rega
+	arg KEYBOARD_RGB_TPYE_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+	
+keyboard_store_device_number:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+keyboard_eeprom_init:
+	call iicd_read_init_pin
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_ENABLE_2K_EEPROM,pdata
+	branch set_eeprom_size_2k,true
+	branch clear_eeprom_size_2k	
+////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////cb_function//////////////////////////////////////////////////////
+keyboard_cb_fuction:
+	bpatch patch08_1,mem_patch08
+	setarg hid_device_before_lpm_set
+	store 2,mem_cb_before_lpm_sleep
+	setarg keyboard_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg keyboard_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg keyboard_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg keyboard_le
+	store 2,mem_cb_le_process
+	
+	setarg keyboard_process_lpm_before
+	store 2,mem_cb_before_lpm
+	
+	setarg keyboard_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg keyboard_idle
+	store 2,mem_cb_idle_process
+	setarg keyboard_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg keyboard_bb_event_timer
+	store 2,mem_cb_event_timer
+	branch hid_device_cb_fuction
+
+/////////////////////////////////////keyboard event/////////////////////////////////////////////////////////////////////
+
+keyboard_priority_bb_event:	
+	bpatch patch08_2,mem_patch08
+	copy regc,pdata	
+
+	beq BT_EVT_LE_START_ENC,keyboard_le_ll_start_encryt
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,keyboard_le_conn_param_update_rsp_recieved
+	beq BT_EVT_LE_DISCONNECTED,keyboard_le_bb_disconnected
+
+	beq BT_EVT_LE_CONNECTED,keyboard_le_bb_event_connected
+	beq BT_EVT_BUTTON_LONG_PRESSED,keyboard_bb_event_discovery_btn
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+
+	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info	
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+
+	beq BT_EVT_24G_PAIRING_COMPLETE,keyboard_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,keyboard_24g_attempt_success
+	beq BT_EVT_24G_ATTEMPT_FAIL,keyboard_24g_attempt_fail
+
+	rtn
+
+
+/////////////////////////////////////keyboard timer/////////////////////////////////////////////////////////////////////
+
+keyboard_bb_event_timer:
+	bpatch patch08_3,mem_patch08
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	//led
+	call keyboard_low_voltage_led_timer
+	call keyboard_num_capslock_led_on_timer
+	call keyboard_rgb_on_timer
+	call keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call keyboard_device_pair_led_timer
+
+	//key
+	call keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+	
+	// g24
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+
+	//le
+	call keyboard_check_discovery_timeout_timer
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer	
+	call keyboard_le_auto_recognize_timer
+
+	call mouse_current_mult_update_timer
+	call keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+	branch keyboard_check_no_data_timeout_timer
+
+////////////////////////////////////////////////////////////////adc/////////////////////////////////////////////
+keyboard_adc_vol_init:
+	bpatch patch08_4,mem_patch08
+	fetch 1,mem_keyboard_power_type
+	beq KEYBOARD_BATTARY_1V5,keyboard_adc_vol_1v5_init
+	beq KEYBOARD_BATTARY_3V0,keyboard_adc_vol_3v0_init
+	beq KEYBOARD_BATTARY_4V2,keyboard_adc_vol_4v2_init
+keyboard_adc_vol_1v5_init:
+	setarg 0x560094		// 0x0094--1.5V  0x0056--0.9V  0x0060--1.0V  0x006d--1.1V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x006d00
+	istore 3,contw
+	rtn
+keyboard_adc_vol_3v0_init:
+	setarg 0xd4012c		// 0x0094--3.0V  0x00d4--2.1V  0x00dc--2.2V  0x00e6--2.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x00e600
+	istore 3,contw
+	rtn
+keyboard_adc_vol_4v2_init:
+	setarg 0x2c01270		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x014001
+	istore 3,contw
+	rtn
+
+keyboard_adc_init:
+	call keyboard_adc_gpio_set
+	branch keyboard_low_voltage_param_set
+
+keyboard_adc_gpio_set:
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel
+	call keyboard_channel_set_gpio	
+	copy temp,pdata
+	store 1,mem_adc_channel_gpio
+	set1 GPIO_ACTIVE_BIT,pdata
+	arg gpcfg_input,temp
+	branch gpio_config_function	
+	
+keyboard_channel_set_gpio:
+	arg 18,temp 
+	rtneq 0x6
+	arg 10,temp 	
+	rtneq 0x7
+	arg 9,temp 	
+	rtneq 0x8
+	arg 12,temp 	
+	rtneq 0x9
+	arg 6,temp 	
+	rtneq 0xa
+	arg 20,temp 	
+	rtneq 0xb
+	arg 21,temp 	
+	rtneq 0xc
+	arg 22,temp 	
+	rtneq 0xd
+	arg 13,temp 	
+	rtn
+
+keyboard_adc_read_start:
+	call keyboard_adc_init
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	store 2,mem_device_vdd_now_vol
+	arg mem_device_vdd_calculate_set,rega
+	branch mouse_adc_bat_percent_lowpower_out
+	
+keyboard_adc_read:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	call keyboard_adc_read_start
+keyboard_adc_data_process:	
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down
+	bbit0 0,keyboard_adc_no_low_voltage
+	jam 1,mem_device_adc_last_low_voltage_flag
+	branch keyboard_adc_low_voltage
+
+keyboard_adc_low_voltage:
+	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
+	branch keyboard_enable_function_flag
+keyboard_adc_no_low_voltage:
+	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
+	call keyboard_disable_function_flag
+	jam 12,mem_keyboard_adc_low_volatage_led_timer_count
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_device_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_led_off
+
+keyboard_adc_gpio_set_before_hibernate:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	branch mouse_adc_gpio_set_before_hibernate+2
+
+keyboard_low_voltage_param_set:
+	fetch 6,mem_keyboard_vdd_full_vol
+	store 6,mem_device_vdd_full_vol
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_param_reset,blank
+	fetch 2,mem_keyboard_vdd_low_vol
+	increase 5,pdata
+	store 2,mem_device_vdd_low_vol
+	rtn	
+keyboard_low_voltage_param_reset:
+	fetch 2,mem_keyboard_vdd_low_vol
+	store 2,mem_device_vdd_low_vol
+	rtn	
+	
+keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_low_vol_mult_ble_set
+	call g24_interval_param_8ms
+	setarg 0x5d4800
+	store 4,mem_24g_long_sleep_set1
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	branch mouse_24g_long_sleep_set
+keyboard_low_vol_mult_ble_set:
+	setarg 160			// 320ms
+	call keyboard_mult_auto_get
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	setarg 80			// 100ms
+	branch keyboard_mult_auto_get
+
+keyboard_mult_auto_get:
+	fetcht 2,mem_le_interval_min
+	idiv temp
+	call get_div_result
+	store 1,mem_lpm_mult_init	
+	fetch 1,mem_mouse_current_mult_timer
+	branch mouse_current_mult_reinit,blank
+	rtn
+
+
+////////////////////////////////////////////////////adc end///////////////////////////////////////////////
+
+///////////////////////////////////////////////////led///////////////////////////////////////////////////////
+keyboard_low_voltage_led_timer:
+	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_keyboard_device_poweron_timer
+	nrtn blank
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	rtnbit0 KEYBOARD_ENABLE_LOW_LED
+	rtnbit0 KEYBOARD_LOW_VOLTAGE_FLAG
+	bbit1 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,keyboard_low_voltage_led_blink_new_data
+	bpatch patch08_5,mem_patch08
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_keyboard_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall keyboard_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,keyboard_low_voltage_led_on
+	beq 4,keyboard_low_voltage_led_off
+	beq 6,keyboard_low_voltage_led_on
+	beq 8,keyboard_low_voltage_led_off
+	rtn
+keyboard_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_keyboard_adc_low_volatage_led_timer_count
+	branch keyboard_low_voltage_led_off
+	
+keyboard_low_voltage_led_blink_new_data:
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_adc_low_volatage_led_blink_timer
+	isub temp,null
+	nbranch keyboard_low_voltage_led_off,positive
+	jam 1,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_low_volatage_led_flag
+	fetcht 1,mem_keyboard_low_volatage_led_blink_count
+	increase 1,temp
+	isub temp,null
+	nbranch keyboard_low_voltage_led_on,positive
+	call keyboard_low_voltage_led_off
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	fetcht 1,mem_keyboard_low_volatage_led_blink_count
+	mul32 temp,2,temp
+	isub temp,null
+	nrtn zero
+	jam 0,mem_keyboard_low_volatage_led_flag
+	rtn
+
+
+keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,keyboard_device_poweron_030_led
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+
+keyboard_device_poweron_030_led:
+	branch keyboard_power_led_off,blank
+keyboard_power_led_on:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_active
+keyboard_power_led_off:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_inactive
+
+keyboard_mode_led_timer:
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 1,mem_keyboard_mode_led_on_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_mode_led_on_timer
+	bbit1 0,keyboard_device_led_on
+	branch keyboard_device_led_off
+
+
+keyboard_device_pair_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_pair_led
+	fetch 2,mem_device_discovery_timer
+	rtn blank
+	branch keyboard_device_pair_led
+
+keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	rtn blank
+keyboard_device_pair_led:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate0 KEYBOARD_ENABLE_030_POWER_LED,pdata
+	call keyboard_device_clear_power_timer,true
+	fetch 1,mem_keyboard_pair_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_pair_led_flag
+	fetcht 1,mem_keyboard_pair_led_blink_count
+	increase 1,temp
+	isub temp,null
+	nbranch keyboard_device_led_on,positive
+	call keyboard_device_led_off
+	fetch 1,mem_keyboard_pair_led_flag
+	fetcht 1,mem_keyboard_pair_led_blink_count
+	mul32 temp,2,temp
+	isub temp,null
+	nrtn zero
+	jam 0,mem_keyboard_pair_led_flag
+	rtn
+
+keyboard_device_clear_power_timer:
+	jam 0,mem_keyboard_device_poweron_timer
+	rtn
+
+keyboard_device_led_all_off:
+	bpatch patch08_6,mem_patch08
+	call keyboard_power_led_off	
+	call keyboard_device_led_off
+	call keyboard_numlock_led_off
+	branch keyboard_capslock_led_off
+
+keyboard_device_led_off:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_led_off
+	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_off
+	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_off
+	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_off
+	rtn
+
+keyboard_device_led_on:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_led_on
+	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_on
+	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_on
+	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_on
+	rtn	
+	
+keyboard_device_24g_led_off:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_bt1_led_off:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_inactive
+	
+keyboard_device_bt2_led_off:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_inactive
+	
+keyboard_device_bt3_led_off:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_inactive	
+
+keyboard_device_24g_led_on:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_active
+
+keyboard_device_bt1_led_on:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_active
+	
+keyboard_device_bt2_led_on:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_active
+	
+keyboard_device_bt3_led_on:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_active
+	
+keyboard_low_voltage_led_on:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_active
+	
+keyboard_low_voltage_led_off:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_inactive	
+
+
+keyboard_num_capslock_led_on_timer:
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_led_check
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_num_caps_scoll_led_on_timer
+	isub temp,pdata
+	branch keyboard_num_cap_scoll_led_check,positive
+	call keyboard_numlock_led_off
+	call keyboard_scrolllock_led_off
+	branch keyboard_capslock_led_off
+
+keyboard_usb_led_check:
+	fetch 1,mem_24g_led_status
+	store 1,mem_keyboard_led_status
+	branch keyboard_num_cap_scoll_led_check
+	
+keyboard_num_cap_scoll_led_check:
+	call keyboard_numlock_led_check_on
+	call keyboard_scrolllock_led_check_on
+	branch keyboard_capslock_led_check_on
+
+keyboard_numlock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_NUMLOCK,keyboard_numlock_led_off
+keyboard_numlock_led_on:	
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_active
+keyboard_numlock_led_off:
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_inactive
+
+keyboard_capslock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_CAPSLOCK,keyboard_capslock_led_off
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_active
+keyboard_capslock_led_off:
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_inactive
+
+keyboard_scrolllock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_SCROLLLOCK,keyboard_scrolllock_led_off
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_active
+keyboard_scrolllock_led_off:
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_on_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_rgb_on_timer
+	isub temp,pdata
+	rtn positive
+	jam 0,mem_backlight_on_flag
+	branch keyboard_rgb_off
+	
+////////////////////////////////////////backlight pwm//////////////////////////////////////////////////////////
+keyboard_pwm_init:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	arg 0,rega 	//sys clk 12mhz
+	call pwm_init
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	call pwm_out_set
+	fetch 2,mem_rgb_pwm_conf
+	branch pwm_disable
+
+keyboard_rgb_pwm_disable:
+	fetch 1,mem_keyboard_led_r_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_g_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_b_gpio
+	branch pwm_disable
+
+keyboard_rgb_pwm_set:	
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	branch pwm_out_set	
+
+keyboard_load_rgb:
+	bpatch patch08_7,mem_patch08
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetch 1,mem_backlight_on_flag
+	call keyboard_rgb_mode_switch_next
+	fetch 1,mem_backlight_on_type
+	branch keyboard_rgb_on_type_switch_next	
+
+keyboard_rgb_mode_switch:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag	
+	call keyboard_store_eeprom_or_flash
+	jam 0,mem_backlight_breathe_type
+	jam 0,mem_rgb_pwm_breathe_flag
+	jam 10,mem_rgb_pwm_conf+5
+	fetch 1,mem_backlight_on_flag
+	increase 1,pdata
+keyboard_rgb_mode_switch_next:	
+	sub pdata,RGB_BACKLIGHT_STATUS_BREATHE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_flag
+	rtn
+	
+keyboard_rgb_on_type_switch:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_backlight_on_flag
+	rtnne RGB_BACKLIGHT_STATUS_ON
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag	
+	call keyboard_store_eeprom_or_flash
+	fetch 1,mem_backlight_on_type
+	increase 1,pdata
+keyboard_rgb_on_type_switch_next:	
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_type
+	rtn
+
+keyboard_rgb_process:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetcht 4,mem_ui_check_timer_setup
+	copy clkn_bt,pdata
+	isub temp,pdata
+	fetcht 2,mem_customize_timer_setup		// * 0.3125ms
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn blank
+	copy clkn_bt,temp
+	storet 4,mem_ui_check_timer_setup
+	fetch 1,mem_backlight_on_flag
+	beq RGB_BACKLIGHT_STATUS_BREATHE,keyboard_rbg_breathe_process
+	beq RGB_BACKLIGHT_STATUS_ON,keyboard_rgb_on_process
+	jam 0,mem_backlight_on_flag
+keyboard_rgb_off:
+	bpatch patch09_0,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_rgb_pwm_disable
+	jam 0,mem_rgb_on_color_temp
+	branch keyboard_rgb_led_control
+
+keyboard_rbg_breathe_process:
+	fetch 1,mem_rgb_pwm_breathe_flag
+	branch keyboard_rbg_breathe_up,blank
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,5,null
+	branch keyboard_rbg_breathe_color_switch,positive
+	increase -1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	branch keyboard_rgb_pwm
+
+keyboard_rbg_breathe_up:
+	fetch 1,mem_rgb_pwm_conf+5
+	increase 1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	call keyboard_rgb_pwm
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,90,null
+	rtn positive
+	jam 1,mem_rgb_pwm_breathe_flag
+	rtn
+
+keyboard_rbg_breathe_color_switch:
+	jam 0,mem_rgb_pwm_breathe_flag
+	fetch 1,mem_backlight_breathe_type
+	increase 1,pdata
+	sub pdata,RGB_BACKLIGHT_BREATHE_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_breathe_type
+	rtn
+
+keyboard_rgb_pwm:
+	call keyboard_pwm_init
+	call keyboard_rgb_off+4
+	branch keyboard_breathe_tpye_select	
+
+keyboard_breathe_tpye_select:
+	fetch 1,mem_backlight_breathe_type
+	beq RGB_BACKLIGHT_BREATHE_TPYE_RED,keyboard_breathe_tpye_red
+	beq RGB_BACKLIGHT_BREATHE_TPYE_GREEN,keyboard_breathe_tpye_green
+	beq RGB_BACKLIGHT_BREATHE_TPYE_BLUE,keyboard_breathe_tpye_blue
+	beq RGB_BACKLIGHT_BREATHE_TPYE_CYAN,keyboard_breathe_tpye_cyan
+	beq RGB_BACKLIGHT_BREATHE_TPYE_ORANGE,keyboard_breathe_tpye_orange
+	beq RGB_BACKLIGHT_BREATHE_TPYE_PURPLE,keyboard_breathe_tpye_purple
+	beq RGB_BACKLIGHT_BREATHE_TPYE_WHITE,keyboard_breathe_tpye_white
+keyboard_breathe_tpye_red:
+	fetch 1,mem_keyboard_led_r_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x01
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_green:
+	fetch 1,mem_keyboard_led_g_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x02
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_blue:
+	fetch 1,mem_keyboard_led_b_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x04
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_cyan:
+	call keyboard_breathe_tpye_green
+	branch keyboard_breathe_tpye_blue
+
+keyboard_breathe_tpye_orange:
+	call keyboard_breathe_tpye_red
+	branch keyboard_breathe_tpye_green
+	
+keyboard_breathe_tpye_purple:
+	call keyboard_breathe_tpye_red
+	branch keyboard_breathe_tpye_blue
+
+keyboard_breathe_tpye_white:
+	call keyboard_breathe_tpye_red
+	call keyboard_breathe_tpye_green
+	branch keyboard_breathe_tpye_blue
+
+keyboard_rgb_on_process:
+	call keyboard_rgb_pwm_disable
+	fetch 1,mem_backlight_on_type
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_type
+	arg mem_rgb_on_color,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_rgb_on_color_temp
+	branch keyboard_rgb_led_control
+
+
+keyboard_rgb_led_control:
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_RED_STATUS,pdata
+	call keyboard_rgb_red_led_on,true
+	ncall keyboard_rgb_red_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_GREEN_STATUS,pdata
+	call keyboard_rgb_green_led_on,true
+	ncall keyboard_rgb_green_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_BLUE_STATUS,pdata
+	call keyboard_rgb_blue_led_on,true
+	ncall keyboard_rgb_blue_led_off,true
+	rtn
+	
+keyboard_rgb_red_led_on:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_red_led_off:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_active
+
+keyboard_rgb_green_led_on:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_green_led_off:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_active
+
+keyboard_rgb_blue_led_on:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_blue_led_off:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_active	
+
+////////////////////////////////////////////////////led end////////////////////////////////////////////////////////
+
+///////////////////////////event timer///////////////////////////////////////////////////////////////////////////
+keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,keyboard_device_select_g24_press_timer
+	call keyboard_device_select_g24_nopress_timer
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,keyboard_device_select_bt_press_timer
+	branch keyboard_device_select_bt_nopress_timer
+
+keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call keyboard_stop_bluetooth_mode
+	branch keyboard_24g_start_pair_mode
+
+keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery
+
+keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_commbination_key_process:
+	fetch 1,mem_commbination_key_statue
+	rtnne COMMBINATION_KEY_STATE_DOWN	
+	arg mem_combination_ui_button_count,regc
+	arg keyboard_commbination_key_press_type_check,regb
+	branch timer_single_step
+
+keyboard_commbination_key_press_type_check:
+	fetch 1,mem_keyboard_commbination_press_type
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,keyboard_24g_start_pair_mode
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,keyboard_long_button_bt_discovery
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mouse_bluetooth_fast_conn_init
+	rtn
+
+
+keyboard_check_discovery_timeout_timer:
+	arg mem_device_discovery_timer,regc
+	arg keyboard_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_discovery_timeout:
+	call keyboard_stop_discovery
+	branch keyboard_power_down	
+
+keyboard_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg keyboard_store_device_info,regb
+	branch timer_single_step
+	
+keyboard_le_auto_recognize_timer:
+	arg mem_le_start_auto_reco_timer,regc
+	arg keyboard_le_send_att_find_by_type_value_request_ancs,regb
+	branch timer_single_step
+
+keyboard_check_direct_timeout_timer:	
+	arg mem_device_direct_timer,regc
+	arg keyboard_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_device_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+keyboard_check_direct_timeout:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,keyboard_start_discovery
+	branch mouse_app_enter_hibernate
+
+
+keyboard_le_battery_updata_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+keyboard_le_send_conn_param_update_timer:
+	arg mem_keyboard_le_send_conn_param_update_timer,regc
+	arg mouse_updata_le_param,regb
+	branch timer_single_step
+
+keyboard_24g_repeat_send_data:
+	fetch 1,mem_24g_repeat_send_flag
+	rtn blank
+	jam 0,mem_24g_repeat_send_flag
+	fetch 1,mem_same_keyvalue_timerout_flag
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	jam 1,mem_keyboard_data_change_flag
+	call g24_txdata_prep
+	branch keyboard_g24_transmit_process
+
+keyboard_24g_led_status_get_timer:
+	arg mem_keyboard_led_status_get_timer,regc
+	arg keyboard_24g_led_status_clear,regb
+	branch timer_single_step
+
+keyboard_24g_led_status_clear:
+	jam 0,mem_keyboard_led_status_get
+	rtn
+
+
+keyboard_same_key_long_press_timer:
+	arg mem_same_keyvalue_timer,regc
+	arg keyboard_long_press_timerout,regb
+	branch timer_single_step_2B
+
+keyboard_long_press_timerout:
+	jam 1,mem_same_keyvalue_timerout_flag	
+	branch keyboard_power_down
+
+keyboard_commbination_delay_release_timer:	
+	arg mem_keyboard_commbination_control_key_delay_release_timer,regc
+	arg keyboard_commbination_key_null_set,regb
+	branch timer_single_step
+
+keyboard_usb_updata_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_usb_wait_updata_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_usb_wait_updata_timer
+	nrtn blank
+	jam 1,mem_lpm_mode
+	branch keyboard_power_down
+
+keyboard_check_no_data_timeout_timer:
+	fetch 1,mem_usb_vdd_status_current
+	rtneq USB_INTERFACE_INSERT
+	arg mem_device_no_data_timer,regc
+	arg keyboard_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_hibernate_set
+	branch mouse_disconnect
+	
+/////////////////////////////////////keyboard process///////////////////////////////////////////////////////////////////////////////
+keyboard_idle:
+	bpatch patch09_1,mem_patch09
+	call kscan_dispatch
+	call keyboard_rgb_process
+	call keyboard_usb_isr
+	call keyboard_usb_mode
+	branch keyboard_check_select_device_by_switch
+
+keyboard_check_select_device_by_switch:
+	bpatch patch09_2,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch keyboard_check_select_device_by_switch_gnd,true
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_select_btdevice
+	branch keyboard_check_select_24g_device
+
+keyboard_check_select_device_by_switch_vdd_check:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pd
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	nbranch keyboard_check_select_device_by_switch_vdd,true
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_select_btdevice
+	branch keyboard_check_select_24g_device
+
+keyboard_check_select_device_by_switch_vdd:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pu
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_24g_device
+	branch keyboard_select_btdevice
+
+keyboard_check_select_device_by_switch_gnd:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pd
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_check_select_24g_device
+	branch keyboard_select_btdevice
+
+keyboard_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	fetch 1,mem_keyboard_switch_count_temp
+	nbranch soft_reset_chip,blank
+	branch keyboard_stop_bluetooth_mode
+keyboard_check_select_24g_device:	
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 1,mem_keyboard_switch_count_temp
+	nbranch soft_reset_chip,blank
+	branch keyboard_24g_stop
+
+keyboard_start_work:
+	bpatch patch09_3,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,keyboard_start_work_next
+	call keyboard_adc_read_start
+	fetch 2,mem_device_vdd_empty_vol
+	div pdata,2
+	call get_div_result
+	fetcht 2,mem_device_vdd_now_vol
+	isub temp,null
+	branch keyboard_start_work,positive 	// now vol < empty vol/2  check again
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down	
+keyboard_start_work_next:
+	fetch 1,mem_keyboard_pairing_type
+	call keyboard_enable_bt_button_pairing,blank
+	fetch 1,mem_keyboard_bt_button_flag
+	nrtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_start_mode
+	call mouse_bluetooth_fast_conn_disable
+	beq MODE_BT_DEVICE1,keyboard_start_ble1_reconnect
+	beq MODE_BT_DEVICE2,keyboard_start_ble2_reconnect
+	beq MODE_BT_DEVICE3,keyboard_start_ble3_reconnect
+keyboard_start_ble1_reconnect:	
+	fetch 6,mem_device1_addr
+keyboard_start_ble_reconnect:	
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+
+keyboard_start_ble2_reconnect:
+	fetch 6,mem_device2_addr
+	branch keyboard_start_ble_reconnect
+
+keyboard_start_ble3_reconnect:
+	fetch 6,mem_device3_addr
+	branch keyboard_start_ble_reconnect
+
+keyboard_24g_start_mode:
+	call keyboard_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	branch mouse_24g_reconn_general_dongle
+
+/***********************************kscan and value process***********************************************/
+kscan_dispatch:
+	bpatch patch09_4,mem_patch09
+	call keyboard_keyscan
+	call keyboard_key_process
+	branch keyboard_special_key_check
+
+keyboard_keyscan:
+	call keyboard_gpio_init
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high	
+	call keyboard_clk_input
+keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+keyboard_keyscan_wait_wake_next:	
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
+	call gpio_get_bit
+	branch keyboard_keyscan_wait_wake_next,true	
+	
+	call keyboard_keyscan_get_exmcu_value
+	call keyboard_keyscan_get_mcu_value
+	call keyboard_clk_input
+	call keyboard_stb_state_high							// exmcu sleep
+keyboard_keyscan_copy_value:
+	fetch 2,mem_kb_excol_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+keyboard_compare_col_excol_gpio_loop:		// loop 12 times
+	ifetcht 1,regb
+	fetch 2,mem_kb_col_ptr
+	copy pdata,rega
+	copy rega,regc
+	arg 20,loopcnt
+keyboard_compare_col_gpio_loop:
+	ifetch 1,rega
+	isub temp,null
+	branch keyboard_copy_value_exmcu_to_mcu,zero
+	increase 1,rega
+	loop keyboard_compare_col_gpio_loop
+keyboard_compare_col_excol_gpio_loop_next:	
+	increase 1,regb
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,11,null
+	branch keyboard_compare_col_excol_gpio_loop,positive
+	call keyboard_gpio_pu_idle
+	branch keyboard_key_row_init
+	
+keyboard_copy_value_exmcu_to_mcu:
+	fetch 2,mem_keyscan_value_ptr
+	copy pdata,contw
+	copy rega,pdata	
+	isub regc,pdata 
+	iadd contw,contw							// offset = rega-regc
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	copy pdata,regc
+	fetch 1,mem_keyscan_col_loop_count
+	iadd regc,regc	
+	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
+	istore 1,contw
+	branch keyboard_compare_col_excol_gpio_loop_next
+	
+keyboard_keyscan_get_exmcu_value:	//	8*12 times
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
+	call keyboard_clk_state_low
+	call keyboard_keyscan_exmcu_get_col_value
+	call keyboard_clk_state_high
+	call keyboard_keyscan_exmcu_get_col_value
+	sub pdata,11,null
+	branch keyboard_keyscan_exmcu_start_loop,positive
+	branch keyboard_clk_state_low
+	
+	
+keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	call keyboard_keyscan_get_col_value
+	fetch 2,mem_keyscan_exmcu_value_ptr
+keyboard_keyscan_value_store:
+	copy  pdata,contw
+	fetch 1,mem_keyscan_col_loop_count
+	iadd contw,contw
+	fetch 1,mem_keyscan_value_temp
+	istore 1,contw
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	rtn	
+
+	
+keyboard_keyscan_get_mcu_value: 
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_mcu_start:		// loop 20 times
+	jam 0,mem_keyscan_value_temp
+	ifetcht 1,regb
+	isolate1 7,temp								// exmcu gpio
+	branch keyboard_keyscan_mcu_start_loop,true	
+	call gpio_out_active
+	call keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_out_inactive
+	ifetcht 1,regb
+	call device_gpio_config_input_pu
+keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr	
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch keyboard_keyscan_mcu_start,positive
+	rtn	
+
+	
+keyboard_keyscan_get_col_value:
+	bpatch patch09_5,mem_patch09
+	nop 120
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regc
+	arg 8,loopcnt
+keyboard_keyscan_get_col_value_loop:		// loop 8 times
+	ifetcht 1,regc
+	call gpio_get_bit
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	setflag true,7,pdata
+	store 1,mem_keyscan_value_temp
+	increase 1,regc
+	loop keyboard_keyscan_get_col_value_loop
+	rtn
+
+keyboard_clk_state_high:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_out_inactive
+
+keyboard_clk_state_low:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_out_active
+
+keyboard_clk_input:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_config_input
+	
+keyboard_stb_state_high:
+	fetcht 1,mem_mcu_stb_gpio
+	branch gpio_out_inactive
+
+keyboard_stb_state_low:
+	fetcht 1,mem_mcu_stb_gpio
+	branch gpio_out_active
+/***********************************kscan process***********************************************/
+
+
+/**********************************key value process*******************************/
+// same key press check	
+keyboard_press_change_or_no_key:
+	jam 0,mem_same_keyvalue_timerout_flag
+	fetch 2,mem_same_keyvalue_timer_init
+	store 2,mem_same_keyvalue_timer
+	rtn
+
+keyboard_key_process:
+	// key deshake
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch keyboard_press_change_or_no_key,zero	
+	call keyboard_keyscan_value_current_zero_check
+	call keyboard_press_change_or_no_key,blank
+
+	call keyboard_ghost_key_check
+	fetch 1,mem_keyboard_ghost_flag
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_PRESS
+	rtneq CAMMBINATION_KEY_HOLD
+	rtneq CAMMBINATION_KEY_WAIT_RELEASE
+
+	// keyvalue get from map,and in or out process
+	jam 0,mem_keyscan_col_loop_count
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_old,regb
+keyboard_keyvalue_process:		// loop 20 times
+	ifetcht 1,rega
+	ifetch 1,regb
+	ixor  temp,pdata
+	branch keyboard_keyvalue_process_loop,blank
+	store 1,mem_keyscan_value_temp
+	storet 1,mem_keyboard_press_flag_temp
+	istoret 1,regb
+	jam 1,mem_keyboard_data_change_flag
+	jam 0,mem_keyboard_keyvalue_bit_loop_count
+keyboard_keyvalue_change:			// loop 8 times
+	fetch 1,mem_keyscan_value_temp
+	bbit0 0,keyboard_keyvalue_change_loop
+	fetch 1,mem_keyscan_col_loop_count
+	mul32 pdata,8,pdata
+	fetcht 1,mem_keyboard_keyvalue_bit_loop_count
+	iadd temp,pdata									// map offset
+	arg mem_keyboard_keyvalue_map,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_keyboard_keyvalue_temp				// keyvalue
+	bpatch patch09_6,mem_patch09
+	call keyboard_keyvalue_normal_replace
+	call keyboard_keyvalue_fn_replace
+	call keyboard_keyvalue_commbination_replace
+	call keyboard_keyvalue_in_out
+keyboard_keyvalue_change_loop:
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	store 1,mem_keyscan_value_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rshift pdata,pdata
+	store 1,mem_keyboard_press_flag_temp
+	fetch 1,mem_keyboard_keyvalue_bit_loop_count
+	increase 1,pdata
+	store 1,mem_keyboard_keyvalue_bit_loop_count
+	sub pdata,7,null
+	branch keyboard_keyvalue_change,positive
+keyboard_keyvalue_process_loop:
+	increase 1,rega
+	increase 1,regb	
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	branch keyboard_keyvalue_process,positive
+	rtn
+
+keyboard_keyscan_value_current_zero_check:
+	fetch 8,mem_keyscan_value_current
+	nbranch keyboard_load_rgb,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_load_rgb,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_load_rgb,blank
+
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_NULL
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	rtn
+
+/************************************ghost key ******************************************/
+//**input:mem_keyscan_value_current   **output:mem_keyboard_ghost_flag   	mem_keyboard_all_press_key_count
+keyboard_ghost_key_check:	// (col[i] press >= 2) && (row[j] press >=2) && (c[i]_r[j] press) 
+	bpatch patch09_7,mem_patch09
+	jam 0,mem_keyboard_ghost_flag
+	jam 0,mem_keyboard_all_press_key_count
+	arg mem_keyscan_value_current,rega
+	arg 20,loopcnt
+keyboard_ghost_key_check_loop:
+	jam 0,mem_keyboard_current_col_press_key_count
+	ifetch 1,rega
+	branch keyboard_ghost_key_check_next_loop,blank
+keyboard_current_col_press_key_count_check:	
+	fetcht 1,mem_keyboard_current_col_press_key_count
+	increase 1,temp
+	storet 1,mem_keyboard_current_col_press_key_count
+	copy pdata,temp
+	increase -1,pdata
+	iand temp,pdata									// pdata &= pdata -1;  check pdata bit1 count
+	nbranch keyboard_current_col_press_key_count_check,zero
+	fetch 1,mem_keyboard_current_col_press_key_count
+	fetcht 1,mem_keyboard_all_press_key_count
+	iadd temp,temp
+	storet 1,mem_keyboard_all_press_key_count
+	sub pdata,1,null
+	branch keyboard_ghost_key_check_next_loop,positive
+	sub temp,2,null
+	branch keyboard_ghost_key_check_next_loop,positive
+	jam 0,mem_keyscan_col_loop_count					// col[i] press key count >= 2
+	jam 0,mem_keyboard_same_row_press_key_count
+	ifetcht 1,rega
+	arg mem_keyscan_value_current,regb
+keyboard_same_row_key_check:
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	nbranch keyboard_ghost_key_check_next_loop,positive		// end col[i] row[0~7] check
+	ifetch 1,regb
+	iand temp,null												// col[i] & col[0~19]
+	branch keyboard_same_row_key_check_loop,zero
+	fetch 1,mem_keyboard_same_row_press_key_count		
+	increase 1,pdata
+	store 1,mem_keyboard_same_row_press_key_count
+	sub pdata,1,null
+	branch keyboard_same_row_key_check_loop,positive
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+	jam 1,mem_keyboard_ghost_flag
+	rtn	
+	
+keyboard_ghost_key_check_next_loop:
+	increase 1,rega
+	loop keyboard_ghost_key_check_loop
+	rtn
+
+keyboard_same_row_key_check_loop:
+	increase 1,regb
+	branch keyboard_same_row_key_check
+	
+/******************************ghost key*********************************************/
+
+
+
+
+/******************************fn replace*********************************************/
+keyboard_keyvalue_normal_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_RIGHT_ALT,keyboard_rgb_on_type_switch
+	beq HID_KEY_RIGHT_GUI,keyboard_rgb_mode_switch
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDROID
+	rtn
+
+keyboard_keyvalue_fn_replace:
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate1 0,pdata
+	call keyboard_commbination_delay_release_clear,true
+	fetch 1,mem_keyboard_fn_flag
+	ncall keyboard_keyvalue_fn_replace_press,blank
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_fn_lock_check
+	fetch 1,mem_keyboard_fn_lock_flag
+	branch keyboard_fn_lock_check+1
+keyboard_fn_lock_check:
+	fetch 1,mem_keyboard_fn_first
+	fetcht 1,mem_keyboard_fn_flag
+	ixor temp,pdata
+	rtn zero
+	bpatch patch0a_0,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_ESC,keyboard_keyvalue_fn_esc
+	beq HID_KEY_DELETE,keyboard_keyvalue_fn_delete
+	sub pdata,HID_KEY_F12,null
+	nrtn positive
+	arg HID_KEY_F1,temp	
+	isub temp,pdata
+	nrtn positive			
+	arg mem_keyboard_fn_f1,contr		//  HID_KEY_F1 <= keyvalue <= HID_KEY_F12
+	iadd contr,contr
+	ifetch 1,contr
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_esc:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_keyvalue_fn_esc_next
+	fetch 1,mem_keyboard_fn_esc
+	fetcht 1,mem_keyboard_fn_lock_keyvalue
+	isub temp,null
+	rtn zero
+keyboard_keyvalue_fn_esc_next:	
+	fetch 1,mem_keyboard_fn_esc
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_delete:
+	fetch 1,mem_keyboard_fn_del
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_replace_press:
+	bpatch patch0a_1,mem_patch0a
+	call keyboard_keyvalue_fn_lock_replace
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_UP_ARROW,keyboard_keyvalue_fn_up_arrow
+	beq HID_KEY_DOWN_ARROW,keyboard_keyvalue_fn_down_arrow
+	beq HID_KEY_LEFT_ARROW,keyboard_keyvalue_fn_left_arrow
+	beq HID_KEY_RIGHT_ARROW,keyboard_keyvalue_fn_right_arrow
+	beq HID_KEY_LEFT_CTRL,keyboard_keyvalue_fn_left_ctrl
+	beq HID_KEY_SPACE,keyboard_keyvalue_fn_space
+	beq HID_KEY_Q,keyboard_keyvalue_os_android
+	beq HID_KEY_W,keyboard_keyvalue_os_windows
+	beq HID_KEY_E,keyboard_keyvalue_os_ios
+	rtn
+
+keyboard_keyvalue_fn_lock_replace:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_LOCK
+	fetch 1,mem_keyboard_keyvalue_temp
+	fetcht 1,mem_keyboard_fn_lock_keyvalue
+	isub temp,null
+	nrtn zero
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_keyboard_fn_lock_flag
+	increase 1,pdata
+	and_into 0x01,pdata
+	store 1,mem_keyboard_fn_lock_flag
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_keyvalue_fn_lock_24g
+	beq MODE_BT_DEVICE1,keyboard_keyvalue_fn_lock_bt1
+	beq MODE_BT_DEVICE2,keyboard_keyvalue_fn_lock_bt2
+	beq MODE_BT_DEVICE3,keyboard_keyvalue_fn_lock_bt3
+	beq MODE_USB_DEVICE,keyboard_keyvalue_fn_lock_usb
+keyboard_keyvalue_fn_lock_24g:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_24g_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt1:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt1_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt2:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt2_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt3:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt3_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_usb:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_usb_fn_lock
+	branch keyboard_store_eeprom_or_flash
+
+keyboard_keyvalue_fn_up_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_PAGE_UP
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_down_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_PAGE_DOWN
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_HOME
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_right_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_END
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_ctrl:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_keyvalue_windows_osk
+	setarg HID_KEY_OS_SOFT_KB
+	branch keyboard_keyvalue_store_temp
+keyboard_keyvalue_windows_osk:	
+	setarg HID_KEY_OSK
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_space:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+	setarg HID_KEY_LANGUAGE
+keyboard_keyvalue_store_temp:
+	store 1,mem_keyboard_keyvalue_temp
+	rtn
+
+keyboard_keyvalue_os_android:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_ANDROID,mem_kb_computer_system
+keyboard_keyvalue_os_switch_end:	
+	jam 6,mem_keyboard_mode_led_on_timer
+	call keyboard_store_computer_system
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+keyboard_store_eeprom_or_flash:	
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_OTP
+keyboard_store_device_info_delay:	
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+keyboard_keyvalue_os_windows:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	branch keyboard_keyvalue_os_switch_end
+
+keyboard_keyvalue_os_ios:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch keyboard_keyvalue_os_switch_end
+
+keyboard_keyvalue_clear_temp:
+	setarg 0
+	branch keyboard_keyvalue_store_temp
+
+keyboard_store_computer_system:
+	bpatch patch0a_2,mem_patch0a
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	rtneq MODE_USB_DEVICE
+	beq MODE_BT_DEVICE1,keyboard_store_computer_system_bt1
+	beq MODE_BT_DEVICE2,keyboard_store_computer_system_bt2
+	beq MODE_BT_DEVICE3,keyboard_store_computer_system_bt3
+keyboard_store_computer_system_bt1:	
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt1_computer_system
+	rtn
+keyboard_store_computer_system_bt2:	
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt2_computer_system
+	rtn
+keyboard_store_computer_system_bt3:	
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt3_computer_system
+	rtn	
+/**********************************key value process*******************************/	
+
+
+
+/*******************************commbine keyvalue *************************************/
+keyboard_keyvalue_commbination_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_PRINT_SCREEN,keyboard_commination_screen_shot_replace
+	beq HID_KEY_PAGE_UP,keyboard_commination_pageup_replace
+	beq HID_KEY_PAGE_DOWN,keyboard_commination_pagedown_replace
+	beq HID_KEY_HOME,keyboard_commination_home_replace
+	beq HID_KEY_END,keyboard_commination_end_replace
+	beq HID_KEY_SELECT_ALL,keyboard_commination_select_all
+	beq HID_KEY_COPY,keyboard_commbination_copy
+	beq HID_KEY_PASTE,keyboard_commbination_paste
+	beq HID_KEY_CUT,keyboard_commbination_cut
+	beq HID_KEY_ALL_OS_LOCK,keyboard_commination_os_lock
+	beq HID_KEY_OSK,keyboard_commbination_osk
+	beq HID_KEY_SEARCH,keyboard_commbination_search
+	beq HID_KEY_LANGUAGE,keyboard_commbination_language
+	beq HID_KEY_APP_TILING,keyboard_commbination_app_tiling
+	rtn
+
+keyboard_commbination_delay_release_set:
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam 10,mem_keyboard_commbination_control_key_delay_release_timer
+	rtn
+
+keyboard_commbination_delay_release_clear:
+	jam 0,mem_keyboard_commbination_control_key_delay_release_timer
+	rtn
+
+keyboard_commination_screen_shot_replace:
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDROID
+	jam LEFT_SHIFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_3,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commination_pageup_replace:
+	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
+keyboard_commination_ios_mac_command_commiation:	
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDROID
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commination_pagedown_replace:
+	jam HID_KEY_DOWN_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation	
+
+keyboard_commination_home_replace:
+	jam HID_KEY_LEFT_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation
+
+keyboard_commination_end_replace:
+	jam HID_KEY_RIGHT_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation
+
+keyboard_commination_select_all:
+	jam HID_KEY_A,mem_keyboard_commbination_standard_key_value
+keyboard_commbination_text_edit:
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_keypress
+	beq SYSTEM_OS_ANDROID,keyboard_commbination_keypress
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commbination_copy:
+	jam HID_KEY_C,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commbination_paste:
+	jam HID_KEY_V,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commbination_cut:	
+	jam HID_KEY_X,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commination_os_lock:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commination_windows_lock
+	beq SYSTEM_OS_MAC,keyboard_commination_mac_lock
+	setarg HID_KEY_IOS_ANDROID_OS_LOCK
+	branch keyboard_keyvalue_store_temp
+keyboard_commination_windows_lock:	
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_L,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+keyboard_commination_mac_lock:
+	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_Q,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+	
+keyboard_commbination_osk:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_windows_osk
+	setarg HID_KEY_OS_SOFT_KB
+	branch keyboard_keyvalue_store_temp
+keyboard_commbination_windows_osk:	
+	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_O,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commbination_search:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_MAC,keyboard_commbination_mac_search
+	setarg HID_KEY_AC_SEARCH
+	branch keyboard_keyvalue_store_temp
+keyboard_commbination_mac_search:	
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+	
+keyboard_commbination_language:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_language_windows
+	beq SYSTEM_OS_ANDROID,keyboard_commbination_language_android
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+keyboard_commbination_language_next:
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	call keyboard_commbination_delay_release_set	
+	branch keyboard_commbination_keypress
+keyboard_commbination_language_windows:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_language_next
+keyboard_commbination_language_android:
+	jam LEFT_SHIFT,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_language_next
+
+keyboard_commbination_app_tiling:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_app_tiling_windows_android
+	beq SYSTEM_OS_ANDROID,keyboard_commbination_app_tiling_windows_android
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+keyboard_commbination_app_tiling_windows_android:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_TAB,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+
+keyboard_commbination_keypress:
+	jam 0,mem_keyboard_keyvalue_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,keyboard_commbination_key_wait_release_set
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_set
+keyboard_commbination_key_press_set:	
+	jam CAMMBINATION_KEY_PRESS,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_wait_release_set:
+	jam CAMMBINATION_KEY_WAIT_RELEASE,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_null_set:
+	jam CAMMBINATION_KEY_NULL,mem_keyboard_commbination_key_step
+	rtn
+
+//**input:   pdata:control key vaule       temp:standard key value
+keyboard_commbination_key_value_store:
+	store 1,mem_keyboard_tx_data+1
+	storet 1,mem_keyboard_tx_data+3
+	call enable_user
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next	
+	
+keyboard_commbination_key_press_process:
+	fetch 1,mem_keyboard_commbination_control_key_value
+	arg 0,temp
+	call keyboard_commbination_key_value_store
+keyboard_commbination_key_hold_set:
+	jam CAMMBINATION_KEY_HOLD,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_hold_process:
+	jam CAMMBINATION_KEY_COMPLETE,mem_keyboard_commbination_key_step
+	fetch 1,mem_keyboard_commbination_control_key_value
+	fetcht 1,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_key_value_store
+	
+keyboard_commbination_key_wait_release_process:
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	fetch 1,mem_keyboard_commbination_control_key_value
+	arg 0,temp
+	call keyboard_commbination_key_value_store
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	branch keyboard_commbination_key_null_set,blank
+keyboard_commbination_key_release_set:	
+	jam CAMMBINATION_KEY_RELEASE,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_release_process:
+	branch keyboard_commbination_key_value_store+2
+
+keyboard_commbination_key_null_process:
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	arg 0,pdata
+	arg 0,temp
+	branch keyboard_commbination_key_value_store	
+
+
+
+keyboard_keyvalue_in_out:
+	fetch 1,mem_keyboard_keyvalue_temp
+	arg HID_KEY_LEFT_CTRL,temp
+	isub temp,null
+	nbranch keyboard_keyvalue_standard,positive		// value < 0xe0
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_keyvalue_consumer,positive		// value  > 0xe7
+	and_into 0x07,pdata
+	copy pdata,queue
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_control_key_in
+keyboard_keyvalue_control_key_out:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset0 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+keyboard_keyvalue_control_key_in:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset1 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+
+keyboard_keyvalue_standard:
+	jam 0,mem_keyboard_keyvalue_buffer+8
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_standard_in
+keyboard_keyvalue_standard_out:	
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+keyboard_keyvalue_standard_out_loop:
+	ifetch 1,contr
+	isub temp,null
+	nbranch keyboard_keyvalue_standard_out_next,zero
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contr
+	rtn blank
+	increase 1,contr
+	istoret 1,contr
+keyboard_keyvalue_standard_out_next:	
+	loop keyboard_keyvalue_standard_out_loop
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_out_n_key_rollover
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+keyboard_keyvalue_standard_out_n_key_rollover:
+	call keyboard_keyvalue_n_key_rollover_data_in_out
+	qset0 pdata
+	branch istore_1_contw_rtn
+
+	
+keyboard_keyvalue_standard_in:
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+keyboard_keyvalue_standard_in_loop:
+	ifetch 1,contr
+	branch keyboard_keyvalue_standard_in_data,blank
+	isub temp,null
+	rtn zero
+	loop keyboard_keyvalue_standard_in_loop
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_in_n_key_rollover
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+keyboard_keyvalue_standard_in_n_key_rollover:
+	call keyboard_keyvalue_n_key_rollover_data_in_out
+	qset1 pdata
+	branch istore_1_contw_rtn
+	
+keyboard_keyvalue_standard_in_data:
+	increase -1,contr
+	istoret 1,contr
+	rtn
+	
+keyboard_keyvalue_n_key_rollover_data_in_out:
+	bpatch patch0a_3,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	sub pdata,0x70,null
+	nrtn positive		// keyboard value 14byte
+	jam 1,mem_keboard_n_key_rollover_send_flag
+	jam 1,mem_keyboard_data_change_flag
+	div pdata,8
+	call wait_div_end
+	quotient pdata
+	remainder queue
+	arg mem_keyboard_n_key_rollover_data+1,contw
+	iadd contw,contw
+	setarg 0
+	rtn
+
+keyboard_keyvalue_consumer:
+	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate0 0,pdata
+	call keyboard_consumer_key_release_status,true
+	branch keyboard_keyvalue_standard
+	
+keyboard_consumer_key_release_status:
+	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
+	rtn
+	
+/******************************** special key ****************************************************/
+// check Fn,pairing button,control key
+keyboard_special_key_check:
+	call keyboard_pairing_button_check
+	call keyboard_device_select
+	jam 0,mem_keyboard_fn_flag
+	jam 0,mem_keyboard_control_key_flag
+	jam 0,mem_keyboard_alt_flag
+	jam 0,mem_keyboard_shift_flag
+	jam 0,mem_keyboard_bt_button_flag
+	fetch 1,mem_keyboard_keyvalue_buffer
+	ncall keyborad_control_key_set,blank
+	arg mem_keyboard_keyvalue_buffer+2,contr
+	arg 6,loopcnt
+keyboard_special_key_check_loop:
+	ifetch 1,contr
+	sub pdata,HID_KEY_FN,null
+	call keyboard_fn_set,zero
+	sub pdata,HID_KEY_PB,null
+	call keyboard_pb_set,zero
+	loop keyboard_special_key_check_loop
+	
+	call keyboard_commbination_key_press_check
+	fetch 1,mem_keyboard_pairing_type
+	branch keyboard_enable_bt_button_pairing,blank
+	rtn
+
+keyboard_commbination_key_press_check:
+	bpatch patch0a_4,mem_patch0a
+	jam 0,mem_keyboard_commbination_press_type
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_commbination_key_press_check_bt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_24g
+	isub temp,null
+	branch keyboard_commbination_key_down_24g,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_24g,zero
+	branch mouse_commbination_key_up
+	
+keyboard_commbination_key_press_check_bt:
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_fast_conn_bt
+	isub temp,null
+	branch keyboard_commbination_key_down_bt_fast_conn,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_bt_fast_conn,zero
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY,mouse_commbination_key_up
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_bt
+	isub temp,null
+	branch keyboard_commbination_key_down_bt,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_bt,zero
+	branch mouse_commbination_key_up
+
+keyboard_commbination_key_down_24g:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+keyboard_commbination_key_down_bt:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+keyboard_commbination_key_down_bt_fast_conn:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down	
+
+keyboard_commbination_key_down:
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	rtn
+	
+
+keyboard_device_select:
+	call disable_user
+	call keyboard_device_select_g24
+	call keyboard_device_select_bt1
+	call keyboard_device_select_bt2
+	call keyboard_device_select_bt3
+	call keyboard_device_select_usb
+	branch keyboard_clear_change_flag,user
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+	
+keyboard_clear_change_flag:
+	jam 0,mem_keyboard_data_change_flag
+	rtn
+	
+keyboard_device_select_g24:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G
+	fetch 1,mem_keyboard_switch_device_to_g24
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_g24+1
+	isub temp,null
+	branch keyboard_device_select_g24_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_g24_press,zero
+	rtn
+
+keyboard_device_select_g24_press:
+	call enable_user
+	fetch 1,mem_keyboard_switch_device_flag
+	set1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	jam 1,mem_keyboard_switch_g24_enable
+	rtn
+	
+keyboard_device_select_bt1:
+	fetch 1,mem_keyboard_switch_device_to_bt1
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt1+1
+	isub temp,null
+	branch keyboard_device_select_bt1_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt1_press,zero
+	rtn
+
+keyboard_device_select_bt1_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt2:
+	fetch 1,mem_keyboard_switch_device_to_bt2
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt2+1
+	isub temp,null
+	branch keyboard_device_select_bt2_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt2_press,zero
+	rtn
+
+keyboard_device_select_bt2_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE2
+	jam MODE_BT_DEVICE2,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt3:
+	fetch 1,mem_keyboard_switch_device_to_bt3
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt3+1
+	isub temp,null
+	branch keyboard_device_select_bt3_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt3_press,zero
+	rtn
+
+keyboard_device_select_bt3_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE3
+	jam MODE_BT_DEVICE3,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt_set_press_flag:
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+
+keyboard_device_select_usb:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_keyboard_switch_device_to_usb
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_usb+1
+	isub temp,null
+	branch keyboard_device_select_usb_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_usb_press,zero
+	rtn
+
+keyboard_device_select_usb_press:
+	call enable_user
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	jam MODE_USB_DEVICE,mem_device_flag
+	call keyboard_store_device_number
+	branch soft_reset_chip
+	
+keyboard_pairing_button_check:
+	fetch 1,mem_keyboard_pairing_type
+	nrtn blank
+	fetcht 1,mem_keyboard_pb_button_gpio
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	call gpio_get_bit
+	nbranch keyboard_pairing_button_release,true
+	arg 8,loopcnt
+	arg mem_keyboard_keyvalue_buffer,contw
+	call clear_mem
+	jam HID_KEY_PB,mem_keyboard_keyvalue_buffer+2
+	rtn
+
+keyboard_pairing_button_release:
+	fetch 1,mem_keyboard_keyvalue_buffer+2
+	rtnne HID_KEY_PB
+	jam HID_KEY_NULL,mem_keyboard_keyvalue_buffer+2
+	rtn	
+
+keyboard_enable_bt_button_pairing:
+	bpatch patch0a_5,mem_patch0a
+	fetch 1,mem_keyboard_bt_button_flag
+	rtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_start_pair_mode
+keyboard_long_button_bt_discovery:
+	bpatch patch0a_6,mem_patch0a
+	call keyboard_pairing_check_otp_offset
+	jam 0,mem_keyboard_data_change_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call keyboard_enable_function_flag
+	call app_evt_button_long_pressed
+	branch keyboard_bb_event_discovery_btn
+
+keyboard_24g_start_pair_mode:
+	bpatch patch0a_7,mem_patch0a
+	call keyboard_device_led_all_off
+	call keyboard_pairing_check_otp_offset		
+	jam 0,mem_keyboard_data_change_flag
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_reconn_type
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_stop_discovery
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+
+keyborad_control_key_set:
+	store 1,mem_keyboard_control_key_flag
+	and_into 0x44,pdata
+	ncall keyboard_alt_flag_set,blank
+	fetch 1,mem_keyboard_control_key_flag
+	and_into 0x22,pdata
+	rtn blank
+	jam 1,mem_keyboard_shift_flag
+	rtn
+keyboard_alt_flag_set:	
+	jam 1,mem_keyboard_alt_flag
+	rtn
+
+
+keyboard_fn_set:
+	jam 1,mem_keyboard_fn_flag
+	rtn
+
+keyboard_pb_set:
+	jam 1,mem_keyboard_bt_button_flag
+	rtn
+
+
+///////////////////////////////////////////////////////////////---motion----//////////////////////////////////
+keyboard_motion:
+	bpatch patch0b_0,mem_patch0b
+	disable user
+	jam 0,mem_customer_key
+	jam 0,mem_customer_data_trigger
+	jam 0,mem_customer_data_trigger_last
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_PRESS,keyboard_commbination_key_press_process
+	beq CAMMBINATION_KEY_HOLD,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_WAIT_RELEASE,keyboard_commbination_key_wait_release_process
+	beq CAMMBINATION_KEY_NULL,keyboard_commbination_key_null_process
+	fetch 1,mem_keyboard_data_change_flag
+	branch keyboard_no_key_press,blank
+	increase -1,pdata
+	store 1,mem_keyboard_data_change_flag	
+	call keyboard_current_mult_update	
+	jam 10,mem_keyboard_led_status_get_timer
+	call mouse_no_data_timer_init
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_RELEASE,keyboard_commbination_key_release_process
+	arg mem_keyboard_tx_data,contw
+	arg 10,loopcnt
+	call clear_mem
+	call keyboard_motion_data_check
+	jam 0,mem_keyboard_data_send_flag
+	rtn
+
+keyboard_current_mult_update:
+	jam 3,mem_lpm_mult
+	jam 10,mem_mouse_current_mult_timer
+	rtn
+
+keyboard_no_key_press:
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	fetch 1,mem_keyboard_led_status_get
+	rtn blank
+	fetch 1,mem_24g_repeat_send_flag
+	nrtn blank
+	fetcht 1,mem_keyboard_led_status_get_timer_last
+	fetch 1,mem_keyboard_led_status_get_timer
+	isub temp,null
+	store 1,mem_keyboard_led_status_get_timer_last
+	rtn zero
+	arg mem_keyboard_tx_data,contw
+	arg 10,loopcnt
+	call clear_mem
+	call enable_user
+	branch keyboard_motion_data_check_next	
+
+keyboard_motion_data_check:
+	bpatch patch0b_1,mem_patch0b
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,keyboard_value_consumer_release
+	fetch 1,mem_keboard_n_key_rollover_send_flag
+	nbranch keyboard_motion_data_check_n_key_rollover_key,blank
+	arg mem_keyboard_keyvalue_buffer+2,contr
+	arg 6,loopcnt
+keyboard_value_tpye_check:
+	ifetch 1,contr
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_value_tpye_consumer_set,positive	
+	loop keyboard_value_tpye_check
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	bpatch patch0b_2,mem_patch0b
+	arg mem_keyboard_keyvalue_buffer,rega
+	arg mem_keyboard_tx_data+1,contw
+	arg 8,loopcnt
+keyboard_tx_data_store:
+	ifetcht 1,rega
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_tx_data_store_loop
+	sub temp,HID_KEY_FN,null
+	nbranch keyboard_tx_data_store_loop,zero
+	increase 1,rega
+	ifetcht 1,rega
+keyboard_tx_data_store_loop:
+	istoret 1,contw
+	increase 1,rega
+	loop keyboard_tx_data_store
+keyboard_motion_data_check_next:
+	bpatch patch0b_3,mem_patch0b
+	call keyboard_device_data_tpye_check
+
+	fetch 1,mem_keyboard_data_send_flag
+	beq DEVICE_DATA_TPYE_MOUSE,enable_user
+device_send_keyboard_data:
+	call mouse_customerkey_press
+	branch enable_user
+
+keyboard_motion_data_check_n_key_rollover_key:
+	jam 0,mem_keboard_n_key_rollover_send_flag
+	jam HID_REPORTID_N_KEY_ROLLOVER,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+keyboard_value_release_all_key:
+	arg mem_keyboard_n_key_rollover_data,contw
+	arg 15,loopcnt
+	call clear_mem
+	arg mem_keyboard_keyvalue_buffer,contw
+	arg 10,loopcnt
+	branch clear_mem
+////////////////////////////////////////////////////---fn---//////////////////////////////////////////////////////////
+keyboard_value_tpye_consumer_set:
+	copy pdata,temp
+	bpatch patch0b_4,mem_patch0b
+	copy temp,pdata
+	jam HID_REPORTID_BIT_CONSUMER_KEY,mem_keyboard_tx_data
+	fetcht 1,mem_keyboard_all_press_key_count
+	sub temp,HID_KEY_NULL,null
+	branch keyboard_value_consumer_all_key_release,zero
+	beq 	HID_KEY_MULTIKEY_MEDIA,keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,keyboard_value_mute
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track	
+	beq 	HID_KEY_MULTIKEY_PALY,keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,keyboard_value_ac_search	
+	beq 	HID_KEY_AC_BACK,keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,keyboard_value_os_soft_kb	
+	
+	beq 	HID_KEY_LIGHT_DOWN,keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,keyboard_value_os_lock	
+
+	beq 	HID_KEY_MAC_EJECT,keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,keyboard_value_ac_refresh
+
+	beq 	HID_KEY_SYSTEM_SLEEP,keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+keyboard_value_media:
+	setarg 0x000001
+keyboard_consumer_value_store:	
+	store 3,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_vol_down:	
+	setarg 0x000002
+	branch keyboard_consumer_value_store
+keyboard_value_vol_up:	
+	setarg 0x000004
+	branch keyboard_consumer_value_store
+keyboard_value_mute:	
+	setarg 0x000008
+	branch keyboard_consumer_value_store
+keyboard_value_pre_track:	
+	setarg 0x000010
+	branch keyboard_consumer_value_store
+keyboard_value_next_track:	
+	setarg 0x000020
+	branch keyboard_consumer_value_store
+keyboard_value_play:	
+	setarg 0x000040
+	branch keyboard_consumer_value_store
+keyboard_value_stop:	
+	setarg 0x000080
+	branch keyboard_consumer_value_store	
+
+keyboard_value_ac_home:	
+	setarg 0x000100
+	branch keyboard_consumer_value_store
+keyboard_value_mail:	
+	setarg 0x000200
+	branch keyboard_consumer_value_store
+keyboard_value_my_computer:	
+	setarg 0x000400
+	branch keyboard_consumer_value_store
+keyboard_value_ac_favorites:	
+	setarg 0x000800
+	branch keyboard_consumer_value_store
+keyboard_value_calculator:	
+	setarg 0x001000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_search:	
+	setarg 0x002000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_back:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,keyboard_value_ac_home
+	setarg 0x004000
+	branch keyboard_consumer_value_store
+keyboard_value_os_soft_kb:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,keyboard_value_os_soft_kb_android
+	setarg 0x010000
+	branch keyboard_consumer_value_store
+keyboard_value_os_soft_kb_android:
+	setarg 0x008000
+	branch keyboard_consumer_value_store
+	
+keyboard_value_light_down:	
+	setarg 0x020000
+	branch keyboard_consumer_value_store
+keyboard_value_light_up:	
+	setarg 0x040000
+	branch keyboard_consumer_value_store
+keyboard_value_os_lock:
+	setarg 0x080000
+	branch keyboard_consumer_value_store
+
+keyboard_value_mac_eject:
+	setarg 0x100000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_forward:
+	setarg 0x200000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_stop:
+	setarg 0x400000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_refresh:
+	setarg 0x800000
+	branch keyboard_consumer_value_store
+
+keyboard_value_consumer_all_key_release:
+keyboard_value_consumer_release:
+	jam 2,mem_keyboard_data_change_flag
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+keyboard_value_system_sleep:
+	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
+	setarg 0x02
+	store 1,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+
+
+/************************************fn**********************************************/
+
+keyboard_device_data_tpye_check:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_device_data_tpye_check_next
+	jam 0,mem_24g_repeat_send_flag
+	fetch 2,mem_keyboard_tx_data
+	ncall keyboard_set_repeat_send_flag,blank
+	fetch 6,mem_keyboard_tx_data+3
+	ncall keyboard_set_repeat_send_flag,blank
+keyboard_device_data_tpye_check_next:
+	call hid_device_clear_key_data
+	jam DEVICE_DATA_TPYE_KEYBOARD,mem_keyboard_data_send_flag
+	bpatch patch0b_5,mem_patch0b
+	fetch 1,mem_keyboard_tx_data
+	beq HID_REPORTID_KEY_STANDARD,keyboard_standard_data_send
+	beq HID_REPORTID_MOUSE,keyboard_mouse_data_send
+	beq HID_REPORTID_CONSUMER_KEY,keyboard_consumer_data_send
+	beq HID_REPORTID_BIT_CONSUMER_KEY,keyboard_bit_consumer_data_send
+	beq HID_REPORTID_SYSTEM_CTRL,keyboard_system_control_data_send
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_n_key_rollover_send
+	rtn
+
+keyboard_mouse_data_send:
+	jam DEVICE_DATA_TPYE_MOUSE,mem_keyboard_data_send_flag
+	arg mem_keyboard_tx_data+1,contr
+	arg mem_mouse_key,contw
+	arg 7,loopcnt
+	branch memcpy
+	
+keyboard_standard_data_send:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_standard_data_send_end
+	call keyboard_24g_led_get_status_check
+	fetch 1,mem_keyboard_led_status_get
+	store 1,mem_keyboard_tx_data+2
+keyboard_standard_data_send_end:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyboard_magic_data_send
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 9,loopcnt
+	branch memcpy
+
+keyboard_magic_data_send:
+	jam 0,mem_keyboard_tx_data+9
+	fetch 1,mem_keyboard_fn_flag
+	branch keyboard_magic_data_send_end,blank
+	jam 1,mem_keyboard_tx_data+9
+keyboard_magic_data_send_end:	
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 10,loopcnt
+	branch memcpy
+
+keyboard_consumer_data_send:
+	setarg HID_REPORTID_CONSUMER_KEY
+keyboard_consumer_data_store:
+	store 1,mem_customer_key_press
+	fetch 3,mem_keyboard_tx_data+1
+	store 3,mem_customer_key_press+1
+	rtn
+
+keyboard_bit_consumer_data_send:
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	branch keyboard_consumer_data_store
+
+keyboard_system_control_data_send:
+	setarg HID_REPORTID_SYSTEM_CTRL
+	store 1,mem_customer_key_press
+	fetch 1,mem_keyboard_tx_data+1
+	store 1,mem_customer_key_press+1
+	rtn
+
+keyboard_n_key_rollover_send:
+	setarg HID_REPORTID_N_KEY_ROLLOVER
+	store 1,mem_customer_key_press
+	rtn
+
+////////////////////////////////////////lpm/////////////////////////////////////////////////////////////////////////
+
+keyboard_lpm_before_common:
+	bpatch patch0b_6,mem_patch0b
+	call clear_wake
+
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call gpio_set_wake
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+keyboard_key_col_wake_init:
+	ifetcht 1,regb
+	isolate1 7,temp				// exmcu gpio
+	ncall gpio_out_active,true
+	increase 1,regb
+	loop keyboard_key_col_wake_init
+
+	call keyboard_gpio_pu_idle
+	jam 0,mem_qdec_set_flag
+	
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+keyboard_key_row_wake_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keyboard_key_row_wake_set,zero
+	increase 1,regb
+	loop keyboard_key_row_wake_init
+	
+	call lpm_puchk_set_check
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	branch keyboard_adc_gpio_set_before_hibernate
+	
+keyboard_process_lpm_before:
+	rtnmark1 mark_24g
+	branch keyboard_lpm_before_common
+
+keyboard_before_hibernate:
+	bpatch patch0b_7,mem_patch0b
+	call disable_authrom
+	branch keyboard_setgpio_hibernate
+
+	
+keyboard_power_down:
+	bpatch patch0c_0,mem_patch0c
+	call keyboard_device_led_all_off
+keyboard_app_enter_hibernate:
+	call keyboard_setgpio_hibernate
+	branch app_enter_hibernate		
+
+keyboard_setgpio_hibernate:
+	bpatch patch0c_1,mem_patch0c
+	call clear_wake
+	call keyboard_device_led_all_off
+	call keyboard_rgb_off
+	branch keyboard_lpm_before_common
+	
+////////////////////////////////////////24g/////////////////////////////////////////////////////////////////////////	
+keyboard_24g_pairing_complete:
+	call keyboard_get_24g_led_enable
+	call mouse_no_data_timer_init
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_conn_sm
+	store 1,mem_mouse_move_flag
+	store 1,mem_24g_reconn_type
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr
+	call keyboard_24g_fast_conn_check
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+keyboard_24g_attempt_success:
+	call keyboard_get_24g_led_enable
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call keyboard_24g_fast_conn_check
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	branch mouse_no_data_timer_init	
+
+keyboard_24g_fast_conn_check:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	nbranch mouse_bluetooth_fast_conn_disable,zero
+	jam 0xff,mem_device_fast_conn_flag
+	rtn
+
+keyboard_24g_led_get_status_check:
+	arg 6,loopcnt
+	arg mem_keyboard_tx_data+3,contr
+keyboard_24g_led_data_check:
+	ifetch 1,contr
+	beq HID_KEY_NUM_LOCK,keyboard_get_24g_led_enable
+	beq HID_KEY_CAPS_LOCK,keyboard_get_24g_led_enable
+	beq HID_KEY_SCROLL_LOCK,keyboard_get_24g_led_enable
+	loop keyboard_24g_led_data_check
+	rtn
+
+keyboard_get_24g_led_enable:
+	jam 0x03,mem_keyboard_led_status_get
+	jam 1,mem_keyboard_data_change_flag
+	rtn
+
+keyboard_set_repeat_send_flag:
+	jam 1,mem_24g_repeat_send_flag
+	rtn
+
+
+keyboard_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch keyboard_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,keyboard_24g_fast_conn_attempt_fail
+	beq FAST_CONN_AND_RECEIVER,keyboard_24g_fast_conn_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,keyboard_24g_attempt_fail_enter_hibernate
+	branch keyboard_24g_attempt_fail_enter_hibernate
+
+keyboard_24g_attempt_fail_enter_hibernate:
+	call keyboard_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_power_down
+	rtn	
+
+keyboard_24g_fast_conn_attempt_fail:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_device_24g_addr		// auto pair first time
+	fetcht 4,mem_device_compare_addr
+	isub temp,null
+	branch keyboard_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_dongle_start
+
+keyboard_24g_hibernate_set:
+	bpatch patch0c_2,mem_patch0c
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_24g_shutdown_flag
+	branch keyboard_g24_long_sleep
+
+
+keyboard_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	branch keyboard_disable_function_flag
+
+keyboard_g24_reconn_dispatch:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call hid_device_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+
+keyboard_g24_transmit_no_interrupt:
+	call g24_txdata_prep
+	nbranch keyboard_g24_nodata_transmit,user
+keyboard_g24_transmit_start:
+	call keyboard_g24_transmit_process
+	call keyboard_power_ctrl_start
+	branch keyboard_g24_transmit_start_next
+
+keyboard_g24_nodata_transmit:
+	fetch 8,mem_keyscan_value_current
+	nbranch keyboard_g24_transmit_start_next,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_g24_transmit_start_next,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_g24_transmit_start_next,blank
+	call g24_search_receiver
+keyboard_g24_long_sleep:
+	call keyboard_g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	fetch 1,mem_24g_shutdown_flag
+	ncall keyboard_setgpio_hibernate,blank
+	fetch 8,mem_24g_enter_hibernate
+	branch g24_long_seep2
+
+keyboard_g24_transmit_process:
+	bpatch patch0c_3,mem_patch0c
+	jam 0,mem_24g_retry
+keyboard_g24_transmit_loop:
+	fetchr timeup,2,mem_param_rx_setup
+	until clkn_rt,meet
+	call g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch keyboard_g24_retransmit,sync
+	nbranch keyboard_g24_retransmit,user3
+	call hid_device_g24_ackpayload_parse
+	jam 0,mem_24g_shutdown_flag
+	branch g24_transmit_no_ack
+	
+
+keyboard_g24_retransmit:
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt
+	beq 0xff,g24_tx_attempt_fail
+	fetch 1,mem_24g_retry
+	increase 1,pdata
+	store 1,mem_24g_retry
+	and_into 0x03,pdata
+	branch keyboard_g24_tx_fast_hop,blank		//each 4 times change channel
+	branch keyboard_g24_transmit_loop
+
+keyboard_g24_tx_fast_hop:
+	call kscan_dispatch
+	fetch 1,mem_keyboard_switch_device_flag
+	nbranch soft_reset_chip,blank
+	fetch 1,mem_keyboard_commbination_press_type
+	nbranch g24_transmit_no_ack,blank
+	call g24_tx_fast_hop
+	branch keyboard_g24_transmit_loop
+
+keyboard_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_keyboard_fn_flag
+	nbranch disable_user,blank
+	fetch 1,mem_keyboard_control_key_flag
+	nbranch disable_user,blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nbranch disable_user,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+	branch g24_lpm_wait+5
+	
+keyboard_power_ctrl_start:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	nbranch power_ctrl_start+1,zero
+	jam TX_POWER_FACTORY,mem_tx_power
+	rtn
+keyboard_g24_transmit_start_next:
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+keyboard_g24_short_sleep:
+	bpatch patch0c_4,mem_patch0c
+	call keyboard_g24_lpm_wait
+	branch g24_short_sleep+2
+
+keyboard_24g_package_data:
+	rtnmark0 mark_24g
+	call keyboard_motion
+	nrtn user
+	fetch 1,mem_customer_key
+	nbranch keyboard_24g_keyboard_package_data,blank
+	branch mouse_24g_mouse_package_data
+
+keyboard_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	fetch 1,mem_customer_key_press
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_24g_keyboard_package_n_key_rollover_data
+	arg 10,rega	//length
+	branch hid_device_24g_keyboard_package_data_set
+
+keyboard_24g_keyboard_package_n_key_rollover_data:
+	store 1,mem_keyboard_n_key_rollover_data
+	arg 15,rega
+	arg mem_keyboard_n_key_rollover_data,regb
+	rtn
+
+/**************************************g24 search receiver*****************************************/
+keyboard_24g_search_dongle:
+	bpatch patch0c_5,mem_patch0c
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+	branch hid_device_24g_search_dongle
+
+/////////////////////////////////////////////////////// ble ////////////////////////////////////////////////////////////	
+keyboard_le:
+	bpatch patch0c_6,mem_patch0c
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+keyboard_le_next:	
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_24G_PAIRING_FLAG,hid_device_le_send_empty_packet
+	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
+	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_le_send_empty_packet
+	call keyboard_motion
+	nrtn user
+	call mouse_wheel_trigger
+	branch hid_device_send_package_data_check
+
+keyboard_le_fill_n_key_rollover_key_data:
+	jam 14,mem_le_data_len
+	fetcht 2,mem_le_notify_handle
+	fetch 1,mem_le_data_len
+	copy pdata,rega
+	call le_att_malloc_tx_notify
+	fetcht 1,mem_le_data_len
+	copy temp,loopcnt
+	arg mem_keyboard_n_key_rollover_data+1,contr
+	branch memcpy
+
+keyboard_le_fill_standard_key_data:	
+	jam 9,mem_le_data_len
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyoard_le_fill_standard_key_data_send
+	jam 8,mem_le_data_len
+	branch keyoard_le_fill_standard_key_data_send
+
+keyboard_le_bb_event_connected:
+	call keyboard_load_rgb
+	jam 0,mem_mouse_long_mult_flag
+	jam 1,mem_device_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_device_le_reconnect_flag
+	nbranch keyboard_le_bb_event_connected_next,blank
+	jam 0x14,mem_device_send_secutiry_request_timer
+keyboard_le_bb_event_connected_next:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	jam 0,mem_device_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch keyboard_stop_discovery
+
+
+keyboard_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_keyboard_le_send_conn_param_update
+	store 1,mem_keyboard_le_send_conn_param_update_timer
+	store 1,mem_device_le_bb_connected_flag	
+keyboard_le_bb_disconnected_next:	
+	jam LE_LPM_ENABLE,mem_le_conn_param_reject
+	call le_clr_config_more_data
+	jam 0,mem_ltk_exists
+	branch keyboard_bb_disconnected
+keyboard_bb_disconnected:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,keyboard_le_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_start_discovery
+keyboard_le_event_bb_disconn:
+	jam 0,mem_le_connect_status_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_power_down	
+
+keyboard_le_ll_start_encryt:
+	fetch 1,mem_device_le_reconnect_flag
+	beq 1,keyboard_le_ll_reconn_start_encryt
+	jam 20,mem_le_start_encrypt_timer
+	jam 5,mem_le_start_auto_reco_timer
+	branch mouse_le_ll_enable_start_enc_flag
+keyboard_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 5,mem_le_start_encrypt_timer
+	branch mouse_le_ll_enable_start_enc_flag
+
+keyboard_le_conn_param_update_rsp_recieved:
+	fetch 1,mem_keyboard_le_send_conn_param_update
+	nrtn blank
+	jam 1,mem_keyboard_le_send_conn_param_update
+	jam 30,mem_keyboard_le_send_conn_param_update_timer
+	rtn	
+
+keyboard_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call keyboard_24g_stop,true
+	call mouse_disconnect
+	jam 0,mem_le_connect_status_flag
+	branch keyboard_start_discovery
+	
+keyboard_start_discovery:
+	bpatch patch0c_7,mem_patch0c
+	call keyboard_device_led_all_off+2
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 2,mem_otp_store_device_info_flag
+	jam 0xff,mem_kb_computer_system
+
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,keyboard_start_discovery_norandom
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE,keyboard_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+keyboard_start_discovery_norandom:
+	fetch 3,mem_device_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_device_discovery_timeout
+	store 2,mem_device_discovery_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_device_direct_timer
+	arg KEYBOARD_STORE_MEMORY_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+keyboard_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch keyboard_stop_discovery
+
+keyboard_stop_discovery:
+	bpatch patch0d_0,mem_patch0d
+	setarg 0
+	store 2,mem_device_discovery_timer	
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call keyboard_disable_function_flag
+	call mouse_stop_le_adv
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_all_off+2,blank
+	rtn
+
+keyboard_store_remote_bdaddr:
+	bpatch patch0d_1,mem_patch0d
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_STORE_MEMORY_FLAG
+	arg KEYBOARD_STORE_MEMORY_FLAG,queue
+	call keyboard_disable_function_flag
+	call hid_device_check_device_addr
+	call hid_device_before_store_reconn_info
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+	
+/////////////////////////////////////////////////////// ble auto recognize////////////////////////////////////////////////////////////
+keyboard_le_send_att_find_by_type_value_request_ancs:
+	jam 1,mem_le_connect_ios_mac_flag
+	arg 23,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg mem_le_search_service_uuid,contr
+	branch memcpy16	
+
+keyboard_le_parse_att:
+	bpatch patch0d_2,mem_patch0d
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2
+
+// second time read device info service differ phone from other	
+keyboard_le_send_att_find_by_type_value_request_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_not_find_mac_report
+	jam 2,mem_le_connect_ios_mac_flag
+	arg 9,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg 2,loopcnt
+	arg mem_le_search_mac_uuid,contr
+	branch memcpy
+//third time read handle for manufactory name 
+keyboard_le_parse_att_find_by_type_value_rsp_mac:
+	arg 7,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_READ_BY_TYPE_REQUEST
+	istore 1,contw
+	fetcht 2,mem_le_payload_ptr
+	increase 5,temp
+	ifetch 4,temp
+	istore 4,contw
+	setarg 0x2803
+	istore 2,contw
+	rtn	
+//fourth time whether read manufactory name isn't in device info service	
+keyboard_le_send_att_read_by_type_rsp_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	fetch 2,mem_le_l2cap_size
+	increase -2,pdata
+	div pdata,7
+	call wait_div_end
+	quotient loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,6,contr
+keyboard_le_check_att_read_type_manu_loop:
+	increase 3,contr
+	ifetch 2,contr
+	copy pdata,regc
+	ifetch 2,contr
+	arg 0x2a29,temp
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_rsp_manufactory,zero
+	loop keyboard_le_check_att_read_type_manu_loop
+	branch keyboard_le_parse_att_not_find_mac_report
+keyboard_le_send_att_read_by_type_rsp_manufactory:
+	arg 3,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_READ_REQUEST
+	istore 1,contw
+	copy regc,pdata
+	istore 2,contw
+	rtn	
+//fifth time 	read manufactory name make sure is Apple Inc
+keyboard_le_parse_att_manu_resp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	fetch 2,mem_le_l2cap_size
+	arg 9,loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,5,rega	
+	arg mem_le_search_mac_manu_name,regb
+	call string_compare 
+	branch keyboard_le_parse_att_find_mac_report,zero
+	branch  keyboard_le_parse_att_not_find_mac_report
+
+keyboard_le_parse_att_find_by_type_value_rsp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_find_by_type_value_rsp_mac
+keyboard_le_parse_att_find_ios_report:	
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch keyboard_store_computer_system_ble
+keyboard_le_parse_att_not_find_mac_report:	
+	fetch 1,mem_le_conn_peer_addr_type
+	store 1,mem_kb_computer_system
+	branch keyboard_store_computer_system_ble
+keyboard_le_parse_att_find_mac_report:	
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+keyboard_store_computer_system_ble:
+	jam 0,mem_le_connect_ios_mac_flag
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_OTP,keyboard_store_computer_system_info
+	jam 1,mem_otp_store_system_flag
+	fetch 1,mem_otp_store_device_info_flag
+	rtn blank
+	branch keyboard_wirte_otp_ble
+
+keyboard_store_computer_system_info:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+keyboard_le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_type
+keyboard_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_att_type
+	setarg UUID_CHRCTR_PNP_ID
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_res_pnp_id,zero
+	branch le_send_att_read_by_type_response+8
+keyboard_le_send_att_read_by_type_res_pnp_id:
+	fetch 1,mem_keyboard_le_change_vid_pid_flag
+	branch le_send_att_read_by_type_response+8,blank
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	arg mem_keyboard_le_change_vid_pid_flag+1,contr
+	force 11,pdata		// length +1
+	branch le_send_att_read_by_type_res_not_characteristic+9
+
+keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	fetch 2,mem_le_att_offset
+	sub pdata,66,null
+	nbranch keyboard_le_send_att_read_blob_response,zero
+
+	setarg 23
+	copy pdata,rega
+	copy pdata,regc
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BLOB_RESPONSE
+	istore 1,contw
+	arg mem_keyboard_blob_response_consumer_customize,contr
+	add regc,-1,loopcnt
+	branch memcpy_fast
+
+keyboard_le_send_att_read_blob_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_blob_response
+	fetch 2,mem_keyboard_le_hid_map
+	copy pdata,contr
+	ifetch 2,contr
+	branch le_send_att_read_blob_response+3
+
+keyboard_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,keyboard_le_send_att_read_response_check_auth
+//input:temp is handle
+keyboard_le_send_att_read_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,keyboard_le_send_att_read_response+3
+	bbit0 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL,keyboard_le_send_att_read_response_next
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+keyboard_le_send_att_read_response_next:	
+	fetch 2,mem_le_att_handle
+	beq 0x05,keyboard_le_send_att_appearance
+	beq 0x10,keyboard_le_send_att_pnp_id
+keyboard_le_send_att_read_response_next_1:
+	fetcht 2,mem_le_att_handle
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_response
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	call le_get_search_max_mtu_data
+	fetcht 2,mem_keyboard_le_hid_map
+	copy temp,contr
+	ifetcht 2,contr
+	increase 1,temp
+	call not_greater_than
+	branch le_send_att_read_response_less
+	
+keyboard_le_send_att_appearance:
+	arg mem_keybord_appearance,contr
+	force 3,pdata		// length +1
+	branch le_send_att_read_response_less
+	
+keyboard_le_send_att_pnp_id:
+	fetch 1,mem_keyboard_le_change_vid_pid_flag
+	branch keyboard_le_send_att_read_response_next_1,blank
+	arg mem_keyboard_le_change_vid_pid_flag+1,contr
+	force 8,pdata		// length +1
+	branch le_send_att_read_response_less
+
+keyboard_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch keyboard_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch keyboard_le_send_att_read_response_next,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+keyboard_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	call keyboard_le_parse_att_write_command+1		//MAC  CAPS
+	branch hid_device_le_parse_att_write_request
+
+keyboard_le_parse_att_write_command:
+	call le_parse_att_write_command
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_le_fast_conn_led_get
+	fetch 2,mem_le_att_handle
+	beq 0x25,keyboard_le_led_get
+	rtn
+keyboard_le_fast_conn_led_get:	
+	fetch 2,mem_le_att_handle
+	beq 0x21,keyboard_le_led_get
+	rtn
+	
+keyboard_le_led_get:
+	fetch 1,mem_le_rxbuf+9
+	store 1,mem_keyboard_led_status
+	rtn
+
+///////////////////////////////usb ///////////////////////////////////////////////////////////////////////
+keyboard_usb_mode_start:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	call keyboard_usb_check_enable
+	branch keyboard_usb_interface_check_power_on
+
+keyboard_usb_check_enable:
+	fetch 9,mem_keyboard_usb_vid_pid
+	store 9,mem_usb_vid_pid
+	setarg keyboard_usb_config_param
+	store 2,mem_cb_usb_config
+	jam USB_INTERFACE_INSERT,mem_usb_vdd_status_current
+	rtn
+
+keyboard_usb_config_param:
+	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
+	jam 0x01,mem_usb_tx_interval
+	call usb_tx_interval_config
+	call keyboard_usb_vid_pid_config
+	fetch 1,mem_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+keyboard_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_usb_keyboard_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
+	branch dongle_usb_vid_pid_for_mouse_only_auto_pair
+
+keyboard_usb_interface_check_power_on:	// last=0, current = insert
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_insert
+keyboard_usb_vdd_status_store:	
+	fetch 1,mem_usb_vdd_status_current
+	store 1,mem_usb_vdd_status_last
+	rtn
+keyboard_usb_insert:
+	call keyboard_usb_vdd_status_store
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	fetch 1,mem_usb_wait_updata_timer
+	call usb_init,blank
+	jam 50,mem_usb_wait_updata_timer
+	rtn
+
+keyboard_usb_isr:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_device_flag
+	rtnne MODE_USB_DEVICE
+	branch usb_isr
+
+keyboard_usb_mode:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_device_flag
+	rtnne MODE_USB_DEVICE
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	jam 0,mem_usb_wait_updata_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	call keyboard_24g_stop
+	call keyboard_stop_bluetooth_mode
+	call keyboard_motion
+	nrtn user
+	fetch 1,mem_customer_key
+	beq 1,hid_device_push_keyboard_data_to_usb	
+	branch hid_device_push_mouse_data_to_usb
+
+keyboard_usb_tx_kb_normal_data:
+	jam 0,mem_usb_ep1_data
+	arg 9,loopcnt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,usb_tx_kb_normal_data+4
+	branch usb_tx_kb_normal_data+2	
+
+keyboard_push_n_key_rollover_key_data_to_usb:
+	call dongle_usb_tx_enable_ep2
+	jam USB_EP2_N_KEY_ROLLOVER,mem_usb_ep2_data
+	setarg KB_N_KEY_ROLLOVER_REPORT_ID
+	store 1,mem_usb_kb_n_key_rollvoer_data
+	arg mem_keyboard_n_key_rollover_data+1,contr
+	arg mem_usb_kb_n_key_rollvoer_data+1,contw
+	arg 14,loopcnt
+	branch memcpy
+
+////////////////////////////////public////////////////////////////////////
+keyboard_ui_ipc_send_event:
+	fetch 1,mem_fifo_temp
+	arg 8,loopcnt
+	arg mem_ipc_fifo_bt2c51,contr
+ui_ipc_fifo_check:
+	ifetcht 1,contr
+	isub temp,null
+	rtn zero
+	loop ui_ipc_fifo_check
+	branch ui_ipc_send_event+3
+
+keyboard_enable_function_flag:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	qset1 pdata
+	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtn
+keyboard_disable_function_flag:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	qset0 pdata
+	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtn
+
+keyboard_bt_discovery_button_down_enable:
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch keyboard_enable_function_flag
+keyboard_bt_discovery_button_down_disable:
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch keyboard_disable_function_flag
+
+
Index: program/app_module.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/app_module.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/app_module.prog	(working copy)
@@ -0,0 +1,1390 @@
+
+ifdef COMPILE_MODULE
+
+module_init:	
+	branch module_lpm_uart_init,wake
+//	branch module_lpm_init, wake
+	call le_modified_name
+	setarg module_process_idle
+	store 2,mem_cb_idle_process
+	setarg module_process_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg module_lpm_lock
+	store 2,mem_cb_check_wakelock
+	setarg module_hci_cmd_transmit_le_notify
+	store 2,mem_cb_ble_transmit
+	setarg module_le_receive_data
+	store 2,mem_cb_att_write
+	setarg module_bb_event_timer
+	store 2,mem_cb_event_timer
+
+ifdef COMPILE_WECHAT
+	setarg module_wechat_rx_push_data
+	store 2,mem_module_wechat_rx_push_data_cb
+endif
+	bpatch patch0d_4,mem_patch0d
+	call module_lpm_uart_init
+	call module_gpio_init
+	branch module_hci_event_enter_standby_mode
+
+/*
+	function name:uart init by mem
+	input:
+		mem_module_uart_rx_buffermem_module_uart_rx_buffer_end
+		mem_module_uart_tx_buffermem_module_uart_tx_buffer_end
+		mem_module_uarta_baud_rate
+		bit0 of mem_module_flag
+*/
+module_lpm_uart_init:
+	fetch 1,core_uart_ctrl
+	set0 BIT_UART_CONTROL_ENABLE,pdata
+	store 1,core_uart_ctrl
+	fetch 8,mem_module_uart_rx_buffer
+	call uarta_init_dma_mem
+	fetch uart_baud_len,mem_module_uarta_baud_rate
+	call uarta_init_baud_rate
+	call uart_clock_select_main_freq_crystal
+	jam gpcfg_uart_txd,core_gpio_conf+HCI_UART_TX_GPIO_NUM
+	jam gpcfg_uart_rxd|gpcfg_pullup,core_gpio_conf+HCI_UART_RX_GPIO_NUM
+	jam gpcfg_uart_rts,core_gpio_conf+HCI_UART_RTS_GPIO_NUM
+	jam gpcfg_uart_cts,core_gpio_conf+HCI_UART_CTS_GPIO_NUM
+
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	fetch 2,mem_module_flag
+	isolate1 MODULE_FLAG_UART_FLOW_CONTROL,pdata
+	setflag true,BIT_UART_CONTROL_FLOW_CONTROL,temp
+	storet 1,core_uart_ctrl
+	rtn
+
+/*
+	function:init uart & spp clock by lpm wake
+*/
+//module_lpm_init:
+//	branch module_lpm_uart_init
+
+
+
+/*
+	function name:module_gpio_init
+	init connect state & lpm wake up
+*/
+module_gpio_init:
+	fetcht 1,mem_module_connect_state_gpio
+	call gpio_config_output
+	call module_set_conn_pin_low
+	fetcht 1,mem_module_wake_up_gpio
+	branch gpio_config_input
+
+module_lpm_lock:
+	fetcht 1,mem_module_wake_up_gpio
+	call gpio_get_bit
+	nbranch app_put_lpm_wake_lock,true
+	branch app_get_lpm_wake_lock
+
+
+/*
+	function name:chip idle process callback
+	check uart Tx buffer from SPP Credit&check l2cap fifo&check uart rx data
+*/
+module_process_idle:
+	call l2cap_malloc_is_fifo_full
+	nrtn blank
+	branch module_process_check_hci_command_complete
+
+	
+module_process_bb_event:
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,module_process_le_conn
+	beq BT_EVT_LE_DISCONNECTED,module_process_bb_even_le_disconn
+	beq BT_EVT_LE_PAIRING_FAIL,module_hci_event_le_pairing_fail
+	beq BT_EVT_LE_PAIRING_SUCCESS,module_hci_event_le_pairing_success
+	beq BT_EVT_LE_START_ENC,module_hci_event_start_enc
+	beq BT_EVT_LE_PAUSE_ENC,module_hci_event_pause_enc
+	beq BT_EVT_LE_TK_GENERATE,module_hci_event_le_tk
+	beq BT_EVT_STORE_NVRAM,module_hci_event_store_device
+	beq BT_EVT_LE_LTK_LOST,module_process_ble_ltk_lost
+	beq BT_EVT_LE_UPDATE_PHY,module_process_ble_update_phy
+	beq BT_EVT_LE_GET_PASSKEY,module_hci_event_passkey_entry_mode
+ifdef SECURE_CONNECTION
+	beq BT_EVT_LE_GKEY_GENERATE,module_hci_event_gkey_generate
+endif
+	rtn
+
+
+	
+module_process_bb_even_le_disconn:
+	call le_clr_config_more_data
+	jam 0,mem_module_hci_notify_len
+	call module_disconn_start
+	branch module_hci_event_le_disconnect
+
+
+
+	
+module_process_le_conn:
+//	call le_send_att_exchange_mtu_requset
+	call module_conn_start
+	fetch 1,mem_module_le_lpm_mult
+	store 1,mem_lpm_mult
+	branch module_hci_event_le_connect
+
+
+
+module_disconn_start:
+	call module_start_adv_discovery_by_command
+	branch module_set_conn_pin_high
+
+
+module_process_ble_ltk_lost:
+	call le_send_reject_ind
+	branch le_send_smp_security_request
+
+module_process_ble_update_phy:
+	branch module_hci_event_le_update_phy
+
+
+module_set_conn_pin_high:
+	fetcht 1,mem_module_connect_state_gpio
+	branch gpio_out_active
+
+module_conn_start:
+	call module_stop_adv_discovery
+	branch module_set_conn_pin_low
+	
+module_stop_adv_discovery:
+	fetch 1,mem_module_state
+	isolate1 MOUDLE_STATE_BLE_BIT,pdata
+	call app_ble_stop_adv,true
+	rtn
+module_set_conn_pin_low:
+	fetcht 1,mem_module_connect_state_gpio
+	branch gpio_out_inactive
+
+
+/*
+	function name:check hci command complete
+	hci command format:
+	typedef struct HciFormat
+	{
+		uint8_t HciType;
+		uint8_t HciOpcode;
+		uint8_t HciPayloadLen;
+		uint8_t HciPayload[HciPayloadLen];
+	}
+*/
+module_process_check_hci_command_complete:
+	fetch 1,core_uart_status
+	rtnbit1 UART_STATUS_RX_FIFO_EMPTY  //rx no data
+	call uarta_prepare_rx
+	ifetch 1,contru
+	bne 0x01,module_hci_in_excp	//HciType != 0x01
+	fetch 2,core_uart_rxitems
+	sub pdata,2,null
+	rtn positive
+	ifetch 1,contru
+	store 1,mem_module_uart_opcode
+	ifetcht 1,contru
+	copy contru,rega
+	storet 1,mem_module_uart_len
+	add temp,3,temp
+	fetch 2,core_uart_rxitems
+	isub temp,temp
+	nrtn positive
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	call module_hci_cmd_control
+	fetch 1,mem_module_temp_nl_discard_packet
+	rtneq HCI_NOT_DISCARD_PACKET
+	branch module_hci_dicard_packet //discard this packet
+
+module_hci_in_excp:
+	call delay_10ms
+	call module_hci_event_invalid_packet
+	branch module_hci_release_except
+
+
+module_hci_release_except:
+	bpatch patch0d_5,mem_patch0d
+	call uarta_prepare_rx
+	fetch 2,core_uart_rxitems
+	rtn blank
+	iadd contru,contru
+	branch module_hci_dicard_bytes
+
+module_hci_dicard_packet:
+	call uarta_prepare_rx
+	increase 2,contu
+	ifetch 1,contu
+	iadd contu,contu
+module_hci_dicard_bytes:
+	branch uarta_rxdone
+	
+/*********************HCI CONTROL*********************/
+module_hci_cmd_control:
+	bpatch patch0d_6,mem_patch0d
+	fetch 1,mem_module_uart_opcode
+	beq HCI_CMD_SET_LE_ADDR_REQ,module_hci_cmd_set_le_addr
+	beq HCI_CMD_SET_VISIBILITY_REQ,module_hci_cmd_set_visibility	
+	beq HCI_CMD_SET_LE_NAME_REQ,module_hci_cmd_set_le_name
+	beq HCI_CMD_LE_DATA_REQ,module_hci_cmd_receive_le_data
+	beq HCI_CMD_STATUS_IRQ,module_hci_cmd_inquire_status
+//	beq HCI_CMD_SET_UARTCONTROL_REQ,module_hci_cmd_set_uart_control_mode
+	beq HCI_CMD_SET_UART_BAUD_REQ,module_hci_cmd_set_uart_baud
+	beq HCI_CMD_VERSION_REQ,module_hci_cmd_version_request
+	beq HCI_CMD_BLE_DISCONNECT,module_hci_cmd_ble_disconnect
+	beq HCI_CMD_SET_NVRAM_REQ,module_hci_cmd_set_nvram
+//	beq HCI_CMD_CONFIRM_GKEY,module_hci_cmd_confirm_gkey
+	beq HCI_CMD_AUTO_ADV_SCAN,module_hci_cmd_auto_adv
+	beq HCI_CMD_POWER_REQ,module_hci_cmd_power_request
+	beq HCI_CMD_POWER_SET,module_hci_cmd_power_set
+	beq HCI_CMD_PASSKEY_ENTRY,module_hci_cmd_passkey_entry
+//	beq HCI_CMD_SET_GPIO,module_hci_cmd_set_gpio
+//	beq HCI_CMD_READ_GPIO,module_hci_cmd_read_gpio
+	beq HCI_CMD_LE_SET_PAIRING,module_hci_cmd_le_set_pairing_mode
+//	beq HCI_CMD_LE_SET_ADV_DATA,module_hci_cmd_le_set_adv_data
+	beq HCI_CMD_LE_SET_SCAN_DATA,module_hci_cmd_le_set_scan_data
+	beq HCI_CMD_LE_SEND_CONN_UPDATE_REQ,module_hci_cmd_le_send_conn_update_req
+	beq HCI_CMD_LE_SET_ADV_PARM,module_hci_cmd_set_le_adv_parameter
+	beq HCI_CMD_LE_START_PAIRING,module_hci_cmd_le_start_pairing
+	beq HCI_CMD_SET_WAKE_GPIO,module_hci_cmd_set_wake_gpio
+	beq HCI_CMD_SET_TX_POWER,module_hci_cmd_set_tx_power
+	beq HCI_CMD_LE_CONFIRM_GKEY,module_hci_cmd_le_confirm_gkey
+//	beq HCI_CMD_REJECT_JUSTWORK,module_hci_cmd_set_reject_justwork_flag
+	beq HCI_CMD_RESET_CHIP_REQ,module_hci_cmd_reset_chip
+//	beq HCI_CMD_LE_SET_FIXED_PASSKEY,module_hci_cmd_le_set_fixed_passkey
+	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_PASSKEY_ENTRY_INPUT,module_hci_cmd_le_passkey_entry_input
+//	beq HCI_CMD_LE_CREAT_CONN,module_hci_cmd_le_create_conn
+//	beq HCI_CMD_BLE_SET_PHY,module_hci_cmd_ble_set_phy
+//	beq HCI_CMD_BLE_READ_CURRENT_PHY,module_hci_cmd_ble_read_current_phy
+//	beq HCI_CMD_BLE_SET_DLE,module_hci_cmd_ble_set_dle
+//	beq HCI_CMD_READ_CHIP_DATA,module_hci_cmd_read_chip_data
+//	beq HCI_CMD_WRITE_CHIP_DATA,module_hci_cmd_write_chip_data
+//ifdef COMPILE_WECHAT
+//	beq HCI_CMD_WECHAT_SEND_DATA,module_hci_cmd_wechat_send_data
+//endif
+//	beq HCI_CMD_CLOSE_LPM,module_hci_cmd_close_lpm
+	branch  module_hci_event_receive_invalid_cmd
+
+/*********************HCI COMMAND*********************/
+
+
+//command opcode 0x01
+module_hci_cmd_set_le_addr:
+	fetch 1,mem_module_uart_len
+	bne 6,module_hci_event_receive_invalid_cmd
+	ifetch 6,contru
+	store 6,mem_le_lap
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x02
+module_hci_cmd_set_visibility:
+	fetch 1,mem_module_uart_len
+	bne 1,module_hci_event_receive_invalid_cmd
+	ifetcht 1,contru
+	storet 1,mem_module_bluetooth_stauts_by_command
+	call module_hci_event_receive_valid_cmd
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_CONNECTED
+
+module_start_adv_discovery_by_command:
+moudle_start_adv_by_command:
+	fetch 1,mem_module_state
+	isolate1 MOUDLE_STATE_BLE_BIT,pdata
+	nrtn true
+	fetcht 1,mem_module_bluetooth_stauts_by_command
+	isolate1 2,temp
+	branch app_ble_start_adv,true
+	branch app_ble_stop_adv
+
+
+
+//command opcode 0x04
+module_hci_cmd_set_le_name:
+	arg 29,pdata
+	arg mem_le_name_len,contw
+	call module_hci_cmd_receive_store_mem
+	branch le_modified_name
+
+
+
+//command opcode 0x09
+module_hci_cmd_receive_le_data:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+	call module_check_ble_encrypt_state
+	branch module_hci_event_receive_invalid_cmd,user
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	fetch 2,mem_module_flag
+	bbit1 MODULE_FLAG_BLE_DATA_FINISH,module_hci_cmd_receive_le_data_finish
+	fetch 1,mem_module_hci_notify_len
+	nrtn blank
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	ifetch 2,contru		//handle
+	store 2,mem_module_hci_notify_handle
+	storer contru,2,mem_module_hci_nofiy_addr
+	fetch 1,mem_module_uart_len
+	pincrease -2
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	branch module_hci_event_receive_invalid_cmd,zero
+	store 1,mem_module_hci_notify_len
+	fetcht 2,mem_module_hci_notify_handle
+	increase -1,temp
+	call le_att_get_handle_ptr2
+	branch module_hci_cmd_transmit_handle_error,blank
+	ifetcht 4,contr		//flag
+	setarg 0x01280302
+	isub temp,null
+	nbranch module_hci_cmd_transmit_handle_error,zero
+	ifetch 1,contr
+	store 1,mem_module_hci_notify_type
+	and_into 0x30,pdata
+	branch module_hci_cmd_transmit_handle_error,blank
+	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet
+	call le_set_config_more_data
+	call module_hci_cmd_transmit_le_notify
+	call module_hci_cmd_transmit_le_notify
+	call module_hci_cmd_transmit_le_notify
+	fetch 2,mem_module_flag
+	rtnbit0 MODULE_FLAG_BLE_DATA_FINISH
+module_hci_cmd_receive_le_data_finish:
+	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+	call module_clear_le_tx_data_flag
+	branch module_hci_event_receive_valid_cmd
+
+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
+
+module_hci_cmd_transmit_le_notify:
+	fetch 1,mem_module_hci_notify_len
+	rtn blank
+	call le_fifo_check_nearly_full
+	nrtn blank				//no fifo
+	call module_get_le_remote_mtu
+	bpatch patch0d_7,mem_patch0d
+	fetch 2,mem_le_local_mtu
+	call not_greater_than
+	copy pdata,temp
+	fetch 1,mem_le_l2cap_att_states
+	rtnbit1 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+	add temp,-3,pdata		//sub handle and opcode
+	arg 251,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
+	call module_hci_cmd_transmit_le_notify_malloc_l2cap
+	fetch 2,mem_module_hci_nofiy_addr
+	copy pdata,contru
+	copy rega,loopcnt
+	call uart_copy_rx_bytes_fast
+	copy contru,pdata
+	store 2,mem_module_hci_nofiy_addr
+	fetch 1,mem_module_hci_notify_len
+	nrtn blank
+	branch module_set_le_tx_data_flag
+
+module_hci_cmd_transmit_le_notify_malloc_l2cap:
+	fetcht 2,mem_module_hci_notify_handle
+	fetch 1,mem_module_hci_notify_type
+	bbit1 BIT_CHARACTERISTIC_INDICATE,le_att_malloc_tx_indication
+	bbit1 BIT_CHARACTERISTIC_NOTIFY,le_att_malloc_tx_notify
+	rtn
+
+
+//output: temp is master mtu
+module_get_le_remote_mtu:
+	arg 0x17,temp
+	fetch 2,mem_module_flag
+	rtnbit1 MODULE_FLAG_BLE_SEND_MTU23
+	fetcht 2,mem_le_remote_mtu
+	rtn
+
+module_check_ble_encrypt_state:
+	fetch 2,mem_module_flag
+	bbit1 MODULE_FLAG_BLE_DATA_ENCRYPT,le_check_encrypt_state
+	branch disable_user
+	
+
+//command opcode 0x0b
+module_hci_cmd_inquire_status:
+	branch module_hci_event_status_res
+
+
+
+
+//command opcode 0x0e
+//module_hci_cmd_set_uart_control_mode:
+//	ifetch 1,contru
+//	fetcht 1,mem_module_flag
+//	nsetflag blank,MODULE_FLAG_UART_FLOW_CONTROL,temp
+//	storet 1,mem_module_flag
+//	fetcht 1,core_uart_ctrl
+//	nsetflag blank,BIT_UART_CONTROL_FLOW_CONTROL,temp
+//	storet 1,core_uart_ctrl
+// 	branch module_hci_event_receive_valid_cmd
+
+ 	
+//command opcode 0x0f
+module_hci_cmd_set_uart_baud:
+	fetchr loopcnt,1,mem_module_uart_len
+	call string2dec_from_uart
+	call uart_calc_baud_rate_config
+	store uart_baud_len,mem_module_uarta_baud_rate
+	call module_hci_event_receive_valid_cmd
+	call wait_uarttx
+	fetch uart_baud_len,mem_module_uarta_baud_rate
+	branch uarta_init_baud_rate
+
+
+//command opcode 0x10
+module_hci_cmd_version_request:
+	arg 2,rega
+	arg mem_soft_version_num,regb
+	arg 0,temp
+	branch module_hci_event_set_cmd
+
+
+	
+//command opcode 0x12
+module_hci_cmd_ble_disconnect:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+module_hci_cmd_ble_disconnect_doing:
+	call module_hci_event_receive_valid_cmd
+	branch app_ble_disconnect
+
+
+
+
+//command opcode 0x26
+module_hci_cmd_set_nvram:
+	fetchr loopcnt,1,mem_module_uart_len
+	fetch 2,mem_nv_data_ptr
+	icopy contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x28
+//module_hci_cmd_confirm_gkey:
+//	fetch 2,mem_ui_state_map
+//	bbit1 UI_STATE_BLE_CONNECTED,module_hci_cmd_le_confirm_gkey
+//	branch module_hci_event_receive_invalid_cmd
+
+
+//command opcode 0x2a
+module_hci_cmd_auto_adv:
+	arg 0x40,loopcnt
+	arg mem_le_adv_data_len,contw
+	call clear_mem
+	setarg 0
+	store 1,mem_regb
+	copy rega,contru
+module_hci_cmd_auto_adv_loop:
+	copy contru,pdata
+	store 2,mem_regc
+	call module_hci_cmd_auto_adv_adv_analys
+
+	fetch 1,mem_regb
+	fetcht 1,mem_temp
+	increase 1,temp
+	iadd temp,pdata
+	store 1,mem_regb
+
+	sub pdata,31,null
+	nbranch module_hci_cmd_auto_adv_store_scan,positive
+module_hci_cmd_auto_adv_store_adv:
+	fetcht 1,mem_le_adv_data_len
+	setarg mem_le_adv_data
+	iadd temp,pdata
+	store 2,mem_contw
+	fetcht 1,mem_temp
+	increase 1,temp
+	fetch 1,mem_le_adv_data_len
+	iadd temp,pdata
+	store 1,mem_le_adv_data_len
+	branch module_hci_cmd_auto_adv_store_common
+module_hci_cmd_auto_adv_store_scan:
+	fetcht 1,mem_le_scan_data_len
+	setarg mem_le_scan_data
+	iadd temp,pdata
+	store 2,mem_contw
+	fetcht 1,mem_temp
+	increase 1,temp
+	fetch 1,mem_le_scan_data_len
+	iadd temp,pdata
+	store 1,mem_le_scan_data_len
+module_hci_cmd_auto_adv_store_common:
+	fetch 2,mem_contw
+	copy pdata,contw
+	fetch 2,mem_regc
+	copy pdata,contru
+
+	copy temp,loopcnt
+	call uart_copy_rx_bytes_fast
+
+	fetch 1,mem_module_uart_len
+	fetcht 1,mem_regb
+	isub temp,null
+	nbranch  module_hci_cmd_auto_adv_loop,zero
+	branch module_hci_event_receive_valid_cmd
+
+//block of adv len in mem_temp
+module_hci_cmd_auto_adv_adv_analys:
+	ifetch 1,contru
+	store 1,mem_temp
+	ifetch 1,contru
+	store 1,mem_rega
+	rtn
+
+
+//command opcode 0x2b
+module_hci_cmd_power_request:
+	arg 0,temp
+	arg 2,rega
+	fetch 2,mem_module_vdd_quotient
+	store 2,mem_event_cmd_response_content
+	arg mem_event_cmd_response_content,regb
+	branch module_hci_event_set_cmd
+
+
+//command opcode 0x2c
+module_hci_cmd_power_set:
+	fetch 1,mem_module_uart_len
+	bne 1,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_module_read_vdd_flag
+	setarg 0x00
+	store 2,mem_module_vdd_quotient
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x30
+module_hci_cmd_passkey_entry:
+	fetch 1,mem_module_uart_len
+	bne 4,module_hci_event_receive_invalid_cmd
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,module_hci_cmd_le_passkey_entry_input
+	branch module_hci_event_receive_invalid_cmd
+
+
+
+//command opcode 0x31
+//module_hci_cmd_set_gpio:
+//	fetch 1,mem_module_uart_len
+//	bne 3,module_hci_event_receive_invalid_cmd
+//	ifetch 1,contru
+//	beq HCI_CMD_CONFIG_GPIO_INPUT,module_set_gpio_input
+//	beq HCI_CMD_CONFIG_GPIO_OUTPUT,module_set_gpio_output
+//	branch module_hci_event_receive_invalid_cmd
+
+//module_set_gpio_input:
+//	call module_hci_event_receive_valid_cmd
+//	ifetcht 1,contru
+//	ifetch 1,contru
+//	beq GPIO_INPUT_HIGH_IMPEDANCE,gpio_set_high_impedance
+//	nsetflag blank,7,temp
+//	branch gpio_config_input
+
+//module_set_gpio_output:
+//	call module_hci_event_receive_valid_cmd
+//	ifetcht 1,contru
+//	ifetch 1,contru	
+//	branch gpio_out_active,blank
+//	branch gpio_out_inactive
+
+
+//command opcode 0x32
+//module_hci_cmd_read_gpio:
+//	fetch 1,mem_module_uart_len
+//	bne 1,module_hci_event_receive_invalid_cmd
+//	ifetcht 1,contru
+//	call gpio_get_bit
+//	setarg 0x0
+//	nsetflag true,0,pdata
+//	arg 1,rega
+//	store 2,mem_event_cmd_response_content
+//	arg mem_event_cmd_response_content,regb
+//	arg 0,temp
+//	branch module_hci_event_set_cmd
+
+
+//command opcode 0x33
+module_hci_cmd_le_set_pairing_mode:
+	ifetch 1,contru
+ifdef SECURE_CONNECTION
+	copy pdata,temp
+	beq LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK,module_le_set_pairing_mode_secure_justwork
+	beq LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC,module_le_set_pairing_mode_secure_numeric
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY,module_le_set_pairing_mode_secure_passkey
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,module_le_set_pairing_mode_secure_passkey_res_input
+endif 
+	store 1,mem_le_pairing_mode
+ifdef SECURE_CONNECTION
+	call sc_reset
+	call le_secure_connection_disable
+endif 
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_NONE, module_le_set_no_pairing
+	beq LE_PAIRING_MODE_LAGACY_JUSTWORK,module_le_set_pairing_mode_lagacy_just_work
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY,module_le_set_pairing_mode_lagacy_passkey
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,module_le_set_pairing_mode_lagacy_passkey_res_input
+	branch module_hci_event_receive_invalid_cmd
+	
+ifdef SECURE_CONNECTION		
+module_le_set_pairing_mode_secure_justwork:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_noinputnooutput
+module_le_set_pairing_mode_secure_numeric:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	jam FLAG_IOCAP_DISPLAYYESNO,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_pairing_mode_secure_passkey:	
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_displayonly
+module_le_set_pairing_mode_secure_passkey_res_input:
+	storet 1,mem_le_pairing_mode
+	call le_secure_connection_enable
+	jam FLAG_LE_BONDING_MITM_SECURE,mem_le_pres_auth
+	branch module_le_set_keboadonly
+endif 
+
+
+module_le_set_no_pairing:
+	jam FLAG_LE_NO_BONDING_NO_MITM,mem_le_pres_auth
+module_le_set_noinputnooutput:	
+	jam FLAG_IOCAP_NOINPUTNOOUTPUT,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_pairing_mode_lagacy_just_work:
+	jam FLAG_LE_BONDING_NO_MITM,mem_le_pres_auth
+	branch module_le_set_noinputnooutput
+module_le_set_pairing_mode_lagacy_passkey:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+	branch module_le_set_displayonly
+module_le_set_pairing_mode_lagacy_passkey_res_input:
+	jam FLAG_LE_BONDING_MITM,mem_le_pres_auth
+	branch module_le_set_keboadonly
+module_le_set_keboadonly:	
+	jam FLAG_IOCAP_KEYBOARDONLY,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+module_le_set_displayonly:	
+	jam FLAG_IOCAP_DISPLAYONLY,mem_le_pres_iocap
+	branch module_hci_event_receive_valid_cmd	
+
+
+//command opcode 0x34
+//module_hci_cmd_le_set_adv_data:
+//	arg 31,pdata
+//	arg mem_le_adv_data_len,contw
+//	branch module_hci_cmd_receive_store_mem
+
+
+//command opcode 0x35
+module_hci_cmd_le_set_scan_data:
+	arg 31,pdata
+	arg mem_le_scan_data_len,contw
+	branch module_hci_cmd_receive_store_mem
+
+/*
+	input:contw is store mem ptr
+	pdata is max length
+*/
+module_hci_cmd_receive_store_mem:
+	fetchr loopcnt,1,mem_module_uart_len
+	isub loopcnt,null
+	nbranch module_hci_event_receive_invalid_cmd,positive
+	istorer loopcnt,1,contw
+	call uart_copy_rx_bytes_fast
+	branch module_hci_event_receive_valid_cmd	
+
+	
+//command opcode 0x36
+module_hci_cmd_le_send_conn_update_req:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_module_uart_len
+	bne 0x08,module_hci_event_receive_invalid_cmd
+	ifetch 8,contru
+	store 8,mem_le_interval_min
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	call  ui_ipc_send_cmd
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x37
+module_hci_cmd_set_le_adv_parameter:
+	ifetch 2,contru
+	store 2,mem_le_adv_interval
+	storet 1,mem_lpm_overhead
+	iadd temp,pdata
+	store 2,mem_lpm_interval
+	branch module_hci_event_receive_valid_cmd
+	
+	
+//command opcode 0x38
+module_hci_cmd_le_start_pairing:
+	fetch 1,mem_le_pairing_mode
+	branch module_hci_event_receive_invalid_cmd,blank
+	fetch 1,mem_le_pairing_state
+	bne FLAG_LE_PAIRING_NULL,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_le_enc_state
+	bne FLAG_LE_ENC_NULL,module_hci_event_receive_invalid_cmd
+	call check_51cmd_le_smp_sec_req
+	branch module_hci_event_receive_valid_cmd	
+
+
+//command opcode 0x40
+module_hci_cmd_set_wake_gpio:
+	fetch 1,mem_module_uart_len
+	bne 5,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_module_mcu_wake_pin
+	ifetch 4,contru
+	store 4, mem_module_mcu_wake_delay_us
+	fetcht 1,mem_module_mcu_wake_pin
+	call gpio_config_output
+	call module_set_mcu_wake_pin_low
+	branch module_hci_event_receive_valid_cmd
+	
+
+//command opcode 0x42
+module_hci_cmd_set_tx_power:
+	fetch 1,mem_module_uart_len
+	bne 0x01,module_hci_event_receive_invalid_cmd
+	ifetch 1,contru
+	store 1,mem_tx_power
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x48
+module_hci_cmd_le_confirm_gkey:
+	ifetch 1,contru
+	beq 0x01,module_hci_cmd_le_confirm_gkey_fail
+	fetch 1,mem_le_secure_connect_state
+	beq LE_SC_STAT_SEND_PUBLIC_KEY,module_hci_cmd_le_confirm_gkey_ok
+	beq LE_SC_STAT_RECEIVE_DHKEY,module_hci_cmd_le_confirm_gkey_ok
+	beq LE_SC_STAT_WAIT_CONFIRM_GKEY,module_hci_cmd_le_confirm_gkey_ok
+	branch module_hci_event_receive_invalid_cmd		
+module_hci_cmd_le_confirm_gkey_ok:
+	jam FLAG_LE_SC_CONFRIM_GKEY_OK,mem_le_sc_confirm_gkey_flag
+	branch module_hci_event_receive_valid_cmd	
+	
+module_hci_cmd_le_confirm_gkey_fail:
+	call le_send_pairing_confirm_value_failed
+	branch module_hci_event_receive_valid_cmd
+
+
+
+
+//command opcode 0x51
+module_hci_cmd_reset_chip:
+	call module_hci_event_receive_valid_cmd
+	call wait_uarttx
+	jam 0x01,core_reset // rest YC1021
+	branch assert
+
+
+//command opcode 0x61
+//module_hci_cmd_le_set_fixed_passkey:
+//	fetch 1,mem_module_uart_len
+//	beq 0,module_hci_event_receive_invalid_cmd
+//	ifetch 1,contru
+//	branch module_hci_cmd_le_set_random_passkey,blank
+//	fetch 1,mem_module_uart_len
+//	bne 5,module_hci_event_receive_invalid_cmd
+//	ifetch 4,contru
+//	arg 1000000,temp
+//	isub temp,null
+//	branch module_hci_event_receive_invalid_cmd,positive
+//	store 4,mem_le_tk
+//	call le_set_config_fixed_tk
+//	branch module_hci_event_receive_valid_cmd
+
+//module_hci_cmd_le_set_random_passkey:
+//	call le_clr_config_fixed_tk
+//	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x76
+module_hci_cmd_delete_customize_service:
+	arg 0x0001,temp
+	call le_att_get_handle_ptr2
+	add contr,-2,contw
+	setarg 0x0000
+	istore 2,contw
+	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x77
+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
+
+
+
+//command opcode 0x78
+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_get_last_handle
+	ifetch 1,contru
+	and pdata,0x1f,loopcnt
+	copy pdata,rega
+	isolate1 BIT_OF_WRITE_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,temp
+	isolate1 BIT_OF_READ_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_READ_AUTHENTICATED,temp
+	istoret 2,contw
+	copy loopcnt,pdata
+	istore 1,contw
+	call uart_copy_rx_bytes
+	call uart_copy_rx_bytes_len_data		//data
+	setarg 0
+	istore 2,contw
+	and temp,0xff,temp
+	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_get_last_handle
+	isolate1 BIT_OF_NOTIFY_AUTHENTICATED,rega
+	setflag true,BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED,temp
+	istoret 2,contw
+	setarg 0x02290202
+	istore 8,contw
+	increase -1,temp
+	rtn
+
+
+le_att_creat_new_handle:
+	call le_att_get_last_handle
+	istoret 2,contw
+	rtn
+
+
+uart_copy_rx_bytes_len_data:
+	ifetch 1,contru
+	copy pdata,loopcnt
+	istore 1,contw
+	branch uart_copy_rx_bytes
+
+
+//command opcode 0x7a
+module_hci_cmd_le_passkey_entry_input:
+	fetch 1,mem_le_pairing_state
+	bne FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM,module_hci_event_receive_invalid_cmd
+	fetch 1,mem_le_pairing_mode
+	beq LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT,module_hci_cmd_passkey_entry_res_input
+	beq LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT,module_hci_cmd_passkey_entry_sc_res_input
+	branch module_hci_event_receive_invalid_cmd
+
+module_hci_cmd_passkey_entry_sc_res_input:
+	jam LE_SP_FLAG_COMMIT_256,mem_le_secure_connect_flag
+	jam LE_SC_STAT_PASSKEY_WAIT_CONFIRM,mem_le_secure_connect_state	
+	branch module_hci_cmd_receive_ble_passkey
+
+module_hci_cmd_receive_ble_passkey:
+	ifetch 4,contru
+	store 4,mem_le_tk
+	branch module_hci_event_receive_valid_cmd
+	
+module_hci_cmd_passkey_entry_res_input:
+	call module_hci_cmd_receive_ble_passkey
+	branch le_send_smp_pairing_confirm
+
+
+//command opcode 0x7b
+//module_hci_cmd_le_create_conn:
+//	ifetch 6,contru
+//	store 6,mem_le_conn_peer_addr
+//	jam hci_cmd_le_create_conn,mem_cmd_le_create_conn
+//	jam ON,mem_le_conn_flag
+//	jam ON,mem_le_scan_enable
+//	branch module_hci_event_receive_valid_cmd
+	
+
+
+//command opcode 0x90
+//module_hci_cmd_ble_set_phy:
+//	fetch 1,mem_module_uart_len
+//	bne 2,module_hci_event_receive_invalid_cmd
+//	ifetcht 2,contru
+//	call le_set_phys
+//	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x91
+//module_hci_cmd_ble_read_current_phy:
+//	arg 0,temp
+//	arg 2,rega
+//	arg mem_context+coffset_le_rx_phy,regb
+//	branch module_hci_event_set_cmd
+
+
+//command opcode 0x92
+//module_hci_cmd_ble_set_dle:
+//	fetch 1,mem_module_uart_len
+//	bne 8,module_hci_event_receive_invalid_cmd
+//	ifetch 8,contru
+//	call le_set_dle
+//	branch module_hci_event_receive_valid_cmd
+
+
+//command opcode 0x93
+//module_hci_cmd_read_chip_data:
+//	ifetchr rega,1,contru
+//	ifetchr regb,2,contru
+//	arg 0,temp
+//	branch module_hci_event_set_cmd
+
+
+//command opcode 0x94
+//module_hci_cmd_write_chip_data:
+//	fetchr loopcnt,1,mem_module_uart_len
+//	increase -2,loopcnt
+//	ifetch 2,contru
+//	copy pdata,contw
+//	call uart_copy_rx_bytes_fast
+//	branch module_hci_event_receive_valid_cmd
+
+//ifdef COMPILE_WECHAT
+//command opcode 0x95
+//module_hci_cmd_wechat_send_data:
+//	fetch 2,mem_ui_state_map
+//	bbit0 UI_STATE_BLE_CONNECTED,module_hci_event_receive_invalid_cmd
+//	fetchr loopcnt,1,mem_module_uart_len
+//	arg mem_module_wechat_local_data_buffer,contw
+//	call uart_copy_rx_bytes_fast
+//	fetchr regb,1,mem_module_uart_len
+//	arg mem_module_wechat_local_data_buffer,rega
+//	call wechat_air_sync_send_wechat_packet
+//	jam HCI_NOT_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+//	rtn user
+//	jam HCI_DISCARD_PACKET,mem_module_temp_nl_discard_packet 
+//	branch module_hci_event_receive_valid_cmd
+//endif
+
+
+//command opcode 0xff
+//module_hci_cmd_close_lpm:
+//	jam 0,mem_lpm_mode
+//	branch module_hci_event_receive_valid_cmd
+	
+
+/*********************HCI EVENT*********************/
+
+module_hci_event_receive_invalid_cmd:
+	arg 1,temp
+	arg 0,rega
+	branch module_hci_event_set_cmd
+
+
+module_hci_event_receive_valid_cmd:
+	arg 0,temp
+	arg 0,rega
+	branch module_hci_event_set_cmd
+
+
+//event opcode 0x02
+module_hci_event_le_connect:
+	jam  HCI_EVENT_LE_CONN_REP,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+
+//event opcode 0x05
+module_hci_event_le_disconnect:
+	jam  HCI_EVENT_LE_DIS_REP,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x06
+//input:
+//	temp: success 0; fail 1
+//	rega:Response Content length
+//	regb:Response Content address
+module_hci_event_set_cmd:
+	fetch 1,mem_module_uart_opcode
+	copy pdata,regc
+	jam  HCI_EVENT_CMD_RES,mem_module_uart_opcode
+	setarg 2
+	iadd rega,pdata
+	call module_hci_prepare_tx
+	copy regc,pdata
+	istore 1,contwu
+	istoret 1,contwu
+	copy rega,loopcnt
+	copy regb,contr
+	call uart_copy_tx_bytes
+	branch module_hci_transmit_tx
+
+
+
+
+//event opcode 0x08
+//loopcnt pdata is data length
+module_hci_event_receive_le_data:
+	jam HCI_EVENT_LE_DATA_REP,mem_module_uart_opcode
+	add loopcnt,2,pdata
+	call module_hci_prepare_tx
+	fetch 2,mem_module_le_rx_data_handle // Attribute handle
+	istore 2,contwu
+	fetch 2,mem_module_le_rx_data_address
+	icopy contr
+	call uart_copy_tx_bytes_fast
+	copy contr,pdata
+	store 2,mem_module_le_rx_data_address
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x09
+module_hci_event_enter_standby_mode:
+	jam HCI_EVENT_STANDBY_REP,mem_module_uart_opcode
+module_hci_event_enter_standby_mode_len0:
+	setarg 0
+	call module_hci_prepare_tx
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x0a
+module_hci_event_status_res:
+	jam HCI_EVENT_STATUS_RES,mem_module_uart_opcode
+	setarg 1
+	call module_hci_prepare_tx
+	
+	call module_hci_read_bt_status
+	
+	fetch 2,mem_ui_state_map	
+	arg UI_STATE_BLE_CONNECTED,queue
+	qisolate1 pdata
+	setflag true,5,temp	
+	
+
+	
+	istoret 1,contwu
+	branch module_hci_transmit_tx
+
+//	temp: bit0 3.0 inquiry;bit1 3.0 scan;bit2 ble adv;
+
+module_hci_read_bt_status:
+	arg 0,temp
+	fetch 1,mem_le_adv_enable
+	arg 0,queue
+	qisolate1 pdata
+	setflag true,2,temp	
+	rtn
+
+
+//event opcode 0x0d
+module_hci_event_store_device:
+	jam HCI_EVENT_NVRAM_REP,mem_module_uart_opcode
+	fetch 1,mem_nv_data_number
+	mul32 pdata,34,pdata
+	icopy loopcnt
+	call module_hci_prepare_tx
+	fetch 2,mem_nv_data_ptr
+	icopy contr
+	call uart_copy_tx_bytes_fast
+	branch module_hci_transmit_tx
+
+ifdef SECURE_CONNECTION
+//event opcode 0x0e
+module_hci_event_gkey_generate:
+	jam HCI_EVENT_GKEY,mem_module_uart_opcode
+	setarg 4
+	call module_hci_prepare_tx
+	fetch 4,mem_gkey
+	istore 4,contwu
+	branch module_hci_transmit_tx
+endif
+
+//event opcode 0x0f
+module_hci_event_invalid_packet:
+	jam HCI_EVENT_INVALID_PACKET,mem_module_uart_opcode
+	fetch 2,core_uart_rxitems
+	arg 0x40,temp
+	call not_greater_than
+	copy pdata,rega
+	copy pdata,loopcnt
+	call uarta_prepare_rx
+	arg mem_module_rx_error_data_buffer,contw
+	call uart_copy_rx_bytes_fast
+	copy rega,pdata
+	copy rega,loopcnt
+	call module_hci_prepare_tx
+	arg mem_module_rx_error_data_buffer,contr
+	call uart_copy_tx_bytes_fast
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x10
+module_hci_event_passkey_entry_mode:
+	jam  HCI_EVENT_GET_PASSKEY,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x11
+module_hci_event_le_tk:
+	jam HCI_EVENT_LE_TK,mem_module_uart_opcode
+	setarg 4
+	call module_hci_prepare_tx
+	fetch 4,mem_le_tk
+	istore 4,contwu
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x14
+module_hci_event_le_pairing_fail:
+	arg FLAG_BLE_PAIRING_FAIL,rega
+	branch module_hci_event_pairing_completed
+
+module_hci_event_le_pairing_success:
+	arg FLAG_BLE_PAIRING_SUCCESS,rega
+	branch module_hci_event_pairing_completed
+
+
+module_hci_event_pairing_completed:
+	jam HCI_EVENT_LE_PAIRING_STATE,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	copy rega,pdata
+	istore 2,contwu
+	branch module_hci_transmit_tx
+
+
+//event opcode 0x15
+module_hci_event_pause_enc:
+	arg FLAG_EVENT_PAUSE_ENC,regc
+	branch module_hci_event_enc
+
+module_hci_event_start_enc:
+	arg FLAG_EVENT_START_ENC,regc
+
+module_hci_event_enc:
+	jam HCI_EVENT_LE_ENCRYPTION_STATE,mem_module_uart_opcode
+	setarg 1
+	call module_hci_prepare_tx
+	copy regc,pdata
+	istore 1,contwu
+	branch module_hci_transmit_tx
+
+
+
+//event opcode 0x29
+//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 module_hci_transmit_tx
+
+
+//event opcode 0x2B
+module_hci_event_le_input_passkey:
+	jam HCI_EVENT_LE_INPUT_GKEY,mem_module_uart_opcode
+	branch module_hci_event_enter_standby_mode_len0
+
+
+//event opcode 0x40
+module_hci_event_le_update_phy:
+	jam HCI_BLE_UPDATE_PHY_EVENT,mem_module_uart_opcode
+	setarg 2
+	call module_hci_prepare_tx
+	fetch 2,mem_context+coffset_le_rx_phy
+	istore 2,contwu
+	branch module_hci_transmit_tx
+
+ifdef COMPILE_WECHAT
+//event opcode 0x41
+module_wechat_rx_push_data:
+module_hci_event_ble_wechat_receive_push_data:
+	call wechat_air_sync_check_push_data_struct
+	nrtn user
+	jam HCI_BLE_WECHAT_RECEIVE_PUSH_DATA,mem_module_uart_opcode
+	copy loopcnt,pdata
+	call module_hci_prepare_tx
+	copy regc,contr
+	call uart_copy_tx_bytes_fast
+	branch module_hci_transmit_tx
+endif
+	
+
+//****************************************************************//
+	//module_hci_prepare_tx
+	//function:write hci packet header
+	//input: pdata-----packet length  (1byte)
+	//input: mem_uart_opcode------opcode (1byte)
+	//output:contwu --- pointer to packet payload
+	//use reg: contwu,pdata
+//****************************************************************//	
+module_hci_prepare_tx:
+	jam 0x02,mem_module_uart_cmd
+	store 1,mem_module_uart_len
+	storet 8,mem_temp
+	bpatch patch0e_0,mem_patch0e
+	call module_set_mcu_wake_pin_high_delay
+	fetcht 8,mem_temp
+	call uarta_prepare_tx_register_push
+	fetch 3,mem_module_uart_cmd
+	istore 3,contwu
+	rtn
+
+module_hci_transmit_tx:
+	bpatch patch0e_1,mem_patch0e
+	branch uarta_send_register_pop
+
+module_set_mcu_wake_pin_high_delay:
+	call module_check_mcu_wake_pin_high
+	rtn true
+module_set_mcu_wake_pin_h_delay:
+	call module_set_mcu_wake_pin_high
+	fetch 4,mem_module_mcu_wake_delay_us
+	rshift2 pdata,pdata
+	rtn blank
+	branch delay
+
+module_set_mcu_wake_pin_high:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_out_active
+
+module_check_mcu_wake_pin_high:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_check_active
+
+module_set_mcu_wake_pin_low:
+	fetcht 1,mem_module_mcu_wake_pin
+	branch gpio_out_inactive
+
+
+
+/*********************hci command end*********************/
+
+/*********************hci ble receive data start*********************/
+
+//rega is le rx data address
+//regb is le rx data length
+//mem_le_att_handle is write handle
+module_le_receive_data:
+	storer rega,2,mem_module_le_rx_data_address
+	storer regb,2,mem_module_le_rx_data_len
+	fetch 2,mem_le_att_handle
+	store 2,mem_module_le_rx_data_handle
+	call module_check_ble_encrypt_state
+	rtn user
+	
+module_le_receive_data_ok:	
+	fetcht 2,mem_module_le_rx_data_len
+	fetch 1,mem_module_ble_data_uart_max_length
+	call not_greater_than
+	copy pdata,loopcnt
+	copy temp,pdata
+	isub loopcnt,pdata
+	store 2,mem_module_le_rx_data_len
+	call module_hci_event_receive_le_data
+	fetch 2,mem_module_le_rx_data_len
+	rtn blank
+	branch module_le_receive_data_ok
+
+/*********************hci ble receive data end*********************/
+
+
+module_bb_event_timer:
+	rtn
+
+module_read_vdd_timer:
+	fetch 1,mem_module_read_vdd_flag
+	rtn blank
+	fetch 1,mem_module_read_vdd_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_module_read_vdd_count
+	nrtn blank
+	jam FLAG_MODULE_READ_VDD_COUNT,mem_module_read_vdd_count
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	div pdata,100
+	call get_div_result
+	remainder temp
+	store 1,mem_module_vdd_quotient
+	storet 1,mem_module_vdd_remainder
+	rtn	
+	
+
+
+/**************module state *******************/
+
+module_set_le_tx_data_flag:
+	arg MODULE_FLAG_BLE_DATA_FINISH,queue
+	branch module_set_state
+	
+module_clear_le_tx_data_flag:
+	arg MODULE_FLAG_BLE_DATA_FINISH,queue
+	branch module_clr_state
+
+module_clr_state:
+	fetch 2,mem_module_flag
+	qset0 pdata
+	store 2,mem_module_flag
+	rtn
+
+module_set_state:
+	fetch 2,mem_module_flag
+	qset1 pdata
+	store 2,mem_module_flag
+	rtn
+	
+/**************module state end*******************/
+
+endif
Index: program/app_mouse.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/app_mouse.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/app_mouse.prog	(working copy)
@@ -0,0 +1,5593 @@
+
+ifdef COMPILE_MOUSE
+mouse_init:
+	call enable_authrom
+	call mouse_wake_gpio_set,wake
+	call mouse_setting_config
+	call mouse_le_name_modify
+	call mouse_init_sunt
+	rtn wake
+	call mouse_usb_check_enable
+	call mouse_setting_sensor_type
+	call mouse_drawing_optima_init
+	call mouse_cb_fuction
+	call mouse_sensor_powerdown
+mouse_init_wireless:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	call mouse_check_select_device_by_switch_once
+	branch mouse_start_work
+
+mouse_wake_gpio_set:
+	call mouse_matrix_public_gpio_reset
+	branch lpm_config_puchk_disable
+
+mouse_cb_fuction:
+	bpatch patch0e_2,mem_patch0e
+	setarg mouse_24g_short_sleep
+	store 2,mem_cb_24g_transmit_short_sleep
+	setarg mouse_24g_long_sleep
+	store 2,mem_cb_24g_transmit_long_sleep
+	setarg mouse_24g_before_lpm_sleep
+	store 2,mem_cb_before_lpm_sleep
+	setarg mouse_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg mouse_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg mouse_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg mouse_le
+	store 2,mem_cb_le_process
+	setarg mouse_process_lpm_before
+	store 2,mem_cb_before_lpm
+	setarg mouse_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg mouse_idle
+	store 2,mem_cb_idle_process
+	setarg mouse_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write
+	setarg mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	branch hid_device_cb_fuction
+
+mouse_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call mouse_24g_send_time_long_wake
+	call mouse_gpio_init
+	call mouse_param_info_init
+//	call mouse_sensor_parm_init
+	call mouse_device_multi_led_parm_init
+	call le_set_fixed_ltk_justwork
+mouse_load_device_info_check:
+	bpatch patch0e_3,mem_patch0e
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_load_eeprom_info_check
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	bbit1 MOUSE_ENABLE_OTP,mouse_load_otp_info_check
+	rtn
+
+mouse_xtal_init:
+	jam XTAL_16M,mem_fcomp_div		// 0x08--16M
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_16M
+	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
+	rtn
+
+mouse_24g_phy_select:
+	call g24_enable_1M
+	jam 0,mem_mouse_sleep_deal_type
+	jam 0,mem_24g_disable_fec1
+	jam 0,mem_power_ctrl_disable
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 1,mem_mouse_sleep_deal_type
+	jam 1,mem_24g_disable_fec1
+	jam 1,mem_power_ctrl_disable
+	branch g24_enable_2M
+
+//*******************************recon dispatch set*************************//
+
+mouse_g24_reconn_dispatch_set:
+	bpatchx patch3e_0,mem_patch3e
+	fetch 1,mem_24g_rxdata_length	//ack payload length
+	branch mouse_receiver_addr_check,blank
+mouse_g24_reconn_dispatch:
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch mouse_g24_reconn_mode_judge,zero
+	branch g24_reconn_dispatch_success
+
+mouse_receiver_addr_check:
+	fetch 4,mem_24g_fast_conn_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch mouse_g24_reconn_dispatch,zero
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	branch mouse_g24_reconn_dispatch
+
+mouse_g24_reconn_mode_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_pair_mode_check
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_pair_mode_check
+	branch g24_reconn_receiver_addr
+
+mouse_g24_transmit_hop_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_2M_PHY,g24_transmit_hop_process_next
+mouse_g24_transmit_hop_process_new:
+	fetcht 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
+	isub temp,null
+	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count
+	beq 15,mouse_g24_transmit_hop_process_4ms
+	fetch 1,mem_24g_retry
+	beq 20,g24_hop_ch_disable
+	beq 30,g24_hop_ch_disable
+	rtn
+
+mouse_g24_transmit_hop_process_4ms:
+	fetch 1,mem_24g_retry
+	beq 10,g24_hop_ch_disable
+	beq 15,g24_hop_ch_disable
+	rtn
+
+//**********************default parm init start********************//
+
+mouse_default_init:
+	bpatch patch0e_4,mem_patch0e
+	call hid_device_default_parm_init
+	call mouse_xtal_init
+	call mouse_24g_phy_select
+	call mouse_24g_long_sleep_set
+	branch g24_pair_param_init
+
+//**********************default parm init end********************//
+
+
+
+//**********************mouse parm init start********************//
+
+mouse_param_info_init:
+	bpatch patch0e_5,mem_patch0e
+	call mouse_param_common_init
+	call mouse_report_rate_parm_init
+	call mouse_sensor_set_angle
+mouse_spi_parm_init:
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+	rtn
+
+mouse_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	setarg 0
+	store 7,mem_mouse_key
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	store 1,mem_select_device_count
+
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_fast_conn_enable
+	jam 0,mem_mouse_pair_flag
+
+	call mouse_compare_addr_init
+	branch hid_device_param_common_init
+
+mouse_compare_addr_init:
+	arg 0,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,hid_device_compare_addr_store
+	arg 0xffffff,temp
+	branch hid_device_compare_addr_store
+//==========set report start=========/
+
+mouse_report_rate_parm_init:
+	call mouse_24g_report_rate_parm_init
+	fetch 3,mem_24g_short_sleep_set
+	store 3,mem_mouse_24g_short_sleep_set_init
+mouse_le_report_rate_parm_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+	setarg LE_INTERVAL_7_5MS
+mouse_le_interval_store:
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	rtn
+
+mouse_24g_report_rate_parm_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_500Hz,mouse_g24_interval_param_2ms
+	bbit1 MOUSE_ENABLE_24G_250Hz,mouse_g24_interval_param_4ms
+	branch mouse_g24_interval_param_8ms
+
+mouse_g24_interval_param_2ms:
+	fetch 1,mem_mouse_24g_fast_hop_count_2ms
+	store 1,mem_24g_fast_hop_count
+	fetch 4,mem_mouse_24g_tsniff_2ms
+	store 4,mem_mouse_24g_tsniff
+mouse_report_rate_set_500hz:
+	setarg 0x080606
+	store 3,mem_24g_interval
+	branch g24_transmit_by_interrupt_enable
+
+mouse_g24_interval_param_4ms:
+	fetch 3,mem_mouse_24g_short_sleep_set_4ms
+	store 3,mem_24g_short_sleep_set
+	fetch 3,mem_mouse_24g_long_sleep_set_4ms
+	store 3,mem_24g_long_sleep_set
+
+	fetch 4,mem_mouse_24g_tsniff_4ms
+	store 4,mem_mouse_24g_tsniff
+
+	setarg 0x100c0c
+	store 3,mem_24g_interval
+
+	jam 0x05,mem_24g_fast_hop_count
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 0x0f,mem_24g_fast_hop_count
+	rtn
+
+mouse_g24_interval_param_8ms:
+	fetch 3,mem_mouse_24g_short_sleep_set_8ms
+	store 3,mem_24g_short_sleep_set
+	fetch 3,mem_mouse_24g_long_sleep_set_8ms
+	store 3,mem_24g_long_sleep_set
+
+	fetch 4,mem_mouse_24g_tsniff_8ms
+	store 4,mem_mouse_24g_tsniff
+
+	setarg 0x1c1919
+	store 3,mem_24g_interval
+
+	jam 0x0b,mem_24g_fast_hop_count
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 0x1e,mem_24g_fast_hop_count
+	rtn
+
+//mouse_report_rate_set_500hz:
+//	setarg 0x080606
+//	store 3,mem_24g_interval
+//	rtn
+//mouse_report_rate_set_1000hz:
+//	setarg 0x040303
+//	store 3,mem_24g_interval
+//	rtn
+
+//==========set report end=========/
+
+
+//==========select sensor angle start=========/
+
+mouse_sensor_set_angle:
+	bpatch patch0e_6,mem_patch0e
+	call mouse_set_sensor_angle_float
+	fetch 1,mem_select_sensor_angle_gpio
+	rtneq GPIO_DISABLE
+
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pu_check
+
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	branch mouse_set_sensor_angle_gnd,true
+
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pd_check
+
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	branch mouse_set_sensor_angle_float,true
+mouse_set_sensor_angle_vin:
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pu_check
+	fetch 1,mem_sensor_angle_vin
+	branch mouse_store_sensor_angle
+
+mouse_set_sensor_angle_gnd:
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pd_check
+	fetch 1,mem_sensor_angle_gnd
+	branch mouse_store_sensor_angle
+
+mouse_set_sensor_angle_float:
+	fetch 1,mem_sensor_angle_default
+mouse_store_sensor_angle:
+	store 1,mem_config_sensor_angle
+	rtn
+
+//==========select sensor angle end=========/
+
+
+
+//**********************mouse parm init end********************//
+
+/***********************sensor parm init start*****************************/		//8650+S201 +ka8g2
+/*
+mouse_sensor_parm_init:
+	bpatch patch0e_7,mem_patch0e
+	call mouse_sensor_8650_parm_init
+	call mouse_sensor_ka8g2_parm_init
+	call mouse_sensor_3212_parm_init
+	call mouse_sensor_3205_parm_init
+	call mouse_sensor_3204_parm_init
+	call mouse_sensor_32xx_parm_init
+	call mouse_sensor_32xx_parm_init1
+	call mouse_sensor_p6520_parm_init
+	call mouse_sensor_ka8ul_parm_init
+	branch mem_sensor_8009_parm_init
+
+mouse_sensor_8650_parm_init:
+	setsect 0,0x35a09
+	setsect 1,0x2c9ff
+	setsect 2,0x3e40a
+	setsect 3,0x28346
+	store 9,mem_sensor_8650_init
+
+	setsect 0,0x2a141
+	setsect 1,0x3e9c4
+	setsect 2,0x00b6f
+	setsect 3,0x322d4
+	store 9,mem_sensor_8650_init+9
+
+	setsect 0,0x3afa5
+	setsect 1,0x2403f
+	setsect 2,0x3f000
+	setsect 3,0x3ff
+	store 8,mem_sensor_8650_init+18
+	rtn
+
+mouse_sensor_ka8g2_parm_init:
+	setsect 0,0x2a509
+	setsect 1,0x24d09
+	setsect 2,0x20041
+	setsect 3,0x1a41d
+	store 9,mem_sensor_ka8g2_init
+
+	setsect 0,0x07d04
+	setsect 1,0x01f88
+	setsect 2,0x00090
+	setsect 3,0x3fffc
+	store 9,mem_sensor_ka8g2_init+9
+	rtn
+
+mouse_sensor_3212_parm_init:
+	setsect 0,0x25a09
+	setsect 1,0x24d09
+	setsect 2,0x09041
+	setsect 3,0x3fc00
+	store 9,mem_sensor_3212_init
+mouse_sensor_parm_init_end1:
+	setarg 0xff
+	istore 1,contw
+	rtn
+
+mouse_sensor_3205_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x34403
+	setsect 2,0x3ded1
+	setsect 3,0x3fe01
+	store 9,mem_sensor_3205_init
+	branch mouse_sensor_parm_init_end1
+
+mouse_sensor_3204_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x37c03
+	setsect 2,0x3de31
+	setsect 3,0x3ff49
+	store 9,mem_sensor_3204_init
+	branch mouse_sensor_parm_init_end1
+
+mouse_sensor_32xx_parm_init:
+	setsect 0,0x0351b
+	setsect 1,0x26d0a
+	setsect 2,0x2a462
+	setsect 3,0xae58
+	store 9,mem_sensor_32xx_init
+
+	setsect 0,0x22c8c
+	setsect 1,0x10b5b
+	setsect 2,0x1f386
+	setsect 3,0x3ce5
+	store 9,mem_sensor_32xx_init+9
+
+	setsect 0,0x3323a
+	setsect 1,0x091ce
+	setsect 2,0x3f104
+	setsect 3,0x3ff
+	store 8,mem_sensor_32xx_init+18
+	rtn
+
+mouse_sensor_32xx_parm_init1:
+	setsect 0,0x12e54
+	setsect 1,0x07c95
+	setsect 2,0x23f46
+	setsect 3,0x1d5c1
+	store 9,mem_sensor_32xx_init_1
+
+	setsect 0,0x17652
+	setsect 1,0x35dd0
+	setsect 2,0x2378e
+	setsect 3,0x119e4
+	store 9,mem_sensor_32xx_init_1+9
+
+	setsect 0,0x0e57a
+	setsect 1,0x3921f
+	setsect 2,0x3f777
+	setsect 3,0x2c05
+	store 9,mem_sensor_32xx_init_1+18
+
+	setsect 0,0x07f00
+	setsect 1,0x00240
+	setsect 2,0x3fff0
+	setsect 3,0x3
+	store 7,mem_sensor_32xx_init_1+27
+	rtn
+
+
+mouse_sensor_p6520_parm_init:
+	setsect 0,0x1b905
+	setsect 1,0x2d682
+	setsect 2,0x0c720
+	setsect 3,0x2548
+	store 9,mem_sensor_p6520_init
+mouse_sensor_parm_init_end2:
+	setarg 0xffff00
+	istore 3,contw
+	rtn
+
+mouse_sensor_ka8ul_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x38403
+	setsect 2,0x1bc50
+	setsect 3,0x4269
+	store 9,mem_sensor_ka8ul_init
+
+	setsect 0,0x21138
+	setsect 1,0x20a10
+	setsect 2,0x23412
+	setsect 3,0xe524
+	store 9,mem_sensor_ka8ul_init+9
+
+	setsect 0,0x3b04a
+	setsect 1,0x32812
+	setsect 2,0x0d904
+	setsect 3,0x25c1
+	store 9,mem_sensor_ka8ul_init+18
+	branch mouse_sensor_parm_init_end2
+
+mem_sensor_8009_parm_init:
+	setsect 0,0x25a09
+	setsect 1,0x24081
+	setsect 2,0x0d690
+	setsect 3,0x3920
+	store 9,mem_sensor_8009_init
+
+	setsect 0,0x20f9f
+	setsect 1,0x0026e
+	setsect 2,0x3fff0
+	setsect 3,0x3
+	store 7,mem_sensor_8009_init+9
+	rtn
+*/
+/***********************le device info modify*****************************/
+mouse_le_name_modify:
+	bpatch patch0f_0,mem_patch0f
+	rtn wake
+	fetch 1,mem_le_name_patch_len
+	rtn blank
+	add pdata,1,loopcnt
+	arg mem_le_name_patch_len,contr
+	arg mem_le_name_len,contw
+	call memcpy
+	branch le_modified_name_adv
+
+/***********************sensor parm init end*****************************/
+
+mouse_start_work:
+	bpatch patch0f_1,mem_patch0f
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING, mouse_24g_first_start_auto_pair_mode
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_start_mode
+mouse_le_fast_conn_judge:
+	call mouse_device_le_reconn_led_config
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_le_device1_judge
+	beq MODE_BT_DEVICE2,mouse_le_device2_judge
+	rtn
+mouse_le_device1_judge:
+	fetch 6,mem_device1_addr
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+
+mouse_le_device2_judge:
+	fetch 6,mem_device2_addr
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+mouse_start_reconnect_device:
+	bpatch patch0f_2,mem_patch0f
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+mouse_start_reconnect:
+	fetch 1,mem_xrecord_mode
+	beq REC_4_MODE,mouse4_0_check_reconn_target
+	branch mouse_bluetooth_fast_conn_init
+
+mouse_wakeup_from_power_check:
+	bpatch patch0f_3,mem_patch0f
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_poweron
+	fetch 1,core_lpm_isogate
+	bbit1 cold_wake,mouse_wakeup_from_poweron
+	enable user	//wake from hibernate
+mouse_wakeup_from_poweron:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	rtn
+
+mouse4_0_check_reconn_target:
+	jam 1,mem_device_le_reconnect_flag
+	fetcht 1,mem_device_fast_direct_timeout
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,mouse4_0_check_reconn_target_next
+	fetcht 1,mem_device_direct_timeout
+mouse4_0_check_reconn_target_next:
+	storet 1,mem_device_direct_timer
+	call app_lpm_mult_disable
+	fetch 3,mem_le_adv_direct_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+	istore 1,contr
+	arg mem_le_scan_data,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+
+/**********************system clk**********************************/
+mouse_lpm_check_wake_lock:
+	bmark1 mark_24g,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	branch app_get_lpm_wake_lock,blank
+	fetch 1,mem_le_conn_param_reject
+	beq LE_LPM_DISABLE,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_wheel_trigger
+	nbranch app_get_lpm_wake_lock,blank
+	branch app_put_lpm_wake_lock
+
+/**********************system clk end*****************************/
+
+mouse_app_enter_hibernate:
+	bpatch patch0f_4,mem_patch0f
+	setarg PAN_REG_CONFIG
+	call twspi_read
+	bbit1 3,mouse_app_enter_hibernate_next
+	call mouse_sensor_reset
+	call mouse_sensor_powerdown
+mouse_app_enter_hibernate_next:
+	call mouse_setgpio_hibernate
+	branch app_enter_hibernate
+
+mouse_before_hibernate:
+	bpatch patch0f_5,mem_patch0f
+	call disable_authrom
+//	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_flash_power_down
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+
+mouse_setgpio_hibernate:
+	bpatch patch0f_6,mem_patch0f
+	call mouse_set_sdio_high
+	call clear_wake
+	call mouse_before_hibernate_wheel_gpio_set
+	fetch 1,mem_mouse_sensor_sdio_gpio
+	call mouse_gpio_config_output_high
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_set_pupd_by_input
+	call mouse_lpm_before_common
+//	call mouse_gpio_pd_idle
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	call mouse_logo_led_off
+	call mouse_device_multi_led_all_off
+	call mouse_adc_gpio_set_before_hibernate
+	branch mouse_wheel_gpio_set_before_hibernate
+
+mouse_wheel_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_clr_wakeup:
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_a_data_gpio
+	call device_gpio_config_input_pd
+	fetcht 1,mem_whee_b_data_gpio
+	branch device_gpio_config_input_pd
+
+mouse_adc_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_analog
+
+
+//set all unused gpio to pull down mode to save power
+mouse_gpio_pd_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+mouse_gpio_pd_idle_loop:
+	ifetch 1,contr
+	nbranch mouse_gpio_pd_idle_configured,blank
+	setarg gpcfg_pulldown
+	add contr,-1,contw
+	istore 1,contw
+mouse_gpio_pd_idle_configured:
+	loop mouse_gpio_pd_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+mouse_gpio_pd_idle_ext:
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch mouse_gpio_pd_idle_loop
+
+mouse_process_lpm_before:
+	rtnmark1 mark_24g
+	call mouse_lpm_before_common
+	fetch 1,mem_lpm_current_mult
+	nrtn blank					// 7.5ms, no gpio wakeup
+	branch gpio_clr_wake
+
+mouse_lpm_before_common:
+	bpatch patch0f_7,mem_patch0f
+	jam 0,mem_qdec_set_flag
+	call clear_wake
+	fetcht 1,mem_matrix_public_gpio		// enable b4/b5/dpi wakeup
+	call gpio_out_active
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_clr_wake
+
+	call mouse_wheel_check
+	fetch 1,mem_mouse_sensor_sclk_gpio		//set sdio high
+ 	call mouse_gpio_config_output_high
+	call twspi_disable
+
+	fetcht 1,mem_lbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_rbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_mbutton_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_fw_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_customer_key_gpio
+	call gpio_set_wake
+
+	call mouse_gpio_pd_idle
+
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_set_wake
+
+
+//short mult: no key
+mouse_set_mult:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	copy rega,pdata
+	nbranch le_set_config_short_mult,blank
+	branch le_clr_config_short_mult
+
+
+/****************************adc**************************************/
+mouse_adc_gpio_set:
+	bpatch patch10_0,mem_patch10
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_high_impedance
+
+mouse_adc_read:
+	bpatch patch10_1,mem_patch10
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call mouse_adc_gpio_set
+mouse_adc_read_start:
+	call enable_adc
+	call vdd_calculate_by_mode
+	store 2,mem_device_vdd_now_vol
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO, mouse_adc_data_process
+	fetcht 2,mem_device_vdd_now_vol	// BAT= 1.5V, R = 200k, a = a*1.8
+	mul32 temp,8,pdata
+	div pdata,10
+	call get_div_result
+	iadd temp,pdata
+	store 2,mem_device_vdd_now_vol
+mouse_adc_data_process:
+	arg mem_device_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,mouse_app_enter_hibernate
+	bbit0 0,mouse_adc_no_low_voltage
+	jam 1,mem_device_adc_last_low_voltage_flag
+	branch mouse_adc_low_voltage
+
+mouse_adc_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_adc_no_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	call mouse_disable_function_flag
+	jam 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_device_adc_last_low_voltage_flag
+	branch mouse_low_voltage_led_off_judge
+
+
+mouse_adc_bat_percent_lowpower_out:
+	bpatch patch10_2,mem_patch10
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+mouse_adc_bat_percent_lowpower_out_battery:
+	call adc_clear_no_power_flag
+	call adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall adc_set_low_power_flag,positive
+mouse_adc_bat_level_set:
+	fetch 2,mem_pdatatemp+6		//now voltage
+	fetcht 2,mem_pdatatemp		//full voltage
+	isub temp,null
+	branch mouse_adc_bat_level_100_percent,positive		// now >= full
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,pdata
+	nbranch mouse_adc_bat_level_0_percent,positive		// now < shutdown
+	branch mouse_adc_bat_level_0_percent,blank			// now = shutdown
+	mul32 pdata,100,rega								// (now - shutdown)*100 /(full - shutdown)
+	fetch 2,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	isub temp,temp
+	copy rega,pdata
+	idiv temp
+	call get_div_result
+	store 1,mem_le_battery_level_percentage
+	rtn
+
+mouse_adc_bat_level_100_percent:
+	jam 100,mem_le_battery_level_percentage
+	rtn
+mouse_adc_bat_level_0_percent:
+	jam 0,mem_le_battery_level_percentage
+	rtn
+
+/****************************adc end********************************/
+
+
+/****************************gpio******************************************/
+mouse_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+//	call usb_offline_check_init
+	fetcht 1,mem_lbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_rbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_mbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_bk_button_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_fw_button_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_dpi_button_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_matrix_public_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_customer_key_gpio
+	call device_gpio_config_input_pu
+
+	call mouse_wheel_gpio_init
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_whee_tb_data_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_sensor_motion_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_device_switch_gpio
+	branch device_gpio_config_input_pu
+
+mouse_gpio_set_pupd_by_input:
+	and temp,0x7f,queue
+	fetch 4,core_gpio_in
+	qisolate1 pdata
+	branch device_gpio_config_input_pu,true
+device_gpio_config_input_pd:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+device_gpio_config_input_pu:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	set0 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+mouse_gpio_set_analog:
+	fetch 3,mem_device_set_analog_bit_set
+	store 3,mem_pdatatemp
+	arg 24,loopcnt
+	arg 0,temp
+mouse_gpio_set_analog_bit_loop:
+	fetch 3,mem_pdatatemp
+	isolate1 0,pdata
+	call gpio_set_analog,true
+//	call gpio_set_high_impedance,true
+	fetch 3,mem_pdatatemp
+	lshift pdata,pdata
+	store 3,mem_pdatatemp
+	increase 1,temp
+	loop mouse_gpio_set_analog_bit_loop
+	rtn
+
+/****************************gpio end*******************************/
+
+/*******************spi*****************************/
+mouse_sensor_spi_init:
+	call mouse_spid_init_pin
+	jam 0x73,mem_spi_init_clk
+//	jam 0x1e,mem_spi_init_delay_time
+	call mouse_spi_init
+	branch twspi_enable
+
+mouse_spi_write_flash_cb:
+mouse_spi_init:
+	branch spid_init
+
+mouse_spid_init_pin:
+	fetch 1,mem_mouse_sensor_sclk_gpio
+ 	arg gpcfg_spid_sck,temp
+ 	call gpio_config_function_int
+ 	fetch 1,mem_mouse_sensor_sdio_gpio
+ 	arg gpcfg_spid_sdio,temp
+ 	branch gpio_config_function_int
+
+
+/*******************spi end**************************/
+
+mouse_motion:
+	bpatch patch10_3,mem_patch10
+	call hid_device_copy_key_data
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_check_sensor_data
+	setarg 0x0089
+	call twspi_write
+	call mouse_setting_sensor_type
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call mouse_key
+	fetch 1,mem_mouse_key
+	and_into 0x1f,pdata
+	store 1,mem_mouse_key
+	nbranch mouse_drawing_optima_init,user
+	call mouse_drawing_optima
+	branch mouse_no_data_timer_init
+
+
+/*******************wheel*************************/
+mouse_zwheel:
+	fetch 1,mem_mouse_z_data
+	rtn blank
+	store 1,mem_mouse_z
+	jam 0,mem_mouse_z_data
+	branch enable_user
+
+mouse_t_zwheel:
+	fetch 1,mem_mouse_tz_data
+	rtn blank
+	store 1,mem_mouse_tz
+	jam 0,mem_mouse_tz_data
+	branch enable_user
+
+mouse_wheel_check:
+	bpatch patch10_4,mem_patch10
+	call mouse_wheel_gpio_init
+	call mouse_t_wheel_scan
+	call mouse_wheel_scan
+	fetch 1,mem_wheel_tb_new_pinlevel
+	fetcht 1,mem_wheel_tb_old_pinlevel
+	store 1,mem_wheel_tb_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	fetch 1,mem_mwheel_b_new_pinlevel
+	fetcht 1,mem_mwheel_b_old_pinlevel
+	store 1,mem_mwheel_b_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	rtn
+mouse_t_wheel_scan:
+	fetch 1,mem_whee_ta_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_wheel_tb_new_pinlevel
+	beq 0x01,mouse_t_wheel_scan_judge1
+	beq 0x02,mouse_t_wheel_scan_judge2
+	fetch 1,mem_wheel_tog
+	bbit1 7,mouse_t_wheel_scan_judge3
+	rtn
+
+mouse_t_wheel_scan_judge1:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge11
+	beq 3,mouse_t_wheel_scan_judge12
+	rtn
+mouse_t_wheel_scan_judge2:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge21
+	beq 3,mouse_t_wheel_scan_judge22
+	rtn
+mouse_t_wheel_scan_judge11:
+	jam 0x82,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge12:
+	jam 0x81,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge21:
+	jam 0x80,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge22:
+	jam 0x83,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge3:
+	fetch 1,mem_wheel_tog
+	set0 7,pdata
+	store 1,mem_wheel_tog
+	beq 0,mouse_t_wheel_scan_judge30
+	beq 1,mouse_t_wheel_scan_judge31
+	beq 2,mouse_t_wheel_scan_judge32
+	beq 3,mouse_t_wheel_scan_judge33
+	rtn
+mouse_t_wheel_scan_judge30:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge31:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge32:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_back
+	rtn
+mouse_t_wheel_scan_judge33:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_back
+	rtn
+mouse_wheel_t_forward:
+	fetch 1,mem_mouse_tz_data
+	increase 1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+mouse_wheel_t_back:
+	fetch 1,mem_mouse_tz_data
+	increase -1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+
+
+mouse_wheel_scan:
+	fetch 1,mem_whee_a_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_mwheel_b_new_pinlevel
+	beq 0x01,mouse_wheel_scan_judge1
+	beq 0x02,mouse_wheel_scan_judge2
+	fetch 1,mem_mwheel_tog
+	bbit1 7,mouse_wheel_scan_judge3
+	rtn
+
+mouse_wheel_scan_judge1:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge11
+	beq 3,mouse_wheel_scan_judge12
+	rtn
+mouse_wheel_scan_judge2:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge21
+	beq 3,mouse_wheel_scan_judge22
+	rtn
+mouse_wheel_scan_judge11:
+	jam 0x82,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge12:
+	jam 0x81,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge21:
+	jam 0x80,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge22:
+	jam 0x83,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge3:
+	fetch 1,mem_mwheel_tog
+	set0 7,pdata
+	store 1,mem_mwheel_tog
+	beq 0,mouse_wheel_scan_judge30
+	beq 1,mouse_wheel_scan_judge31
+	beq 2,mouse_wheel_scan_judge32
+	beq 3,mouse_wheel_scan_judge33
+	rtn
+mouse_wheel_scan_judge30:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge31:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge32:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_back
+	rtn
+mouse_wheel_scan_judge33:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_back
+	rtn
+mouse_wheel_forward:
+	fetch 1,mem_mouse_z_data
+	increase 1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+mouse_wheel_back:
+	fetch 1,mem_mouse_z_data
+	increase -1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+
+/*
+mouse_wheel_gpio_set_wake:
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	branch gpio_set_wake_by_current_state
+*/
+mouse_before_hibernate_wheel_gpio_set:
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_b_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_ta_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_tb_data_gpio
+	branch mouse_gpio_set_pupd_by_input
+
+mouse_wheel_trigger:
+	fetch 2,mem_mouse_z
+	rtn blank
+	jam 1,mem_mouse_wheel_trigger
+	jam 10,mem_mouse_wheel_trigger_timer
+	rtn
+
+mouse_wheel_trigger_timer:
+	arg mem_mouse_wheel_trigger_timer,regc
+	arg mouse_wheel_trigger_disable,regb
+	branch timer_single_step
+mouse_wheel_trigger_disable:
+	jam 0,mem_mouse_wheel_trigger
+	rtn
+
+
+/*
+mouse_set_qdecoder_x:
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call device_gpio_config_input_pu
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call gpio_get_bit
+	rtn true
+	fetch 1,core_qdec_cntx
+	set1 4,pdata
+	store 1,core_qdec_cntx
+	rtn
+*/
+
+/*******************wheel end**********************/
+
+
+/********************dpi******************************/
+mouse_dpi_check:
+	fetch 1,mem_dpi_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_DPI_KEY,mem_mouse_key_temp
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_dpi_key_check
+	store 1,mem_mouse_dpikey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_dpi_check_end
+	call mouse_matrix_public_gpio_reset
+mouse_dpi_check_exit:
+	copy rega,pdata
+	bbit1 MOUSE_DPI_KEY,mouse_dpi_down
+	branch mouse_dpi_up
+
+mouse_dpi_key_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
+	fetch 1,mem_mouse_dpikey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_dpi_3io6key_check
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_dpi_check_end,blank
+mouse_dpi_key_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_dpi_key_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_dpi_button_gpio
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_dpi_3io6key_check:
+	fetch 1,mem_dpi_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_dpi_button_gpio
+	branch mouse_3io6key_check
+
+
+mouse_3io6key_dpi_check_end:
+	fetcht 1,mem_dpi_button_gpio
+	call device_gpio_config_input_pu
+	branch mouse_dpi_check_exit
+
+mouse_dpi_check_end:
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	jam 0,mem_mouse_dpikey_press_status
+	rtn
+
+mouse_dpi_key_connect_gnd:
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_dpi_down:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_mouse_dpi_button_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+	branch mouse_dpi_process
+
+mouse_dpi_up:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_dpi_up_next
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_dpi_up_next
+	rtn
+mouse_dpi_up_next:
+	fetch 1,mem_mouse_dpi_long_press_flag
+	nbranch mouse_dpi_up_after_long_press,blank
+	fetch 1,mem_select_device_count
+	ncall mouse_dpi_process,blank
+mouse_dpi_up_after_long_press:
+	jam 0,mem_mouse_dpi_long_press_flag
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_select_device_count
+	store 1,mem_bt_discovery_count
+	rtn
+
+mouse_dpi_process:
+	bpatch patch10_5,mem_patch10
+	call mouse_dpi_ghost_check
+	rtn user
+mouse_dpi_process_skip_ghost:
+	fetch 1,mem_mouse_dpi
+
+	copy pdata,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DOUBLE_DPI_KEY,mouse_double_dpi_check
+	copy temp,pdata
+
+	increase 1,pdata
+	and pdata,0x03,pdata
+mouse_dpi_level_store:
+	store 1,mem_mouse_dpi
+	call mouse_setting_dpi
+	branch mouse_store_dpi_info_check
+
+
+/***************************another dpi key dpi**********************/
+
+mouse_double_dpi_check:
+	fetch 1,mem_dpi_another_button_down_enable
+	nbranch mouse_another_dpi_button_down,blank
+mouse_dpi_increase:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_increase_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL2
+mouse_dpi_increase_level:
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_2 	//1200
+	rtn
+
+mouse_dpi_level_1:		//800
+	setarg 2
+	branch mouse_dpi_level_store
+mouse_dpi_level_2:		//1200
+	setarg 0
+	branch mouse_dpi_level_store
+mouse_dpi_level_3:		//1600
+	setarg 1
+	branch mouse_dpi_level_store
+mouse_dpi_level_4:		//1000
+	setarg 3
+	branch mouse_dpi_level_store
+
+mouse_dpi_increase_level_4:
+	copy temp,pdata			//0->1,2->3,3->0
+	rtneq MOUSE_DPI_LEVEL2
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2
+	rtn
+mouse_dpi_decrease_level_4:
+	copy temp,pdata			//0->3,1->0,3->2
+	rtneq MOUSE_DPI_LEVEL3
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_1
+	rtn
+
+mouse_another_dpi_button_down:
+mouse_dpi_decrease:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_decrease_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL3
+mouse_dpi_decrease_level:
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_1
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
+	rtn
+
+
+/*************************another dpi key dpi end********************/
+
+mouse_dpi_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+	branch mouse_ghost_key_value_check
+
+mouse_dpi_key_check_long_press:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_select_device_by_dpi_button
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_discovery_by_dpi_button
+	rtn
+
+mouse_select_device_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN
+	arg mem_select_device_count,regc
+	arg mouse_ready_reconnection_by_dpi_button,regb
+	branch timer_single_step
+
+mouse_ready_reconnection_by_dpi_button:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_ready_reconnection_by_button
+
+mouse_discovery_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_dpi_button_bt_discovery,regb
+	branch timer_single_step
+
+mouse_long_dpi_button_bt_discovery:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_long_button_bt_discovery
+
+mouse_setting_dpi_4_level:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_LEVEL_4
+	fetch 1,mem_mouse_dpi
+	rtnne MOUSE_DPI_LEVEL4
+	jam MOUSE_DPI_LEVEL1,mem_mouse_dpi
+	rtn
+
+mouse_setting_dpi:
+	bpatch patch10_6,mem_patch10
+	call mouse_setting_dpi_4_level
+	call mouse_dpi_led_blink_delay
+mouse_setting_sensor_type:
+	bpatch patch10_7,mem_patch10
+	fetch 1,mem_config_sensor_type
+	beq S201X,mouse_seting_S201_dpi
+	beq P3212,mouse_seting_3212_dpi
+	beq KA8G2,mouse_seting_ka8g2_dpi
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_cpi0		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi1		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_cpi2		//800
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi3		//1000
+mouse_set_cpi1:	//320x+8009
+	fetcht 1,mem_320x_dpi_1
+	branch mouse_dpi_store
+mouse_set_cpi0:
+	fetcht 1,mem_320x_dpi_0
+	branch mouse_dpi_store
+mouse_set_cpi2:
+	fetcht 1,mem_320x_dpi_2
+	branch mouse_dpi_store
+mouse_set_cpi3:
+	fetcht 1,mem_320x_dpi_3
+mouse_dpi_store:
+	fetch 1,mem_config_sensor_type
+	beq P3065_XY,mouse_3065xy_set_dpi
+	beq MX8650,mouse_3065xy_set_dpi
+	beq KA8,mouse_ka8_set_dpi
+	beq P6520,mouse_ka8_set_dpi
+	beq P8009,mouse_3065xy_set_dpi
+mouse_dpi_write:		// 3205  1  2  3  4
+	storet 1,mem_mouse_cpi_count
+	setarg MOUSE_DPI_ADDRESS
+	call twspi_read
+	and pdata,0xf8,temp
+	fetch 1,mem_mouse_cpi_count
+	iadd temp,pdata
+	lshift8 pdata,pdata
+	add pdata,MOUSE_DPI_ADDRESS,pdata
+	branch twspi_write
+
+mouse_3065xy_set_dpi:	// 0 1 2 3
+	increase -1,temp
+	branch mouse_dpi_write
+
+mouse_ka8_set_dpi:	// 3 4 5 6
+	increase 2,temp
+	branch mouse_dpi_write
+
+mouse_seting_S201_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_S201_dpi_0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_S201_dpi_2	//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_S201_dpi_3	//3200
+	beq MOUSE_DPI_LEVEL4,mouse_set_S201_dpi_4	//800
+	rtn
+mouse_set_S201_dpi_0:	//1200
+	fetch 1,mem_sensor_s201_dpi_0
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_1:	//1600
+	fetch 1,mem_sensor_s201_dpi_1
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_2:	//2400
+	fetch 1,mem_sensor_s201_dpi_2
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_3:	//3200
+	fetch 1,mem_sensor_s201_dpi_3
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_4:	//800
+	fetch 1,mem_sensor_s201_dpi_4
+mouse_dpi_s201_store:
+	copy pdata,rega
+	setarg 0xc309
+	call twspi_write
+	copy rega,pdata
+	lshift8 pdata,pdata
+	add pdata,0x23,pdata
+	call twspi_write
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	branch twspi_write
+
+mouse_seting_3212_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi1	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi2	//2400
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi3	//800
+mouse_set_p3212_cpi1:
+	fetch 1,mem_3212_dpi_1
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi0:
+	fetch 1,mem_3212_dpi_0
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi2:
+	fetch 1,mem_3212_dpi_2
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi3:
+	fetch 1,mem_3212_dpi_3
+mouse_p3212_dpi:
+	store 1,mem_mouse_cpi_count
+	lshift8 pdata,pdata
+	copy pdata,rega
+	add pdata,MOUSE_P3212_DPI_XADDRESS,pdata
+  	call twspi_write
+ 	copy rega,pdata
+  	add pdata,MOUSE_P3212_DPI_YADDRESS,pdata
+	branch twspi_write
+
+mouse_seting_ka8g2_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_pka8g2_cpi0		//1600
+	beq MOUSE_DPI_LEVEL2,mouse_set_pka8g2_cpi1		//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_pka8g2_cpi2		//3200
+	beq MOUSE_DPI_LEVEL4,mouse_set_pka8g2_cpi3		//800
+mouse_set_pka8g2_cpi1:
+	fetch 1,mem_ka8g2_dpi_1
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi0:
+	fetch 1,mem_ka8g2_dpi_0
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi2:
+	fetch 1,mem_ka8g2_dpi_2
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi3:
+	fetch 1,mem_ka8g2_dpi_3
+	branch mouse_p3212_dpi
+
+
+/********************dpi end***************************/
+
+
+/***********************key******************************/
+
+mouse_key:
+	call mouse_check_firekey_gpio
+	fetch 1,mem_fire_key_flag
+	nbranch fire_key_press,blank
+	fetch 1,mem_fire_key_status
+	nbranch fire_key_process,blank
+
+	call mouse_check_key_gpio
+	call mouse_ghost_key_check
+	call mouse_set_mult
+	call mouse_24g_key
+	copy rega,pdata
+	fetcht 1,mem_mouse_key_last
+	store 1,mem_mouse_key_last
+	store 1,mem_mouse_key
+	ixor temp,pdata
+	sub pdata,0,null
+	rtn zero
+	branch enable_user
+
+mouse_24g_key:
+	rtnmark0 mark_24g
+	copy rega,pdata
+	rtn blank
+	store 1,mem_mouse_key
+	branch enable_user
+
+
+/************************************ghost key******************************/
+
+mouse_ghost_key_check:
+	jam 0,mem_mouse_matrix_key_cow_count
+	jam 0,mem_mouse_matrix_key_row_count
+	jam 0,mem_mouse_ghost_flag
+	copy pdata,regb
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_matrix_ghost_key_L_BK,zero
+	fetch 1,mem_fw_button_gpio
+	isub temp,null
+	branch mouse_matrix_ghost_key_L_FW,zero
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_MBK_RFW,zero
+	branch mouse_ghost_key_MFW_RBK
+
+mouse_matrix_ghost_key_L_BK:
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_fw_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_LBK_MFW,zero
+	branch mouse_ghost_key_LBK_RFW
+
+mouse_matrix_ghost_key_L_FW:
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_LFW_MBK,zero
+	branch mouse_ghost_key_LFW_RBK
+
+mouse_ghost_key_LBK_MFW:
+	call mouse_ghost_key_check_L_BK
+	call mouse_ghost_key_check_M_FW
+	branch mouse_ghost_key_check_next
+
+mouse_ghost_key_LBK_RFW:
+	call mouse_ghost_key_check_L_BK
+	branch mouse_ghost_key_RFW
+
+mouse_ghost_key_LFW_MBK:
+	call mouse_ghost_key_check_L_FW
+	call mouse_ghost_key_check_M_BK
+	branch mouse_ghost_key_check_next
+
+mouse_ghost_key_LFW_RBK:
+	call mouse_ghost_key_check_L_FW
+	branch mouse_ghost_key_RBK
+
+mouse_ghost_key_MBK_RFW:
+	call mouse_ghost_key_check_M_BK
+mouse_ghost_key_RFW:
+	call mouse_ghost_key_check_R_FW
+	branch mouse_ghost_key_check_next
+
+mouse_ghost_key_MFW_RBK:
+	call mouse_ghost_key_check_M_FW
+mouse_ghost_key_RBK:
+	call mouse_ghost_key_check_R_BK
+mouse_ghost_key_check_next:
+	call mouse_ghost_key_check_BK_FW
+	call mouse_ghost_key_check_LMR
+	fetch 1,mem_mouse_matrix_key_row_count
+	rtn blank
+	fetch 1,mem_mouse_matrix_key_cow_count
+	rtn blank
+	jam 1,mem_mouse_ghost_flag
+	fetch 1,mem_mouse_key_last		// matrix have ghost key
+	copy pdata,rega
+	rtn
+
+mouse_ghost_key_check_L_BK:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_L_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_BK:
+	and regb,MOUSE_M_BK_BUTTON,pdata
+	beq MOUSE_M_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_R_BK:
+	and regb,MOUSE_R_BK_BUTTON,pdata
+	beq MOUSE_R_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_L_FW:
+	and regb,MOUSE_L_FW_BUTTON,pdata
+	beq MOUSE_L_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_FW:
+	and regb,MOUSE_M_FW_BUTTON,pdata
+	beq MOUSE_M_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_R_FW:
+	and regb,MOUSE_R_FW_BUTTON,pdata
+	beq MOUSE_R_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+
+mouse_ghost_key_check_BK_FW:
+	and regb,MOUSE_BK_FW_BUTTON,pdata
+	beq MOUSE_BK_FW_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn
+
+mouse_ghost_key_check_LMR:
+	and temp,MOUSE_LMR_BUTTON,pdata	// key LMR press
+	beq MOUSE_LR_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_RM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LMR_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn
+
+
+mouse_matrix_row_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_row_count
+	rtn
+
+mouse_matrix_cow_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_cow_count
+	rtn
+
+/************************************ghost key end******************************/
+
+
+
+/************************************double dpi key******************************/
+
+mouse_dpi_another_gpio_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	bbit0 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND,mouse_dpi_another_gpio_connect_vin_check
+mouse_dpi_another_gpio_connect_gnd_check:
+	fetch 1,mem_dpi_another_button_gpio
+	call mouse_gpio_config_output_high
+	call mouse_dpi_another_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch device_gpio_config_input_pu
+
+mouse_dpi_another_gpio_connect_vin_check:
+	fetch 1,mem_dpi_another_button_gpio
+	call mouse_gpio_config_output_low
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status
+	call mouse_check_key_connect_vin_new
+	call mouse_dpi_another_state_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch device_gpio_config_input_pu
+
+mouse_dpi_another_down_new:
+	call device_gpio_config_input_pu
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	branch mouse_dpi_process
+
+mouse_dpi_another_check:
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status
+	call mouse_check_key_connect_gnd_new
+mouse_dpi_another_state_check:
+	store 1,mem_dpi_another_press_status
+	fetch 1,mem_dpi_another_button_down_enable
+	branch mouse_dpi_another_up,blank
+mouse_dpi_another_down:
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	branch mouse_dpi_process
+
+mouse_dpi_another_up:
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_dpi_another_button_state
+	rtn
+
+mouse_check_key_connect_gnd_new:
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_another_dpi_key_release
+	rtn
+
+mouse_check_key_connect_vin_new:
+	lshift pdata,pdata
+	copy pdata,regb
+	call device_gpio_config_input_pd
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_another_dpi_key_release
+	rtn
+
+mouse_another_dpi_key_press:
+	jam 1,mem_dpi_another_button_down_enable
+	rtn
+mouse_another_dpi_key_release:
+	jam 0,mem_dpi_another_button_down_enable
+	rtn
+
+/************************************double dpi key end******************************/
+
+
+
+/************************************fire key************************************/
+
+mouse_check_firekey_gpio:
+	arg 0,regb
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND,mouse_check_firekey_connect_vin
+mouse_check_firekey_connect_gnd:
+	fetcht 1,mem_firebutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	setflag true,0,regb
+mouse_firekey_state_store:
+	copy regb,pdata
+	store 1,mem_fire_key_flag
+	rtn
+
+mouse_check_firekey_connect_vin:
+	fetcht 1,mem_firebutton_gpio
+	call device_gpio_config_input_pd
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	nsetflag true,0,regb
+	branch mouse_firekey_state_store
+
+fire_key_process:
+	beq 4,fire_key_process_end
+fire_key_press:
+	call firekey_clkn_bt_timer_check
+	fetch 4,mem_fire_key_delay
+	arg 0xa0,temp
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_fire_key_delay
+	fetch 1,mem_fire_key_status
+	beq 0,fire_key_process_start
+	beq 1,fire_key_process_release1
+	beq 2,fire_key_process_start2
+	beq 3,fire_key_process_release2
+	rtn
+
+fire_key_process_start:
+	jam 1,mem_fire_key_status
+fire_key_down:
+	jam 1,mem_mouse_key
+	branch enable_user
+
+fire_key_process_release1:
+	jam 2,mem_fire_key_status
+fire_key_release:
+	jam 0,mem_mouse_key
+	branch enable_user
+
+fire_key_process_start2:
+	jam 3,mem_fire_key_status
+	branch fire_key_down
+
+fire_key_process_release2:
+	jam 0,mem_fire_key_status
+	branch fire_key_release
+
+fire_key_process_end:
+	jam 0,mem_fire_key_status
+	jam 0,mem_mouse_key
+	rtn
+
+firekey_clkn_bt_timer_check:
+	fetcht 4,mem_fire_key_delay
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall firekey_clkn_bt_timer_timeout,positive
+	rtn
+firekey_clkn_bt_timer_timeout:
+	setarg 0
+	store 4,mem_fire_key_delay
+	rtn
+
+/*********************************fire key end*****************************/
+
+
+
+/*********************************matrix key*****************************/
+
+mouse_key_check_once:
+	call mouse_check_key_gpio_once
+	call mouse_check_key_gpio
+	setarg 0x00
+	store 3,mem_mouse_lkey_press_status
+	rtn
+
+mouse_check_key_gpio:
+	bpatch patch11_0,mem_patch11
+	fetch 1,mem_24g_shutdown_flag
+	ncall mouse_check_key_gpio_once,blank
+	arg 0,rega
+	call mouse_check_lkey_gpio
+	call mouse_check_rkey_gpio
+	call mouse_check_mkey_gpio
+	call mouse_check_bkkey_gpio
+	call mouse_check_fwkey_gpio
+	call mouse_check_firekey_gpio
+	call mouse_check_customerkey_gpio
+	copy rega,pdata
+	rtn
+
+mouse_check_key_gpio_once:
+	setarg 0x030303
+	store 3,mem_mouse_lkey_press_status
+	rtn
+
+mouse_check_lkey_gpio:
+	fetch 1,mem_lbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_L_KEY,mem_mouse_key_temp
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_mouse_lkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_lkey_press_status
+	fetcht 1,mem_lbutton_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_rkey_gpio:
+	fetch 1,mem_rbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_R_KEY,mem_mouse_key_temp
+	fetcht 1,mem_rbutton_gpio
+	fetch 1,mem_mouse_rkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_rkey_press_status
+	fetcht 1,mem_rbutton_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_mkey_gpio:
+	fetch 1,mem_mbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_M_KEY,mem_mouse_key_temp
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_mouse_mkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_mkey_press_status
+	fetcht 1,mem_mbutton_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_bkkey_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_BK_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_bkkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_bk_check
+	call gpio_get_bit
+	branch mouse_check_bk_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_bkkey_gpio_end:
+	store 1,mem_mouse_bkkey_press_status
+	branch mouse_matrix_public_gpio_reset
+
+mouse_check_bk_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_bkkey_gpio_end
+
+mouse_3io6key_bk_check:
+	fetch 1,mem_bk_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_bk_button_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_bkkey_press_status
+	fetcht 1,mem_bk_button_gpio
+	branch device_gpio_config_input_pu
+
+
+mouse_check_fwkey_gpio:
+	fetch 1,mem_fw_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_FW_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_fwkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_fw_check
+	call gpio_get_bit
+	branch mouse_check_fw_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_fwkey_gpio_end:
+	store 1,mem_mouse_fwkey_press_status
+mouse_matrix_public_gpio_reset:
+	fetcht 1,mem_matrix_public_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_fw_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_fwkey_gpio_end
+
+mouse_3io6key_fw_check:
+	fetch 1,mem_fw_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_fw_button_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_fwkey_press_status
+	fetcht 1,mem_fw_button_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_customerkey_gpio:
+	jam 0,mem_customer_key
+	fetch 1,mem_customer_key_gpio
+	rtneq GPIO_DISABLE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	bbit1 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN,mouse_customer_key_connect_vin
+mouse_customer_key_connect_gnd:
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_customerkey_press_status
+mouse_check_customerkey_state:
+	copy rega,pdata
+	bbit1 MOUSE_CUSTOMER_KEY,mouse_customerkey_press
+	call mouse_customerkey_release
+mouse_check_customerkey_gpio_exit:
+	fetch 1,mem_customer_data_trigger
+	store 1,mem_customer_data_trigger_last
+	rtn
+
+mouse_customer_key_connect_vin:
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_customerkey_press_status
+	copy pdata,regc
+	fetch 1,mem_customer_key_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_customer_key_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_customerkey_press_status
+	call mouse_check_customerkey_state
+	fetcht 1,mem_customer_key_gpio
+	branch device_gpio_config_input_pu
+
+mouse_customerkey_press:
+	jam 1,mem_customer_data_trigger
+	call mouse_customer_key_need_send
+	branch mouse_check_customerkey_gpio_exit
+
+mouse_customerkey_release:
+	jam 0,mem_customer_data_trigger
+	fetch 1,mem_customer_data_trigger_last
+	rtn blank
+mouse_customer_key_need_send:
+	jam 1,mem_customer_key
+	rtn
+
+/*******************************matrix key end***************************/
+
+//mouse_check_matrix_button_connect_gnd:
+//	call gpio_get_bit
+//	fetcht 1,mem_mouse_key_temp
+//	copy temp,queue
+//	branch  mouse_key_press,true
+mouse_key_release:
+	qset0 rega
+	rtn
+
+mouse_check_key_connect_gnd:
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+mouse_check_key_connect_gnd_next:
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	beq 0x07,mouse_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_key_release
+	rtn
+
+mouse_key_press:
+	qset1 rega
+	rtn
+
+mouse_3io6key_check:
+	bpatch patch11_1,mem_patch11
+	copy regc,pdata
+	store 1,mem_mouse_key_status
+	lshift pdata,pdata
+	copy pdata,regb
+	copy temp,regc
+	call device_gpio_config_input_pd
+	copy regc,temp
+	call gpio_get_bit
+	nsetflag true,0,regb
+	call mouse_check_press
+	branch mouse_check_key_connect_gnd_next
+
+mouse_check_press:
+	fetcht 1,mem_mouse_key_status
+	and_into 0x01,temp
+	and regb,0x01,pdata
+	isub temp,null
+	nbranch mouse_current_mult_update,zero
+	rtn
+
+
+//input:pdata gpio number
+mouse_gpio_config_output_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_pu_check:
+	store 1,mem_device_temp_gpio
+	call mouse_gpio_config_output_high
+	fetcht 1,mem_device_temp_gpio
+	branch device_gpio_config_input_pu
+
+//input:pdata gpio number
+mouse_gpio_config_pd_check:
+	store 1,mem_device_temp_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_device_temp_gpio
+	branch device_gpio_config_input_pd
+
+/*************************key***************************************/
+
+/**********************sensor******************************/
+mouse_init_sunt:
+	bpatch patch11_2,mem_patch11
+	call mouse_sensor_spi_init
+	rtn wake
+mouse_init_sensor_wakeup:
+	call mouse_sensor_poweron
+mouse_init_sensor:
+	bpatch patch11_3,mem_patch11
+	call mouse_read_sensor_id
+	beq P32XX_ID1,mouse_init_p32xx_id2_judge
+	beq P3065_ID1,mouse_init_p3065
+	beq PKA8G2_ID1,mouse_ka8g2_id2_judge
+	call mouse_twspi_reset
+	nop 6900
+	branch mouse_init_sensor
+mouse_twspi_reset:
+	fetcht 1,mem_mouse_sensor_sclk_gpio
+	call twspi_reset
+	branch mouse_spid_init_pin
+
+mouse_read_sensor_id:
+	setarg PAN_REG_PID_H
+	call twspi_read
+	store 1,mem_sensor_id2
+	setarg PAN_REG_PID_L
+	call twspi_read
+	store 1,mem_sensor_id1
+	rtn
+
+mouse_init_p32xx_id2_judge:
+	fetch 1,mem_sensor_id2
+	beq P_MX8650,mouse_mx8650_init_param
+	beq P8009_ID2,mouse_8009_init_param
+	beq P3205_TJ3T_ID2,mouse_S210X_3205_3t_judge
+	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
+	beq P3212_ID2,mouse_3212_init_param
+	beq PKA8_ID2,mouse_ka8_init_param_check
+	beq P6520A_ID2,mouse_p6520_init_param
+	branch mouse_init_sensor
+
+mouse_S210X_3205_3t_judge:
+	setarg 0x49		// id3
+	call twspi_read
+	beq 0xa1,mouse_S201X_init_param
+	branch mouse_3205_3t_init_param
+
+mouse_S201X_init_param:
+	jam S201X,mem_config_sensor_type
+	rtn
+
+mouse_mx8650_init_param:
+	jam MX8650,mem_config_sensor_type
+	call mouse_sensor_reset
+	call delay_10ms
+	arg mem_sensor_8650_init,regc
+	branch mouse_sensor_poweron_end
+
+mouse_8009_init_param:
+	setarg 0x16
+	call twspi_read
+	sub pdata,0xbd,null
+	nbranch mouse_init_sunt,zero
+	setarg 0x19
+	call twspi_read
+	sub pdata,0x55,null
+	nbranch mouse_init_sunt,zero
+	setarg 0x1b
+	call twspi_read
+	sub pdata,0x1d,null
+	nbranch mouse_init_sunt,zero
+	jam P8009,mem_config_sensor_type
+	arg mem_sensor_8009_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_3205_3t_init_param:
+	jam P3205,mem_config_sensor_type
+	arg mem_sensor_3205_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	setarg 0x0943
+	call twspi_write
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq
+
+mouse_3204_3l_init_param:
+	jam P3204,mem_config_sensor_type
+	arg mem_sensor_3204_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq
+
+mouse_3212_init_param:
+	jam P3212,mem_config_sensor_type
+	arg mem_sensor_3212_init,regc
+mouse_sensor_wr_seq:
+	ifetch 2,regc
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero
+	call twspi_write
+	increase 2,regc
+	branch mouse_sensor_wr_seq
+
+mouse_ka8_init_param_check:
+	call mouse_sensor_disable_wp
+	setarg 0x9a5b
+	call twspi_write
+	setarg 0x0d
+	call twspi_read
+	sub pdata,0x12,null
+	branch mouse_ka8ul_init_param,zero
+	sub pdata,0x0a,null
+	nbranch mouse_ka8hd_sensor_judge,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xe5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0xa5,null
+	branch mouse_ka8ul_init_param,zero
+	call mouse_enable_ka8_sensor_wp
+mouse_ka8_init_param:
+	jam KA8,mem_config_sensor_type
+	rtn
+mouse_ka8ul_init_param:
+	jam KA8_UL,mem_config_sensor_type
+	arg mem_sensor_ka8ul_init,regc
+	branch mouse_sensor_wr_seq
+mouse_ka8hd_sensor_judge:
+	sub pdata,0x10,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xc5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0x38,null
+	nbranch mouse_init_sensor,zero
+mouse_ka8hd_init_param:
+	call mouse_enable_ka8_sensor_wp
+	jam KA8_HD,mem_config_sensor_type
+	rtn
+mouse_enable_ka8_sensor_wp:
+	setarg 0x005b
+	call twspi_write
+	branch mouse_sensor_enable_wp
+
+mouse_p6520_init_param:
+	jam P6520,mem_config_sensor_type
+	arg mem_sensor_p6520_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_init_p3065:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	beq P3065_ID2,mouse_p3065_init_param
+	branch mouse_init_sensor
+
+mouse_p3065_init_param:
+	jam P3065,mem_config_sensor_type
+	rtn
+
+mouse_p3065xy_init_param:
+	jam P3065_XY,mem_config_sensor_type
+	rtn
+
+mouse_ka8g2_id2_judge:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq KA5857_ID2,mouse_ka5857_init_param
+	beq PKA8G2_ID2,mouse_ka8g2_init_param
+	branch mouse_init_p32xx_id2_judge
+mouse_ka8g2_init_param:
+	jam KA8G2,mem_config_sensor_type
+	arg mem_sensor_ka8g2_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_ka5857_init_param:
+	jam KA5857,mem_config_sensor_type
+	arg mem_sensor_ka5857_init,regc
+	branch mouse_sensor_poweron_end
+
+mouse_sensor_reset:
+	arg 0x8006,temp
+	fetch 1,mem_config_sensor_type
+	bne KA8G2,mouse_sensor_reset_end
+	arg 0x9706,temp
+mouse_sensor_reset_end:
+	copy temp,pdata
+	call twspi_write
+	nop 12000
+	rtn
+
+mouse_sensor_poweron_init:
+	arg mem_sensor_poweron_init,regc
+	fetch 1,mem_config_sensor_type
+	rtnne KA8G2
+	arg mem_sensor_ka8g2_poweron_init,regc
+	rtn
+
+mouse_sensor_poweron:
+	bpatch patch11_4,mem_patch11
+	call mouse_sensor_spi_init
+	call mouse_sensor_reset
+	call mouse_sensor_poweron_init
+mouse_sensor_poweron_end:
+	call mouse_sensor_wr_seq
+	branch mouse_setting_sensor_type
+
+mouse_sensor_powerdown:
+	bpatch patch11_5,mem_patch11
+	call mouse_init_sunt
+	call mouse_sensor_spi_init
+	arg 0x0806,temp
+	fetch 1,mem_config_sensor_type
+	bne KA8G2,mouse_sensor_powerdown_end
+	arg 0x1f06,temp
+mouse_sensor_powerdown_end:
+	copy temp,pdata
+	branch twspi_write
+/*********sensor init*************/
+
+
+
+/*********sensor motion*************/
+mouse_check_sensor_data:
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	fetch 1,mem_config_sensor_type
+	beq P3205,mouse_p32xx_sensor_motion
+	beq P3065,mouse_p32xx_sensor_motion
+	beq KA8,mouse_p32xx_sensor_motion
+	beq P3204,mouse_p32xx_sensor_motion
+	beq P3212,mouse_p3212_sensor_motion
+	beq P3065_xy,mouse_p32xx_sensor_motion
+	beq P8009,mouse_p8009_sensor_motion
+	beq KA8G2,mouse_pka8g2_sensor_motion
+	beq KA5857,mouse_pka8g2_sensor_motion
+	branch mouse_p32xx_sensor_motion
+
+
+mouse_p32xx_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p32xx_sensor_motion_2
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p32xx_sensor_motion_2:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_p3065_judge
+mouse_p32xx_sensor_motion_1:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	fetch 1,mem_mouse_x
+	call mouse_data_extsign
+	store 2,mem_mouse_x
+	fetch 1,mem_mouse_y
+	call mouse_data_extsign
+	store 2,mem_mouse_y
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion32xx_6clk_direction_selection
+	beq MOUSE_9CLK_ANGLE,mouse_motion32xx_9clk_direction_selection
+	beq MOUSE_12CLK_ANGLE,mouse_motion32xx_12clk_direction_selection
+	beq MOUSE_3CLK_ANGLE,mouse_motion32xx_3clk_direction_selection
+	rtn
+
+mouse_p3065_judge:
+	beq P3065_ID1,mouse_p32xx_sensor_motion_1
+	branch mouse_twspi_reset
+
+mouse_motion32xx_6clk_direction_selection:
+	call mouse_motion_6clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_9clk_direction_selection:
+	call mouse_motion_9clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_12clk_direction_selection:
+	call mouse_motion_12clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_3clk_direction_selection:
+	call mouse_motion_3clk_direction_dispose
+	branch mouse_sensor_sdio_low
+
+
+
+mouse_p3212_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p3212_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p3212_sensor_motion_1:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_twspi_reset
+mouse_p3212_sensor_motion_2:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	call mouse_read_3212sensor_xy_high
+	store 1,mem_mouse_xy_h
+	rshift4 pdata,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion_6clk_direction_dispose
+	beq MOUSE_9CLK_ANGLE,mouse_motion_9clk_direction_dispose
+	beq MOUSE_12CLK_ANGLE,mouse_motion_12clk_direction_dispose
+	beq MOUSE_3CLK_ANGLE,mouse_motion_3clk_direction_dispose
+	rtn
+
+mouse_read_3212sensor_xy_high:
+	setarg 0x12
+	branch twspi_read
+
+mouse_pka8g2_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_pka8g2_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_pka8g2_sensor_motion_1:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne PKA8G2_ID1,mouse_twspi_reset
+	branch mouse_p3212_sensor_motion_2
+
+
+mouse_p8009_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	setarg PAN_REG_OPRATION_STATE
+	call twspi_read
+	branch mouse_p32xx_sensor_motion_1+3,blank
+	setarg 0
+	store 6,mem_mouse_x
+	rtn
+
+mouse_motion_6clk_direction_dispose:
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	branch enable_user
+mouse_motion_12clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	branch enable_user
+mouse_motion_9clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	call mouse_sensor_data_swap_places
+	branch enable_user
+mouse_motion_3clk_direction_dispose:
+	call mouse_sensor_data_swap_places
+	branch enable_user
+
+mouse_sensor_data_swap_places:
+	fetch 2, mem_mouse_y
+	fetcht 2,mem_mouse_x
+	store 2,mem_mouse_x
+	storet 2,mem_mouse_y
+	rtn
+
+
+mouse_clear_sensor_data:
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor_common,blank
+	jam 1,mem_mouse_move_flag
+	rtn
+
+mouse_clear_sensor_data_by_reset:
+	jam 1,mem_mouse_clear_sensor_data_flag
+	call le_set_config_more_data
+mouse_init_sensor_reset:
+	branch mouse_init_sunt
+
+mouse_data_xy_release:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	increase -1,pdata
+	store 1,mem_mouse_long_mult_flag
+	setarg 0
+	store 4,mem_mouse_x
+	branch mouse_init_sensor_reset
+
+mouse_data_extsign:
+	rtnbit0 7
+	arg 0xff00,temp
+mouse_data_ior:
+	ior temp,pdata
+	rtn
+
+mouse_data_extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	branch mouse_data_ior
+
+mouse_read_sensor_common:
+	arg PAN_REG_DELTA_X,pdata
+	call twspi_read
+	store 2,mem_mouse_x
+	arg PAN_REG_DELTA_Y,pdata
+	call twspi_read
+	branch mouse_data_y_store
+
+	/* sdio high will cost extra 9mA */
+mouse_sensor_sdio_low:
+	fetcht 1,mem_mouse_sensor_sdio_gpio
+	call gpio_get_bit
+	rtn true
+	setarg 0x0a
+	call twspi_read
+	nop 1000
+	branch mouse_sensor_sdio_low
+
+mouse_set_sdio_high:		// make sdio high to make 100uA less
+	setarg 0x8100
+	branch twspi_write
+
+/****************************sensor*************************/
+
+/*******************mouse fast connect******************/
+mouse_bluetooth_fast_conn_init:
+	jam 0xff,mem_device_fast_conn_flag
+mouse_ble_fast_conn_init:
+	jam 0x34,mem_xrecord_mode
+	setarg 0x0f0f0f
+	store 3,mem_le_lap
+	store 3,mem_le_lap+3
+	branch mouse_start_reconnect
+
+mouse_buletooth_fast_conn_end:
+	bpatch patch11_6,mem_patch11
+	call hid_device_select_reconn_device
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_check_auto_discover
+	beq MODE_BT_DEVICE2,mouse_device2_check_auto_discover
+	rtn
+mouse_device1_check_auto_discover:
+	fetch 6,mem_device1_addr
+	branch mouse_device_check_auto_discover
+mouse_device2_check_auto_discover:
+	fetch 6,mem_device2_addr
+mouse_device_check_auto_discover:
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_start_discovery ,zero
+	branch mouse_start_reconnect_device
+
+mouse_bluetooth_fast_conn_disable:
+	jam 0x5a,mem_device_fast_conn_flag
+	rtn
+/*******************mouse fast connect******************/
+
+mouse_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch mouse_stop_discovery
+mouse_disconnect:
+	setarg 0
+	store 2,mem_device_no_data_timer
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	rtn
+
+mouse_check_125Hz:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+mouse_bluetooth_125Hz:
+	nbranch mouse_bluetooth_125hz_clear,user
+	fetch 1,mem_bluetooth_125hz_cnt
+	increase 1,pdata
+	and_into 0x0f,pdata
+	store 1,mem_bluetooth_125hz_cnt
+	nrtn blank
+mouse_bluetooth_125hz_clear:
+	jam 0,mem_bluetooth_125hz_cnt
+	branch disable_user
+
+mouse_current_mult_update:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_current_mult_timer
+	rtn
+
+
+mouse_priority_bb_event:
+	bpatch patch11_7,mem_patch11
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
+	beq BT_EVT_LE_DISCONNECTED,mouse_le_bb_disconnected
+	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mouse_le_conn_param_update_rsp_recieved
+	beq BT_EVT_24G_PAIRING_COMPLETE,mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,mouse_24g_attempt_fail
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,mouse_24g_attempt_success
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+	rtn
+
+/***************************le*************************/
+mouse_le_bb_event_connected:
+	call mouse_device_poweron_led_config
+	jam 0,mem_mouse_long_mult_flag
+	call mouse_init_sensor_reset
+	jam 1,mem_device_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_device_le_reconnect_flag
+	nbranch mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_device_send_secutiry_request_timer
+mouse_le_bb_event_connected_next:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	jam 0,mem_device_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch mouse_stop_discovery
+
+mouse_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	jam 0,mem_device_le_bb_connected_flag
+	arg LE_INTERVAL_7_5MS,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next
+	arg LE_INTERVAL_8_75MS,temp
+mouse_le_bb_disconnected_next:
+	storet 2,mem_le_interval_min
+	storet 2,mem_le_interval_min+2
+	jam LE_LPM_ENABLE,mem_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call le_clr_config_more_data
+	branch mouse_bb_disconnected
+
+mouse_le_pairing_success:
+	arg LL_PAIRING_SUCCESS_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enc_info:
+mouse_updata_le_param:
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+mouse_le_ll_start_encryt:
+	fetch 1,mem_device_le_reconnect_flag
+	beq 1,mouse_le_ll_reconn_start_encryt
+	branch mouse_le_ll_enable_start_enc_flag
+mouse_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 20,mem_le_start_encrypt_timer
+mouse_le_ll_enable_start_enc_flag:
+	arg LL_START_ENC_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset1 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+
+mouse_le_conn_param_update_rsp_recieved:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	fetch 1,mem_le_tsniff
+	rshift2 pdata,pdata
+	sub pdata,LE_INTERVAL_15MS,null
+	rtn positive
+	setarg LE_INTERVAL_11_25MS
+	call mouse_le_interval_store
+	call mouse_updata_le_param
+mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_le_conn_param_reject
+	rtn
+
+mouse_le_bb_event_connect_complete:
+	fetch 1,mem_device_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_att_handle
+	sub pdata,34,pdata
+	nrtn zero
+	jam 0,mem_le_start_encrypt_timer
+mouse_le_write_enable:
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	call mouse_le_interval_store
+	fetch 1,mem_le_new_connslavelatency
+	branch mouse_le_lpm_mult_reinit,blank
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+mouse_le_lpm_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+mouse_le_conn_param_lpm_enable:
+	jam LE_LPM_ENABLE,mem_le_conn_param_reject
+	rtn
+
+/*
+mouse_le_disable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset0 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+
+mouse_le_clean_connect_flag:
+	jam 0,mem_le_connect_status_flag
+	rtn
+*/
+
+
+/*
+mouse_le_reconn_write_enable_timer_reinit:
+	fetch 1,mem_device_le_reconnect_flag
+	rtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtneq 0x03
+	jam 2,mem_le_start_encrypt_timer
+	rtn
+*/
+mouse_le:
+	bpatch patch12_0,mem_patch12
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,mouse_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+mouse_le_next:
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call mouse_clear_sensor_data_by_reset,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_le_send_empty_packet
+	call mouse_motion
+	call mouse_check_125Hz
+	nrtn user
+	call mouse_current_mult_update
+	call mouse_data_xy_release
+	call mouse_wheel_trigger
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,hid_device_le_send_mouse_data
+	branch hid_device_send_package_data_check
+
+mouse_fill_battery_level_le:
+	arg 1,rega
+	fetcht 2,mem_le_battery_level_handle
+	call le_att_malloc_tx_notify
+	fetch 1,mem_le_battery_level_percentage
+	branch   istore_1_contw_rtn
+
+
+mouse_check_51cmd_adv:
+	jam 0,mem_device_le_reconnect_flag
+	fetch 3,mem_le_adv_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
+	istore 1,contr
+	arg mem_le_adv_swift_pair,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+mouse_le_check_adv_flag:
+	arg mem_le_adv_data,rega
+mouse_le_check_adv_flag_loop:
+	ifetch 1,rega	//length
+	rtn blank
+	iadd contr,rega
+	ifetch 1,contr	//type
+	rtneq 0x01
+	branch mouse_le_check_adv_flag_loop
+
+mouse_le_adv_data_update:
+	arg mem_le_adv_data+11,contw
+	arg 19,loopcnt
+	call memcpy
+	branch le_modified_name_adv
+
+/***************************le*************************/
+mouse_le_parse_att:
+	bpatch patch12_1,mem_patch12
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_REQUEST,mouse_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,mouse_le_parse_att_write_request
+	branch le_parse_att2
+
+mouse_le_parse_att_read_request:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,le_parse_att_read_request
+	call le_check_encrypt_state
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,mouse_le_send_att_read_response_check_auth
+//input:temp is handle
+mouse_le_send_att_read_response:
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+	fetcht 2,mem_le_att_handle
+	branch le_send_att_read_response
+
+mouse_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch mouse_le_send_att_read_response,zero
+	nbranch mouse_le_send_att_read_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+mouse_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	branch hid_device_le_parse_att_write_request
+
+mouse_bb_disconnected:
+	bpatch patch12_2,mem_patch12
+	call mouse_bb_discon_clear_stack
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch mouse_start_discovery
+
+mouse_bb_discon_clear_stack:
+	setarg 0
+	store 8,mem_wheel_tb_old_pinlevel
+	istore 2,contw             //clean wheel statue
+	jam 0,mem_mouse_move_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse4_0_event_bb_disconn:
+	jam 0,mem_le_connect_status_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch mouse_app_enter_hibernate
+
+
+/********************mouse 100ms timer*****************/
+mouse_bb_event_timer:
+	bpatch patch12_3,mem_patch12
+	//adc
+	call mouse_low_voltage_led_timer
+	call mouse_adc_read
+	//led
+	call mouse_logo_led_on_timer
+	call mouse_led_multi_timer
+	call mouse_dpi_led_blink_delay_timer
+	//key
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call mouse_commbination_key_process
+	call mouse_commbination_dpi_check_timer
+	call mouse_commbination_key_select_device_timer
+
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call mouse_store_information_delay_timer
+	call mouse_check_no_data_timeout_timer
+
+	//24g
+	call mouse_24g_long_sleep_param_update_timer
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+
+	//ble
+	call mouse_check_discovery_timeout_timer
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call mouse_le_battery_updata_timer
+	branch mouse_le_send_smp_security_request_timer
+
+/***********************************100MS TIMER******************************************/
+
+mouse_bt_discovery_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+mouse_bt_discovery_by_pb_button:
+	fetch 1,mem_select_device_button_statue
+	rtnne PB_BUTTON_STATE_DOWN
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_button_bt_discovery,regb
+	branch timer_single_step
+
+mouse_long_button_bt_discovery:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch mouse_bb_event_discovery_btn
+
+mouse_commbination_dpi_check_timer:
+	fetch 1,mem_mouse_commbination_key_dpi
+	rtneq GPIO_DISABLE
+	fetch 1,mem_mouse_pair_flag
+	rtn blank
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_dpi
+	isub temp,null
+	branch mouse_commbination_dpi_check,zero
+	fetch 1,mem_mouse_commbination_dpi_timer
+mouse_commbination_key_count_init:
+	store 1,mem_mouse_commbination_key_count
+	rtn
+
+mouse_commbination_dpi_check:
+	arg mem_mouse_commbination_key_count,regc
+	arg mouse_dpi_process_skip_ghost,regb
+	branch timer_single_step
+
+
+mouse_retransmit_commbination_key_check:
+	fetch 1,mem_24g_shutdown_flag
+	rtn blank
+mouse_commbination_key_select_device_timer:
+	fetch 1,mem_mouse_commbination_key_select_device
+	rtneq GPIO_DISABLE
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_select_device
+	isub temp,null
+	branch p_mouse_check_mouse_key_select_device_set,zero
+	fetch 1,mem_mouse_commbination_select_device_timer
+	branch mouse_commbination_key_count_init
+
+p_mouse_check_mouse_key_select_device_set:
+	arg mem_mouse_commbination_key_count,regc
+	arg mouse_ready_reconnection_by_button,regb
+	branch timer_single_step
+
+mouse_commbination_key_process:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_commbination_key_process
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+	fetcht 1,mem_mouse_commbination_key_bt
+	branch mouse_commbination_key_start
+
+mouse_24g_commbination_key_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetcht 1,mem_mouse_commbination_key_24g
+mouse_commbination_key_start:
+	storet 1,mem_mouse_commbination_key
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key
+	isub temp,null
+	branch mouse_commbination_key_down,zero
+mouse_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_UP
+	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue
+	rtn
+
+mouse_commbination_key_down:
+	call mouse_combination_ui_timer
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	rtn
+
+mouse_combination_ui_timer:
+	arg mouse_24g_start_pair_mode,regb
+	arg mem_combination_ui_button_count,regc
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,timer_single_step
+	arg mouse_long_button_bt_discovery,regb
+	call timer_single_step
+	fetch 1,mem_combination_ui_button_count
+	beq 1,mouse_bt_discovery_button_down_enable	// ble release key press
+	rtn
+
+mouse_check_discovery_timeout_timer:
+	arg mem_device_discovery_timer,regc
+	arg mouse_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_discovery_timeout:
+	call mouse_stop_discovery
+	branch mouse_app_enter_hibernate
+
+mouse_check_direct_timeout_timer:
+	arg mem_device_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_device_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+mouse_check_direct_timeout:
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,mouse_buletooth_fast_conn_end
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,mouse_start_discovery
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_bb_event_reconn_timeout
+	branch mouse_app_enter_hibernate
+
+mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_write_enable,regb
+	branch timer_single_step
+
+mouse_le_send_smp_security_request_timer:
+	fetch 1,mem_device_le_bb_connected_flag
+	rtn blank
+	arg mem_device_send_secutiry_request_timer,regc
+	arg mouse_le_pairing_sm_start_check,regb
+	branch timer_single_step
+mouse_le_pairing_sm_start_check:
+	fetch 1,mem_device_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_pairing_state
+	rtnne FLAG_LE_PAIRING_NULL
+	branch le_pairing_sm_start
+
+mouse_le_battery_updata_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+mouse_le_battery_level_updata:
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	branch mouse_fill_battery_level_le
+
+mouse_le_enable_att_list:
+	fetch 1,mem_le_connect_status_flag
+	rtnbit1 LL_PAIRING_SUCCESS_FLAG
+	call mouse_updata_le_param
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_current_mult_update_timer:
+	arg mem_mouse_current_mult_timer,regc
+	arg mouse_current_mult_reinit,regb
+	branch timer_single_step
+mouse_current_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+mouse_long_mult_init:
+	fetch 1,mem_mouse_long_mult_count
+	store 1,mem_mouse_long_mult_flag
+	rtn
+
+mouse_check_no_data_timeout_timer:
+	arg mem_device_no_data_timer,regc
+	arg mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_hibernate_set
+	branch mouse_disconnect
+
+mouse_no_data_timer_init:
+	fetch 2,mem_device_no_data_timeout
+	store 2,mem_device_no_data_timer
+	rtn
+
+mouse_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg mouse_store_device_info_check,regb
+	branch timer_single_step
+
+mouse_store_device_info_check:
+	call mouse_store_device_info
+	fetch 1,mem_device_need_soft_reset
+	nbranch mouse_soft_reset,blank
+	rtn
+
+/***********************************100MS TIMER END******************************************/
+
+mouse_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call mouse_24g_stop,true
+	call mouse_disconnect
+	jam 0,mem_le_connect_status_flag
+	branch mouse_start_discovery
+
+mouse_start_discovery:
+	bpatch patch12_4,mem_patch12
+	call mouse_device_discovery_led_config
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,mouse_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,mouse_start_discovery_norandom
+	fetcht 1,mem_random_addr_increase_count
+	increase 1,temp
+	storet 1,mem_random_addr_increase_count
+	storet 1,mem_le_lap+2
+	random pdata					//random ble addr
+	store 2,mem_le_lap
+mouse_start_discovery_norandom:
+	fetch 3,mem_device_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_device_discovery_timeout
+	store 2,mem_device_discovery_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_device_direct_timer
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+mouse_stop_discovery:
+	bpatch patch12_5,mem_patch12
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+mouse_stop_le_adv:
+	setarg 0
+	store 1,mem_device_direct_timer
+	store 2,mem_device_discovery_timer
+	branch check_51cmd_stop_adv
+
+mouse_store_remote_bdaddr:
+	bpatch patch12_6,mem_patch12
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call hid_device_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call hid_device_before_store_reconn_info
+	branch mouse_store_device_info_delay
+
+/******************************store info start**************************************/
+
+mouse_store_device_info_delay:
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+mouse_store_device_info:
+	bpatch patch12_7,mem_patch12
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_device_info
+	rtn
+
+mouse_store_dpi_info_check:
+	bpatch patch13_0,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_dpi
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	rtn
+
+
+/******************eeprom data store****************/
+mouse_store_eeprom_device_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+mouse_store_eerpom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+
+/******************flash data store****************/
+mouse_store_flash_device_info:
+	call 	hid_device_store_flash_device_info
+	branch mouse_sensor_spi_init
+
+
+
+/******************otp data store****************/
+mouse_store_otp_device_info:
+	call mouse_write_otp_app_initflag
+	call mouse_write_otp_device_flag
+	call mouse_write_otp_device_info
+	branch mouse_write_otp_le_addr_increase_count_info
+
+mouse_write_otp_app_initflag:
+	call mouse_otp_load_app_initflag
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	rtn zero
+	branch mouse_otp_store_app_initflag
+
+/**********otp device flag store********/
+mouse_write_otp_device_flag:
+	fetchr regb,2,mem_otp_offset_device_flag
+	copy regb,regc
+mouse_write_otp_device_flag_loop:
+	call mouse_read_otp_device_flag_common
+	fetch 1,mem_device_otp_flag_temp
+	branch mouse_device_flag_store,blank
+	store 1,mem_device_flag_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_device_flag_end
+	isub regc,null
+	nrtn positive
+	copy regc,regb
+	branch mouse_write_otp_device_flag_loop
+
+mouse_device_flag_store:
+	fetch 1,mem_device_flag_last
+	and pdata,0xf0,pdata
+	branch mouse_device_flag_store_check,blank
+
+	fetch 1,mem_device_flag
+	call mouse_device_flag_otp_store_judge			// add device_flag check
+	store 1,mem_device_flag_value
+
+mouse_devoce_flag_store_end:
+	arg 1,loopcnt
+	copy regc,regb
+	arg mem_device_flag_value,rega
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_device_flag_store_check:
+	fetcht 1,mem_device_flag_last
+	fetch 1,mem_device_flag
+	call mouse_device_flag_otp_store_judge
+
+	isub temp,null
+	rtn zero
+	lshift4 pdata,pdata
+	iadd temp,pdata
+	store 1,mem_device_flag_value
+
+	copy regc,pdata
+	fetcht 2,mem_otp_offset_device_flag
+	isub temp,null
+	branch mouse_devoce_flag_store_end,zero
+
+	increase -1,regc
+	branch mouse_devoce_flag_store_end
+
+mouse_device_flag_otp_store_judge:
+	rtnne MODE_24G_DEVICE
+	increase 4,pdata
+	rtn
+
+/**********otp addr store********/
+mouse_write_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_write_otp_24g_addr
+	beq MODE_BT_DEVICE1,mouse_write_otp_le_device1
+	beq MODE_BT_DEVICE2,mouse_write_otp_le_device2
+	rtn
+
+mouse_write_otp_24g_addr:
+	fetchr regb,2,mem_otp_offset_24g_addr
+	copy regb,regc
+mouse_otp_store_24g_addr_loop:
+	call mouse_read_otp_24g_addr_common
+	fetch 4,mem_mouse_24g_addr_temp
+	branch mouse_24g_addr_store,blank
+	store 4,mem_mouse_24g_addr_last
+	increase 4,regc
+	fetch 2,mem_otp_offset_24g_addr_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_24g_addr_loop
+
+mouse_24g_addr_store:
+	fetch 4,mem_mouse_24g_addr_last
+	fetcht 4,mem_device_24g_addr
+	isub temp,null
+	rtn zero
+	arg 4,loopcnt
+	arg mem_device_24g_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_write_otp_le_device1:
+	fetchr regb,2,mem_otp_offset_le_addr1
+	copy regb,regc
+mouse_otp_store_le_addr1_loop:
+	call mouse_read_otp_le_addr1_common
+	fetch 6,mem_mouse_le_addr1_temp
+	branch mouse_le_addr1_store,blank
+	store 6,mem_mouse_le_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr1_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr1_loop
+
+mouse_le_addr1_store:
+	fetch 6,mem_mouse_le_addr1_last
+	fetcht 6,mem_device1_addr
+	isub temp,null
+	rtn zero
+	arg 6,loopcnt
+	arg mem_device1_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+mouse_write_otp_le_device2:
+	fetchr regb,2,mem_otp_offset_le_addr2
+	copy regb,regc
+mouse_otp_store_le_addr2_loop:
+	call mouse_read_otp_le_addr2_common
+	fetch 6,mem_mouse_le_addr2_temp
+	branch mouse_le_addr2_store,blank
+	store 6,mem_mouse_le_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr2_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr2_loop
+
+mouse_le_addr2_store:
+	fetch 6,mem_mouse_le_addr2_last
+	fetcht 6,mem_device2_addr
+	isub temp,null
+	rtn zero
+	arg 6,loopcnt
+	arg mem_device2_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+/**************store le addr increase count**********/
+mouse_write_otp_le_addr_increase_count_info:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetchr regb,2,mem_otp_offset_le_addr_increase_count
+	copy regb,regc
+mouse_otp_store_le_addr_increase_count_loop:
+	call mouse_read_otp_le_addr_increase_count_common
+	fetch 1,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_store,blank
+	store 1,mem_random_addr_increase_count_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_le_addr_increase_count_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr_increase_count_loop
+
+mouse_le_addr_increase_count_store:
+	fetch 1,mem_random_addr_increase_count_last
+	fetcht 1,mem_random_addr_increase_count
+	isub temp,null
+	rtn zero
+	arg 1,loopcnt
+	arg mem_random_addr_increase_count,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+/**********otp dpi store********/
+mouse_store_otp_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+	fetchr regb,2,mem_otp_offset_dpi
+	copy regb,regc
+mouse_otp_store_dpi_loop:
+	call mouse_read_otp_dpi_common
+	fetch 1,mem_mouse_dpi_temp
+	branch mouse_otp_dpi_store,blank
+	store 1,mem_mouse_dpi_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_dpi_end
+	isub regc,null
+	nrtn positive
+	copy regc,regb
+	branch mouse_otp_store_dpi_loop
+
+mouse_otp_dpi_store:
+	fetch 1,mem_mouse_dpi_last
+	and pdata,0xf0,pdata
+	branch mouse_dpi_store_last_check,blank
+	fetch 1,mem_mouse_dpi
+	call mouse_dpi_otp_store_judge	//add dpi check
+	store 1,mem_mouse_otp_dpi_value
+mouse_dpi_store_end:
+	arg 1,loopcnt
+	copy regc,regb
+	arg mem_mouse_otp_dpi_value,rega
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_dpi_store_last_check:
+	fetcht 1,mem_mouse_dpi_last
+	fetch 1,mem_mouse_dpi
+	call mouse_dpi_otp_store_judge
+	isub temp,null
+	rtn zero
+	lshift4 pdata,pdata
+	iadd temp,pdata
+	store 1,mem_mouse_otp_dpi_value
+
+	copy regc,pdata
+	fetcht 2,mem_otp_offset_dpi
+	isub temp,null
+	branch mouse_dpi_store_end,zero
+
+	increase -1,regc
+	branch mouse_dpi_store_end
+
+mouse_dpi_otp_store_judge:
+	rtnne MOUSE_DPI_LEVEL1
+	increase 7,pdata
+	rtn
+
+/******************************store info end**************************************/
+
+
+
+/******************************load info start**************************************/
+
+mouse_device_flag_check:
+	fetch 1,mem_device_flag
+	sub pdata,4,null
+	rtn positive
+	call set_pdata_0
+	branch mouse_store_device_flag
+
+/******************eeprom data load****************/
+mouse_load_eeprom_info_check:
+	call iicd_read_init_pin
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call set_eeprom_size_2k,true
+	call mouse_eeprom_load_recon_info
+	call mouse_device_flag_check
+	branch mouse_app_initflag_load_check
+
+mouse_eeprom_load_recon_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+mouse_load_eeprom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+
+/******************flash data load****************/
+mouse_load_flash_info_check:
+	call hid_device_load_flash_info_check
+	call mouse_device_flag_check
+	call mouse_app_initflag_load_check
+	branch mouse_sensor_spi_init
+
+mouse_information_flash_parameters:
+	setarg mem_device_information_end
+	arg mem_device_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_device_information_start,rega
+	rtn
+
+mouse_spid_flash_release_form_powerdown:
+	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_temp
+mouse_spid_write_flash_cmd:
+	call delay_nop100
+	call spid_unlock_flash
+	arg mem_write_flash_head_temp,rega
+	fetcht 1,mem_temp
+	call mouse_spid_write_flash_cmd_common
+	branch delay_nop100
+
+mouse_spid_flash_powerdown:
+	jam FLASH_COMMAND_POWERDOWN,mem_temp
+	branch mouse_spid_write_flash_cmd
+
+mouse_spid_write_flash_cmd_common:
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	store 2,core_spid_txaddr
+	setarg 0
+	store 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+mouse_flash_erase_sector:
+	fetch 3,mem_flash_base
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+
+mouse_spid_write_flash:
+	copy pdata,regc
+	copy rega,pdata
+	increase -4,pdata
+	copy pdata,regb
+	ifetch 4,regb
+	store 4,mem_write_flash_head_temp
+	copy regc,pdata
+	call spid_write_flash
+	fetch 4,mem_write_flash_head_temp
+	istore 4,regb
+	rtn
+
+mouse_flash_power_down:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_FLASH
+	call mouse_spid_flash_powerdown
+	call twspi_enable	// 2 wire mode
+	fetcht 1,mem_spi_cs_gpio		//disable flash
+	call gpio_out_inactive
+	fetcht 1,mem_spi_hold_gpio
+	branch device_gpio_config_input_pd
+
+
+/******************otp data load****************/
+mouse_load_otp_info_check:
+	call mouse_read_otp_dpi
+	call mouse_read_otp_device_flag
+	call mouse_device_flag_check
+	call mouse_read_otp_device_info
+mouse_app_initflag_load_check:
+	bpatch patch13_1,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_OTP,pdata
+	call mouse_otp_load_app_initflag,true
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+mouse_app_initflag_load:
+	storet 2,mem_store_flag
+	call hid_device_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	store 1,mem_random_addr_increase_count
+mouse_load_default_dpi:
+	fetch 1,mem_config_sensor_dpi
+mouse_temp_store_dpi:
+	store 1,mem_mouse_dpi
+	rtn
+
+mouse_otp_load_app_initflag:
+	arg 2,loopcnt
+	fetchr regb,2,mem_otp_offset_app_initflag
+	arg mem_store_flag,rega
+	branch otp_read_data
+
+mouse_otp_store_app_initflag:
+	arg 2,loopcnt
+	arg mem_store_flag,rega
+	fetchr regb,2,mem_otp_offset_app_initflag
+	branch otp_write
+
+/**************load device flag**********/
+mouse_read_otp_device_flag:
+	fetchr regb,2,mem_otp_offset_device_flag
+	copy regb,regc
+mouse_read_otp_device_flag_loop:
+	call mouse_read_otp_device_flag_common
+	fetch 1,mem_device_otp_flag_temp
+	branch mouse_device_flag_load,blank
+	store 1,mem_device_flag_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_device_flag_end
+	isub regc,null
+	nbranch mouse_device_flag_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_device_flag_loop
+
+mouse_read_otp_device_flag_common:
+	arg 1,loopcnt
+	arg mem_device_otp_flag_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_device_flag_load:
+	fetch 1,mem_device_flag_last
+	copy pdata,temp
+	and pdata,0xf0,pdata
+	branch mouse_device_flag_load_last,blank
+	rshift4 pdata,pdata
+	branch mouse_device_flag_load_end
+
+mouse_device_flag_load_last:
+	copy temp,pdata
+mouse_device_flag_load_end:
+	sub pdata,0,null
+	branch mouse_device_flag_temp_load,zero
+	sub pdata,4,null
+	call set_pdata_0,zero
+mouse_store_device_flag:
+	store 1,mem_device_flag
+	rtn
+
+mouse_device_flag_temp_load:
+	fetch 1,mem_device_flag_temp
+	branch mouse_store_device_flag
+
+/****************otp load addr*************/
+mouse_read_otp_device_info:
+	call mouse_read_otp_24g_addr
+	call mouse_read_otp_le_device1
+	call mouse_read_otp_le_device2
+	branch mouse_read_otp_le_addr_increase_count_info
+
+mouse_read_otp_le_device1:
+	call mouse_read_otp_le_device1_addr
+	branch mouse_read_otp_le_device1_locall_addr
+
+mouse_read_otp_le_device2:
+	call mouse_read_otp_le_device2_addr
+	branch mouse_read_otp_le_device2_locall_addr
+
+/*************************load le addr1**********************************/
+mouse_read_otp_le_device1_addr:
+	fetchr regb,2,mem_otp_offset_le_addr1
+	copy regb,regc
+mouse_read_otp_le_device1_addr_loop:
+	call mouse_read_otp_le_addr1_common
+	fetch 6,mem_mouse_le_addr1_temp
+	branch mouse_le_addr1_load,blank
+	store 6,mem_mouse_le_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr1_end
+	isub regc,null
+	nbranch mouse_le_addr1_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device1_addr_loop
+
+mouse_read_otp_le_addr1_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_addr1_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_le_addr1_load:
+	fetch 6,mem_mouse_le_addr1_last
+	store 6,mem_device1_addr
+	rtn
+
+
+mouse_read_otp_le_device1_locall_addr:
+	fetchr regb,2,mem_otp_offset_le_locall_addr1
+	copy regb,regc
+mouse_read_otp_le_device1_locall_addr_loop:
+	call mouse_read_otp_le_locall_addr1_common
+	fetch 6,mem_mouse_le_locall_addr1_temp
+	branch mouse_le_locall_addr1_load,blank
+	store 6,mem_mouse_le_locall_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_locall_addr1_end
+	isub regc,null
+	nbranch mouse_le_locall_addr1_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device1_locall_addr_loop
+
+mouse_read_otp_le_locall_addr1_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_locall_addr1_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_le_locall_addr1_load:
+	fetch 6,mem_mouse_le_locall_addr1_last
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	call mouse_device_le_locall_addr1_init,zero
+	store 6,mem_device1_locall_addr
+	rtn
+
+mouse_device_le_locall_addr1_init:
+	fetch 6,mem_le_lap
+	rtn
+
+/*************************load le addr2**********************************/
+mouse_read_otp_le_device2_addr:
+	fetchr regb,2,mem_otp_offset_le_addr2
+	copy regb,regc
+mouse_read_otp_le_device2_addr_loop:
+	call mouse_read_otp_le_addr2_common
+	fetch 6,mem_mouse_le_addr2_temp
+	branch mouse_le_addr2_load,blank
+	store 6,mem_mouse_le_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr2_end
+	isub regc,null
+	nbranch mouse_le_addr2_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device2_addr_loop
+
+mouse_read_otp_le_addr2_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_addr2_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_le_addr2_load:
+	fetch 6,mem_mouse_le_addr2_last
+	store 6,mem_device2_addr
+	rtn
+
+
+mouse_read_otp_le_device2_locall_addr:
+	fetchr regb,2,mem_otp_offset_le_locall_addr2
+	copy regb,regc
+mouse_read_otp_le_device2_locall_addr_loop:
+	call mouse_read_otp_le_locall_addr2_common
+	fetch 6,mem_mouse_le_locall_addr2_temp
+	branch mouse_le_locall_addr2_load,blank
+	store 6,mem_mouse_le_locall_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_locall_addr2_end
+	isub regc,null
+	nbranch mouse_le_locall_addr2_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device2_locall_addr_loop
+
+mouse_read_otp_le_locall_addr2_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_locall_addr2_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_le_locall_addr2_load:
+	fetch 6,mem_mouse_le_locall_addr2_last
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	call mouse_device_le_locall_addr2_init,zero
+	store 6,mem_device2_locall_addr
+	rtn
+
+mouse_device_le_locall_addr2_init:
+	fetch 6,mem_le_lap
+	add pdata,0x0100,pdata
+	rtn
+
+/**************load 24g addr**********/
+mouse_read_otp_24g_addr:
+	fetchr regb,2,mem_otp_offset_24g_addr
+	copy regb,regc
+mouse_read_otp_24g_addr_loop:
+	call mouse_read_otp_24g_addr_common
+	fetch 4,mem_mouse_24g_addr_temp
+	branch mouse_24g_addr_load,blank
+	store 4,mem_mouse_24g_addr_last
+	increase 4,regc
+	fetch 2,mem_otp_offset_24g_addr_end
+	isub regc,null
+	nbranch mouse_24g_addr_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_24g_addr_loop
+
+mouse_read_otp_24g_addr_common:
+	arg 4,loopcnt
+	arg mem_mouse_24g_addr_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_24g_addr_load:
+	fetch 4,mem_mouse_24g_addr_last
+	store 4,mem_device_24g_addr
+	rtn
+
+/**************load le addr increase count**********/
+mouse_read_otp_le_addr_increase_count_info:
+	fetchr regb,2,mem_otp_offset_le_addr_increase_count
+	copy regb,regc
+mouse_read_otp_le_addr_increase_count_loop:
+	call mouse_read_otp_le_addr_increase_count_common
+	fetch 1,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_load,blank
+	store 1,mem_random_addr_increase_count_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_le_addr_increase_count_end
+	isub regc,null
+	nbranch mouse_le_addr_increase_count_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_addr_increase_count_loop
+
+mouse_read_otp_le_addr_increase_count_common:
+	arg 1,loopcnt
+	arg mem_random_addr_increase_count_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_le_addr_increase_count_load:
+	fetch 1,mem_random_addr_increase_count_last
+	store 1,mem_random_addr_increase_count
+	rtn
+
+/*************load dpi**********/
+mouse_read_otp_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI,mouse_load_default_dpi
+	fetchr regb,2,mem_otp_offset_dpi
+	copy regb,regc
+mouse_read_otp_dpi_loop:
+	call mouse_read_otp_dpi_common
+	fetch 1,mem_mouse_dpi_temp
+	branch mouse_dpi_load,blank
+	store 1,mem_mouse_dpi_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_dpi_end
+	isub regc,null
+	nbranch mouse_dpi_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_dpi_loop
+
+mouse_read_otp_dpi_common:
+	arg 1,loopcnt
+	arg mem_mouse_dpi_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_dpi_load:
+	fetch 1,mem_mouse_dpi_last
+	copy pdata,temp
+	and pdata,0xf0,pdata
+	branch mouse_dpi_load_last,blank
+	rshift4 pdata,pdata
+	branch mouse_dpi_load_end
+
+mouse_dpi_load_last:
+	copy temp,pdata
+mouse_dpi_load_end:
+	sub pdata,7,null
+	call set_pdata_0,zero
+	branch mouse_temp_store_dpi
+
+/******************************load info end**************************************/
+
+
+mouse_idle:
+	bpatch patch13_2,mem_patch13
+	call mouse_low_voltage_led_no_enter_lpm
+	call ui_check_paring_button
+	call mouse_dpi_check
+	call mouse_dpi_another_gpio_check
+	call mouse_select_device_check
+	call mouse_check_select_device_by_switch
+	call mouse_bt_button_check
+	call mouse_wheel_check
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	bpatch patch13_3,mem_patch13
+	call mouse_usb_isr
+	branch mouse_usb_mode
+
+mouse_select_device_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON,mouse_select_device_by_pb_button
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_select_device_by_pb_button
+	rtn
+
+mouse_select_device_by_pb_button:
+	call mouse_select_device_by_pb_button_check
+	branch mouse_select_device_by_pb_button_exit
+
+mouse_select_device_by_pb_button_check:
+	bpatch patch13_4,mem_patch13
+	arg 0,rega
+	jam MOUSE_PB_KEY,mem_mouse_key_temp
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_pb_button_check
+	store 1,mem_mouse_pbkey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_pb_button_check_end
+	branch mouse_matrix_public_gpio_reset
+
+mouse_retransmit_select_device_by_pb_button:
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	call mouse_select_device_by_pb_button_check
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down+2
+	branch mouse_select_device_button_up
+
+mouse_3io6key_pb_button_check_end:
+	fetcht 1,mem_config_select_device_button_gpio
+	call device_gpio_config_input_pu
+mouse_select_device_by_pb_button_exit:
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down
+	branch mouse_select_device_button_up
+
+mouse_pb_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND,mouse_pb_button_connect_gnd
+	fetch 1,mem_mouse_pbkey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_check
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_select_device_by_pb_button_end,blank
+	branch mouse_pb_button_connect_matrix
+
+mouse_select_device_by_pb_button_end:
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam 0,mem_mouse_pbkey_press_status
+	rtn
+
+mouse_pb_button_connect_gnd:
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_pb_button_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_pb_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_config_select_device_button_gpio
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_select_device_button_up:
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_UP
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	fetch 1,mem_bt_discovery_count
+	sub pdata,20,null
+	ncall mouse_ready_reconnection_by_button,positive		// press button less than 30-20=1000ms
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	rtn
+
+mouse_select_device_button_down:
+	call mouse_select_device_ghost_check
+	rtn user
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_DOWN
+	jam PB_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY,mouse_long_button_bt_discovery
+	fetch 1,mem_device_direct_timer
+	rtn blank
+	fetch 1,mem_device_direct_timeout
+	store 1,mem_device_direct_timer
+	rtn
+
+mouse_select_device_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+mouse_ghost_key_value_check:
+	fetch 1,mem_mouse_lkey_press_status
+	rtn blank
+	fetch 1,mem_mouse_rkey_press_status
+	rtn blank
+	fetch 1,mem_mouse_mkey_press_status
+	rtn blank
+	branch enable_user
+
+//===========================select device by switch start==================================//
+
+mouse_check_select_device_by_switch:
+	bpatch patch13_5,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check
+mouse_switch_gpio_connect_vin_check:
+	call mouse_switch_gpio_connect_vin
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pu_check
+
+mouse_switch_gpio_connect_gnd_check:
+	call mouse_switch_gpio_connect_gnd
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pd_check
+
+mouse_switch_gpio_connect_vin:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pd_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_select_btdevice,true
+	branch mouse_select_24gdevice
+
+mouse_switch_gpio_connect_gnd:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pu_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_select_24gdevice,true
+	branch mouse_select_btdevice
+
+mouse_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_select_device_set
+
+mouse_select_24gdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+mouse_select_device_set:
+	call mouse_select_device_stop_set
+	branch mouse_soft_reset
+
+//=========================================================//
+
+mouse_check_select_device_by_switch_once:
+	bpatch patch13_6,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check_once
+mouse_switch_gpio_connect_vin_check_once:
+	call mouse_switch_gpio_connect_vin_once
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pu_check
+
+mouse_switch_gpio_connect_gnd_check_once:
+	call mouse_switch_gpio_connect_gnd_once
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pd_check
+
+
+mouse_switch_gpio_connect_vin_once:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pd_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_btdevice,true
+	branch mouse_check_select_24g_device
+
+mouse_switch_gpio_connect_gnd_once:
+
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pu_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_24g_device,true
+	branch mouse_check_select_btdevice
+
+mouse_check_select_24g_device:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+mouse_select_device_stop_set:
+	call mouse_24g_stop
+	branch mouse_stop_bluetooth_mode
+
+mouse_check_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_select_device_stop_set
+
+//===========================select device by switch end==================================//
+
+
+mouse_ready_reconnection_by_button:
+	bpatch patch13_7,mem_patch13
+	fetch 1,mem_device_number
+	rtneq 1		// 1channel
+	call mouse_select_device_number
+	storet 1,mem_device_flag
+mouse_store_device_number_before_reset:
+	call mouse_select_device_enable
+	call mouse_stop_bluetooth_mode
+	call app_evt_button_long_pressed
+	call mouse_select_device_disable
+	jam 1,mem_device_need_soft_reset
+	branch mouse_store_device_info_delay
+
+mouse_soft_reset:
+	call mouse_select_device_enable
+	branch soft_reset_chip
+
+mouse_select_device_number:
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G,mouse_select_device_number_24g
+	sub temp,2,null
+	rtn positive
+mouse_select_device_count_clean_bt:
+	arg 1,temp
+	rtn
+
+mouse_select_device_number_24g:
+	fetch 1,mem_device_number
+	increase -1,pdata
+	isub temp,null
+	rtn positive
+mouse_select_device_count_clean_24g:
+	arg 0,temp
+	rtn
+
+mouse_store_device_number2eeprom:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg 0,regb
+	branch iicd_write_protect_eep_data
+
+mouse_bt_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	branch mouse_select_device_by_pb_button
+
+mouse_select_device_enable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_select_device_disable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_cannel_reconn_enable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_cannel_reconn_disable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_discovery_button_down_enable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_discovery_button_down_disable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_adc_read_enable:
+	arg MOUSE_ENABLE_ADC,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_set_250Hz:
+	arg MOUSE_ENABLE_24G_250Hz,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_search_dongle_enable:
+	arg MOUSE_ENABLE_24G_SEARCH_DONGLE,queue
+	branch mouse_enable_function_flag
+
+mouse_16M_enable:
+	arg MOUSE_ENABLE_16M,queue
+	branch mouse_enable_function_flag
+
+mouse_dpi_4level_enable:
+	arg MOUSE_ENABLE_DPI_LEVEL_4,queue
+	branch mouse_enable_function_flag
+
+mouse_enable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset1 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_disable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset0 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_polling_device:
+	bpatch patch14_0,mem_patch14
+	fetch 1,mem_reconn_times
+	increase -1,pdata
+	store 1,mem_reconn_times
+	fetcht 1,mem_device_flag
+	sub temp,1,null
+	ncall mouse_select_device_number,zero
+	storet 1,mem_device_flag
+	call mouse_store_device_number2eeprom
+	call hid_device_before_store_reconn_info
+	branch mouse_start_reconnect_device
+
+
+//notice: need to call p_mouse_drawing_optima_init when waked from mult
+mouse_drawing_optima:
+	bpatch patch14_1,mem_patch14
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	rtneq KA8G2
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	fetch 4,mem_mouse_x
+	rtn blank
+	call mouse_data_abs_check
+	setarg 0x03	//asm_flag enable condition
+	call mouse_pdata_greater_than_check
+	call mouse_disable_asm,blank
+	ncall mouse_enable_asm,blank
+	setarg 0x02	//asm_flag disable condition
+	call mouse_data_less_than_check
+	call mouse_disable_asm,blank
+	fetch 1,mem_mouse_asm_flag
+	beq 1,mouse_drawing_optima_modify
+mouse_drawing_optima_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	arg 5,loopcnt
+	arg mem_mouse_asm_flag,contw
+	branch clear_mem
+
+mouse_drawing_optima_modify:
+	call mouse_drawing_optima_xy_offset_modify
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_x
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_x
+
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_y
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_data_current
+mouse_data_y_store:
+	store 2,mem_mouse_y
+	rtn
+
+mouse_drawing_optima_xy_offset_modify:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_XY_OFFSET
+	bpatch patch14_2,mem_patch14
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	store 2,mem_mouse_x
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	branch mouse_data_y_store
+
+mouse_pre_xy_data_judge:
+	fetch 1,mem_data_value+1
+	branch mouse_pre_xy_pdata_offset,blank
+	branch mouse_pre_xy_ndata_offset
+
+mouse_pre_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_pre_xy_get_0_4_times
+	store 1,mem_data_value
+mouse_xy_data_offset_new:
+	fetch 2,mem_data_value
+	rtn
+mouse_pre_xy_ndata_offset:
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_pre_xy_get_0_4_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+
+mouse_current_xy_data_judge:
+	fetch 1,mem_data_value+1
+	branch mouse_current_xy_pdata_offset,blank
+	branch mouse_current_xy_ndata_offset
+mouse_current_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_current_xy_get_0_6_times
+	store 1,mem_data_value
+	branch mouse_xy_data_offset_new
+mouse_current_xy_ndata_offset:
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_current_xy_get_0_6_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+
+mouse_pre_xy_get_0_4_times:
+	mul32 pdata,4,pdata
+	div pdata,5
+	branch mouse_div_end
+
+mouse_current_xy_get_0_6_times:	//0.6 times
+	mul32 pdata,12,pdata
+	div pdata,10
+mouse_div_end:
+	call wait_div_end
+	quotient pdata
+	rtn
+
+mouse_drawing_optima_data_x:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_xtemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_xtemp
+	branch mouse_drawing_optima_data
+
+mouse_drawing_optima_data_y:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_ytemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_ytemp
+	branch mouse_drawing_optima_data
+
+/**********
+input:data_pre,data_current
+output:data_pre,data_current after optima
+***********/
+mouse_drawing_optima_data:
+	store 3,mem_data_sum
+	isolate1 16,pdata
+	branch mouse_data_sum_overflow,true
+	fetch 1,mem_data_sum+1
+	beq 0xff,mouse_data_sum_n
+	fetch 1,mem_data_sum
+mouse_data_store_pre:
+	rshift pdata,pdata
+	store 2,mem_data_pre
+	store 2,mem_data_current
+	rtn
+mouse_data_sum_overflow:
+	fetch 1,mem_data_sum+1	//sum positive
+	beq 0,mouse_data_sum_overflow_p
+	fetch 3,mem_data_sum
+	branch mouse_data_store_pre
+mouse_data_sum_overflow_p:
+	jam 0,mem_data_sum+2
+	fetch 1,mem_data_sum
+	branch mouse_data_store_pre
+
+mouse_data_sum_n:
+	fetch 1,mem_data_sum	//sum negetive
+	call mouse_pdata_get_half
+	store 1,mem_data_pre
+	store 1,mem_data_current
+	branch mouse_data_zero,blank
+	setarg 0xff
+mouse_data_set_direction:
+	store 1,mem_data_pre+1
+	store 1,mem_data_current+1
+	rtn
+mouse_data_zero:
+	setarg 0
+	branch mouse_data_set_direction
+
+mouse_pdata_get_half:
+	call mouse_pdata_invert
+	rshift pdata,pdata
+mouse_pdata_get_new_value:
+	call mouse_rega_in_out
+	sub pdata,0,pdata
+	store 1,mem_data_value
+	rtn
+
+mouse_pdata_invert:
+	sub pdata,0,pdata
+mouse_rega_in_out:
+	store 1,mem_rega
+	fetch 1,mem_rega
+	rtn
+
+mouse_disable_asm:
+	jam 0,mem_mouse_asm_flag
+	rtn
+mouse_enable_asm:
+	jam 1,mem_mouse_asm_flag
+	rtn
+
+//rega mouse_x, regb mouse_y, pdata refer
+mouse_pdata_greater_than_check:
+	isub rega,null
+	nbranch disable_blank,positive
+	isub regb,null
+	nbranch disable_blank,positive
+	branch enable_blank
+mouse_data_less_than_check:
+	isub rega,null
+	nrtn positive
+	isub regb,null
+	nrtn positive
+	branch enable_blank
+
+mouse_data_abs_check:
+	fetch 2,mem_mouse_x
+	call mouse_data_abs
+	copy pdata,rega
+	fetch 2,mem_mouse_y
+	call mouse_data_abs
+	copy pdata,regb
+	rtn
+
+/***********
+input: data_current
+output:pdata,abs
+************/
+mouse_data_abs:
+	store 2,mem_data_current
+	fetch 1,mem_data_current+1
+	beq 0xff,mouse_data_reversal
+	fetch 1,mem_data_current
+mouse_data_abs_store:
+	and_into 0xff,pdata
+	//output:pdata
+	rtn
+mouse_data_reversal:
+	fetch 2,mem_data_current
+	sub pdata,0,pdata
+	branch mouse_data_abs_store
+
+mouse_24g_long_sleep_param_update_timer:
+	arg mem_24g_long_sleep_param_update_timer,regc
+	arg mouse_24g_long_sleep_normal_param,regb
+	branch timer_single_step
+mouse_24g_long_sleep_normal_param:
+	fetch 4,mem_24g_long_sleep_set1
+	store 4,mem_24g_enter_hibernate
+	branch mouse_long_mult_init
+
+
+mouse_24g_long_sleep_set:
+	fetch 1,mem_24g_long_sleep_set_level
+	beq 0x00,mouse_24g_long_sleep_set_30ms
+	beq 0x01,mouse_24g_long_sleep_set_50ms
+	beq 0x02,mouse_24g_long_sleep_set_80ms
+	beq 0x03,mouse_24g_long_sleep_set_100ms
+mouse_24g_long_sleep_set_80ms:
+	setarg 0x0ea600
+mouse_24g_long_sleep_set_end:
+	store 4,mem_24g_long_sleep_set1
+	rtn
+mouse_24g_long_sleep_set_30ms:
+	setarg 0x05e740
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_50ms:
+	setarg 0x0927c0
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_100ms:
+	setarg 0x124f80
+	branch mouse_24g_long_sleep_set_end
+
+mouse_24g_hibernate_set:
+	bpatch patch14_3,mem_patch14
+	jam 0,mem_mouse_pair_flag
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_24g_shutdown_flag
+	call mouse_sensor_powerdown
+	call mouse_setgpio_hibernate
+	branch mouse_24g_long_sleep
+
+mouse_wakeup_24g:
+	bpatch patch14_4,mem_patch14
+	fetch 1,mem_24g_shutdown_flag
+	ncall mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_24g_shutdown_flag
+	rtn
+
+mouse_wakeup_24g_from_long_sleep:
+	jam 1,mem_mouse_pair_flag
+	call mouse_init_sensor_wakeup
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_init:
+	fetcht 1,mem_whee_a_data_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_whee_b_data_gpio
+ 	branch device_gpio_config_input_pu
+
+mouse_24g_transmit_start:
+	call mouse_24g_fast_conn_mode_check
+	fetch 1,mem_24g_shutdown_flag
+	nbranch mouse_24g_short_sleep,blank
+	branch g24_transmit_start_next
+
+mouse_24g_fast_conn_mode_check:
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch mouse_soft_agc_enable,zero
+mouse_soft_agc_disable:
+	jam 0xff,mem_gain_fix
+	rtn
+
+mouse_soft_agc_enable:
+	jam 0,mem_gain_fix
+	jam TX_POWER_FACTORY,mem_tx_power
+	rtn
+
+device_store_normal_tx_power:
+	fetch 1,mem_tx_power
+	store 1,mem_device_normal_tx_power
+	rtn
+
+device_fetch_normal_tx_power:
+	fetch 1,mem_device_normal_tx_power
+	store 1,mem_tx_power
+	rtn
+
+mouse_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_24g_start_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
+	call mouse_device_24g_pair_led_config
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_reconn_general_dongle
+	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,mouse_24g_reconn_general_dongle
+	call mouse_key_check_once
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_24g
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_general_dongle
+
+mouse_24g_mode_setup_error:
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	rtn
+
+mouse_24g_first_start_auto_pair_mode:
+	call mouse_wakeup_from_power_check
+	branch mouse_24g_first_start_reconn,user  	// wake from hibernate :enble user
+mouse_24g_reconn_general_dongle:
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 2,mem_device_24g_power_on_fast_conn_timer
+	store 2,mem_24g_reconn_timeout
+	jam FAST_CONN_AND_RECEIVER,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_start_auto_pair:
+	fetch 2,mem_24g_pair_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam PAIR_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_first_start_reconn:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_dongle_start
+	call mouse_bluetooth_fast_conn_disable
+mouse_24g_first_bluetooth_reconnect:
+	call mouse_24g_stop
+	jam MODE_BT_DEVICE1,mem_device_flag
+	call hid_device_select_reconn_device
+	branch mouse_le_fast_conn_judge
+
+mouse_24g_first_bb_event_reconn_timeout:
+	call mouse_wakeup_from_power_check
+	branch mouse_app_enter_hibernate,user
+	branch mouse_start_discovery
+
+mouse_24g_first_store_reconn_info:
+	call mouse_wakeup_from_power_check
+	rtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_store_device_info_delay
+	rtn
+
+mouse_24g_start_pair_mode:
+	call mouse_device_24g_pair_led_config
+	jam 0,mem_24g_reconn_type
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_24g_reconn_timeout
+	call mouse_stop_discovery
+mouse_24g_pair_mode_check:
+	jam TYPE_MS,mem_24g_data_type
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,g24_pair_start
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+mouse_24g_attempt_fail:
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch mouse_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,mouse_24g_fast_conn_attempt_fail
+	beq FAST_CONN_AND_RECEIVER,mouse_24g_fast_conn_attempt_fail
+	beq PAIR_AND_3_0_ADDR,mouse_24g_auto_pair_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,mouse_reconn_dongle_attempt_fail
+mouse_24g_attempt_fail_enter_hibernate:
+	call mouse_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_app_enter_hibernate
+	rtn
+
+mouse_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_device_24g_addr		// auto pair first time
+	fetcht 4,mem_device_compare_addr
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+mouse_24g_reconn_dongle_start:
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam RECEIVER_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	fetch 1,mem_device_number
+	beq 1,mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
+
+mouse_reconn_dongle_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_FLASH,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_OTP,mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair
+
+mouse_24g_attempt_success:
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call mouse_no_data_timer_init
+	call mouse_device_poweron_led_config
+	call mouse_init_sensor_reset
+	jam 0,mem_mouse_long_mult_flag
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	rtn zero
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	branch mouse_24g_first_store_reconn_info
+
+mouse_24g_pairing_complete:
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	call mouse_init_sensor_reset
+	call mouse_read_sensor_common
+	call mouse_device_poweron_led_config
+	call mouse_no_data_timer_init
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_conn_sm
+	store 1,mem_mouse_move_flag
+	store 1,mem_24g_reconn_type
+
+
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr
+	branch mouse_store_device_info_delay
+
+mouse_24g_short_sleep_clear_wake:
+	call clear_wake
+	branch lpm_write_gpio_wakeup
+
+mouse_24g_package_data:
+	bpatch patch14_5,mem_patch14
+	rtnmark0 mark_24g
+	call mouse_motion
+	nrtn user
+	fetch 1,mem_mouse_24g_long_sleep_flag
+	jam 0,mem_mouse_24g_long_sleep_flag
+	ncall mouse_24g_short_sleep_clear_wake,blank
+
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch mouse_24g_keyboard_package_data,blank
+mouse_24g_mouse_package_data:
+	call mouse_data_xy_release
+	fetch 1,mem_24g_data_type
+	bbit1 1,mouse_24g_mouse_package_data_now	// last package is keyboard data
+	fetcht 1,mem_24g_txbuf+1
+	fetch 1,mem_mouse_key
+	ior temp,pdata
+	store 1,mem_mouse_key
+	fetcht 1,mem_24g_txbuf+6
+	fetch 1,mem_mouse_z
+	iadd temp,pdata
+	store 1,mem_mouse_z
+	fetcht 1,mem_24g_txbuf+7
+	fetch 1,mem_mouse_tz
+	iadd temp,pdata
+	store 1,mem_mouse_tz
+mouse_24g_mouse_package_data_now:
+	jam TYPE_MS,mem_24g_data_type
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	fetch 2,mem_mouse_z
+	rtn blank
+	branch g24_transmit_by_interrupt_enable
+
+mouse_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	arg 9,rega	//length
+	branch hid_device_24g_keyboard_package_data_set
+
+mouse_g24_retransmit:
+	fetch 1,mem_device_need_soft_reset
+	nrtn blank
+	call mouse_g24_retransmit_100ms_timer
+	branch g24_retransmit0
+
+mouse_g24_retransmit_100ms_timer:
+	arg 12,queue
+	call timer_check
+	nrtn blank
+	call mouse_retransmit_select_device_by_pb_button
+	call mouse_retransmit_commbination_key_check
+	call mouse_dpi_check_once
+	call mouse_dpi_key_check_long_press
+mouse_g24_retransmit_100ms_timer_init:
+	arg 12,queue
+	setarg 160
+	branch timer_init
+
+mouse_dpi_check_once:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	branch mouse_dpi_check
+
+/**************************************g24 new process start********************************************/
+mouse_24g_before_lpm_sleep:
+	call lpm_puchk_set_check
+	branch hid_device_before_lpm_set
+
+/**************************************g24 new process end********************************************/
+
+/*******************logo led*******************/
+mouse_logo_led_on_timer:
+	fetch 1,mem_mouse_logo_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_mouse_logo_led_on_time_init
+	isub temp,pdata
+	branch mouse_logo_led_on,positive
+mouse_logo_led_off:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch mouse_led_off
+mouse_logo_led_on:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch mouse_led_on
+
+/*******************logo led end*******************/
+
+
+
+/*******************dpi led*******************/
+mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg mouse_dpi_led_blink_init,regb
+	branch timer_single_step
+
+mouse_dpi_led_blink_init:
+	bpatch patch14_6,mem_patch14
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_led_blink_set_4_level
+mouse_dpi_led_blink_set_3_level:			//800-1200-1600
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_2_blink	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_3_blink	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink	//800
+	rtn
+
+mouse_dpi_led_blink_set_4_level:			//800-1000-1200-1600
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3_blink		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_4_blink		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink		//800
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2_blink		//1000
+	rtn
+
+mouse_dpi_level_1_blink:
+	setarg 2
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_2_blink:
+	setarg 4
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_3_blink:
+	setarg 6
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_4_blink:
+	setarg 8
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_multi_dpi_led_blink_enable:
+	store 1,mem_mouse_multi_led_blink_count
+	jam 4,mem_mouse_multi_led_blink_type
+	call mouse_multi_dpi_led_blink_timer_init
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch mouse_multi_led_enable
+
+mouse_dpi_led_blink_delay:
+//	fetch 2,mem_device_discovery_timer
+//	nrtn blank
+//	fetch 2,mem_24g_pair_timeout
+//	nrtn blank
+//	fetch 2,mem_24g_reconn_timeout
+//	nrtn blank
+//	fetch 1,mem_mouse_multi_led_powon_timer
+//	nrtn blank
+	fetch 1,mem_mouse_pair_flag
+	rtn blank
+	fetch 1,mem_mouse_dpi_led_delay_count_init
+	branch mouse_dpi_led_blink_init,blank
+	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	rtn
+
+/*******************dpi led end*******************/
+
+
+
+/*******************low voltage led*************************/
+
+mouse_check_dpi_blink:
+	disable user
+	fetch 1,mem_mouse_multi_led_blink_type		//04:dpi blink
+	sub pdata,4,null
+	nrtn zero
+	branch enable_user
+
+mouse_low_voltage_led_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+//	fetch 2,mem_device_discovery_timer
+//	nrtn blank
+//	fetch 2,mem_24g_pair_timeout
+//	nrtn blank
+//	fetch 2,mem_24g_reconn_timeout
+//	nrtn blank
+//	fetch 1,mem_mouse_multi_led_powon_timer
+//	nrtn blank
+	fetch 1,mem_mouse_pair_flag
+	rtn blank
+	call mouse_check_dpi_blink		//need judge blink led=dpi? if led=dpi led->rtn
+	rtn user
+
+	fetch 1,mem_mouse_multi_low_led_blink_count
+	branch mouse_low_led_blink_count_init_judge,blank
+mouse_low_led_blink_timer:
+	fetcht 1,mem_adc_low_volatage_led_timer_count
+	increase 1,temp
+	storet 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_low_led_blink_timer
+	isub temp,null
+	ncall mouse_low_led_timer_count_clean,positive
+	fetch 1,mem_mouse_low_led_blink_half_timer
+	isub temp,null
+	nbranch mouse_low_voltage_led_off_judge,positive
+mouse_low_voltage_led_on_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_on
+mouse_low_voltage_led_on:
+	fetcht 1,mem_mouse_low_voltage_alarm_gpio
+	branch mouse_led_on
+
+mouse_low_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_multi_low_led_blink_count	//blink count decrease
+	increase -1,pdata
+	store 1,mem_mouse_multi_low_led_blink_count
+mouse_low_voltage_led_off_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_off
+mouse_low_voltage_led_off:
+	fetcht 1,mem_mouse_low_voltage_alarm_gpio
+	branch mouse_led_off
+
+mouse_low_led_blink_count_init_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT,mouse_low_voltage_led_off_judge
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_low_led_blink_timer
+
+/*******************low voltage led end*************************/
+
+
+/*******************multi led start*************************/
+/***parm init****/
+
+mouse_device_multi_led_parm_init:
+	jam 0,mem_mouse_multi_led_blink_enable
+	call mouse_device_multi_led_all_off		//can be remove?
+	jam 0,mem_mouse_multi_led_blink_type
+	fetch 1, mem_mouse_low_led_blink_timer
+	rshift pdata,pdata
+	store 1,mem_mouse_low_led_blink_half_timer
+	rtn
+mouse_multi_low_led_blink_count_init:
+	fetch 1,mem_mouse_multi_lowled_blink_count_init
+	store 1,mem_mouse_multi_low_led_blink_count
+	rtn
+
+mouse_multi_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_led_blink_type		//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	beq 1,mouse_device_24g_led_blink_timer_init
+	beq 2,mouse_device_le_discovery_led_blink_timer_init
+	beq 3,mouse_device_le_reconn_led_blink_timer_init
+mouse_multi_dpi_led_blink_timer_init:
+	fetch 1,mem_mouse_dpi_led_blink_timer_init
+mouse_store_multi_led_blink_timer:
+	store 1,mem_mouse_multi_led_blink_timer
+	rtn
+mouse_device_24g_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_24gled_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+mouse_device_le_discovery_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_discovery_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+mouse_device_le_reconn_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_reconn_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+
+//===led poweron config===//
+mouse_device_poweron_led_config:	//power on
+	bpatch patch14_7,mem_patch14
+	fetch 1,mem_mouse_multi_led_powon_timer_init
+	store 1,mem_mouse_multi_led_powon_timer
+	jam MULTI_LED_ON,mem_mouse_multi_led_type
+mouse_multi_led_enable:
+	jam OFF,mem_mouse_multi_led_state
+	jam ON,mem_mouse_multi_led_blink_enable
+	rtn
+
+//===led blink config===//
+mouse_device_24g_pair_led_config:		//24g pair led config
+	bpatch patch15_0,mem_patch15
+//	call mouse_device_24g_led_blink_timer_init
+	call mouse_multi_led_blink_enable_init
+	jam 1,mem_mouse_multi_led_blink_type
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	rtn blank
+	fetch 1,mem_mouse_multi_24gled_blink_count_init
+	branch mouse_device_led_blink_count_init
+
+mouse_device_le_reconn_led_config:		//le recon led config
+	bpatchx patch3a_3,mem_patch3a
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+//	call mouse_device_le_reconn_led_blink_timer_init
+	call mouse_multi_led_blink_enable_init
+	jam 3,mem_mouse_multi_led_blink_type
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	rtn blank
+	fetch 1,mem_mouse_multi_le_reconn_blink_count_init
+mouse_device_led_blink_count_init:
+	store 1,mem_mouse_multi_led_blink_count
+	rtn
+
+mouse_device_discovery_led_config:		//ble discovery led config
+//	call mouse_device_le_discovery_led_blink_timer_init
+	jam 0,mem_mouse_le_reconn_blink_limit
+	jam 2,mem_mouse_multi_led_blink_type
+mouse_multi_led_blink_enable_init:
+	bpatchx patch3a_4,mem_patch3a
+	jam 0x0a,mem_mouse_multi_led_blink_timer
+	jam 1,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch mouse_device_multi_led_on
+
+
+//====multi timer====//
+mouse_led_multi_timer:
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtn blank
+	fetch 1,mem_mouse_multi_led_type
+	beq MULTI_LED_BLINK,mouse_multi_led_type_blink
+mouse_device_multi_led_type_on:
+	fetch 1,mem_mouse_multi_led_powon_timer
+	branch mouse_device_poweron_led_off,blank
+	increase -1,pdata
+	store 1,mem_mouse_multi_led_powon_timer
+	branch mouse_device_led_on
+
+mouse_device_poweron_led_off:
+ 	jam 0,mem_mouse_multi_led_blink_enable
+ 	jam 1,mem_mouse_pair_flag
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_device_led_off
+
+mouse_multi_led_type_blink:
+	bpatch patch15_1,mem_patch15
+	fetch 1,mem_mouse_multi_led_blink_type	//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	rtn blank
+	beq 4,mouse_device_led_blink_limit	//dpi blink
+	branch mouse_device_led_blink_judge
+
+mouse_device_led_blink_judge:
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	beq 1,mouse_device_led_blink_limit
+	branch mouse_multi_led_type_blink_next
+
+mouse_device_led_blink_limit:
+	fetch 1,mem_mouse_multi_led_blink_count
+	branch mouse_multi_led_off_judge, blank		//blink count =0
+mouse_multi_led_type_blink_next:	//blink no limit
+	arg mem_mouse_multi_led_blink_timer,regc
+	arg mouse_multi_led_type_blink_start,regb
+	branch timer_single_step
+
+mouse_multi_led_type_blink_start:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_led_blink_count_decrease		//dpi blink
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	beq 1,mouse_multi_led_blink_count_decrease
+mouse_multi_led_blink:
+	call mouse_multi_led_blink_timer_init
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,mouse_multi_led_off_judge_next
+	branch mouse_multi_led_on_judge
+
+mouse_multi_led_blink_count_decrease:
+	fetch 1,mem_mouse_multi_led_blink_count
+	increase -1,pdata
+	store 1,mem_mouse_multi_led_blink_count
+	branch mouse_multi_led_blink
+
+//=====led on/off interface=====//
+mouse_multi_led_on_judge:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_dpi_led_on_judge
+mouse_device_multi_led_on:
+	jam ON,mem_mouse_multi_led_state
+mouse_device_led_on:
+	bpatch patch15_2,mem_patch15
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_on
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_on
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_on
+	rtn
+mouse_device_24g_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch mouse_led_on	//by mouse.dat config
+mouse_device_bt1_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch mouse_led_on	//by mouse.dat config
+mouse_device_bt2_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+mouse_led_on:
+	branch gpio_out_active	//by mouse.dat config
+
+mouse_led_off:
+	branch gpio_out_inactive	//by mouse.dat config
+
+mouse_multi_led_off_judge:
+	jam 0,mem_mouse_multi_led_blink_enable
+	jam 0,mem_mouse_multi_led_blink_type
+mouse_multi_led_off_judge_next:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_dpi_led_off_judge
+mouse_device_multi_led_off:
+	jam OFF,mem_mouse_multi_led_state
+mouse_device_led_off:
+	bpatch patch15_3,mem_patch15
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_off
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_off
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_off
+	rtn
+mouse_device_24g_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_analog
+mouse_device_bt1_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_analog
+mouse_device_bt2_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_analog
+
+mouse_device_multi_led_all_off:		//dpi+low no
+	call mouse_device_24g_led_off
+	call mouse_device_bt1_led_off
+	call mouse_device_bt2_led_off
+	call mouse_low_voltage_led_off_judge
+	branch mouse_multi_dpi_led_off_judge
+
+mouse_multi_dpi_led_off_judge:
+	jam OFF,mem_mouse_multi_led_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_off
+mouse_multi_dpi_led_off:
+	fetcht 1,mem_mouse_dpi_gpio
+	branch mouse_led_off
+
+mouse_multi_dpi_led_on_judge:
+	jam ON,mem_mouse_multi_led_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_on
+mouse_multi_dpi_led_on:
+	fetcht 1,mem_mouse_dpi_gpio
+	branch mouse_led_on	//by mouse.dat config
+
+/*******************multi led end*************************/
+
+mouse_low_voltage_led_no_enter_lpm:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	fetcht 1,mem_mouse_low_led_blink_half_timer
+	sub pdata,temp,null
+	branch mouse_lpm_mode_clear,positive
+mouse_low_voltage_led_no_enter_lpm_next:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_exit_check
+	branch hid_device_enable_lpm
+
+g24_transmit_by_interrupt_exit_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_24G_250Hz
+	branch g24_transmit_by_interrupt_exit
+
+mouse_lpm_mode_clear:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_enable
+	branch hid_device_disable_lpm
+
+
+mouse_store_signal_rssi:
+//	call rssi_hex2dec
+	fetch 1,mem_rssi
+	branch rssi_signal
+
+mouse_le_transmit:
+	call mouse_store_signal_rssi
+	branch power_ctrl_start
+
+mouse_set_lpm_mult:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+mouse_le_set_lpm_mult:
+	fetch 1,mem_le_connect_status_flag
+	compare 3,pdata,3
+	nbranch disable_blank,true
+	call app_lpm_mult_enable
+	branch enable_blank
+
+mouse_24g_long_sleep:
+	bpatch patch15_4,mem_patch15
+	call g24_lpm_wait
+	nrtn user
+	jam 1,mem_mouse_24g_long_sleep_flag
+	call g24_setgpio_lpm_before
+	jam 0,mem_mouse_24g_sleep_miss
+	call mouse_24g_send_time_long_wake
+	fetch 1,mem_24g_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 8,mem_24g_enter_hibernate
+	branch g24_long_seep2
+
+mouse_24g_short_sleep:
+	fetch 1,mem_mouse_sleep_deal_type
+	branch g24_short_sleep,blank
+	call g24_lpm_wait
+	nrtn user
+	fetch 1,mem_mouse_24g_sleep_miss
+	jam 0,mem_mouse_24g_sleep_miss
+	sub pdata,0,null
+	nbranch mouse_24g_short_sleep_last_miss,zero
+	fetcht 2,mem_24g_retransmit
+	sub temp,0,null
+	branch mouse_24g_short_sleep_default,zero
+
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	branch mouse_24g_short_sleep_default,blank
+mouse_24g_short_sleep_last_miss:
+	fetcht 4,mem_mouse_24g_sleep_miss_temp
+	isolate1 31,temp
+	branch mouse_24g_sub_miss_temp,true
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	iadd temp,pdata
+mouse_24g_short_sleep_notify:
+	fetcht 4,mem_mouse_24g_tsniff
+	isub temp,temp
+	storet 4,mem_mouse_24g_sleep_miss_temp
+	nbranch mouse_24g_short_sleep_long,positive
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,pdata
+	nbranch mouse_24g_short_sleep_2,positive
+	arg 0x600,temp
+	isub temp,null
+	nbranch mouse_24g_short_sleep_2,positive
+mouse_24g_short_sleep2:
+	jam 250,mem_mouse_24g_tx_time_offset
+mouse_24g_short_sleep3:
+	call clk2lpo
+	storet 4,mem_sleep_counter
+	branch lpm_sleep
+
+mouse_24g_short_sleep_default:
+	call mouse_24g_miss_temp_clear
+	fetch 3,mem_24g_short_sleep_set
+	branch mouse_24g_short_sleep2
+
+mouse_24g_short_sleep_long:
+	sub temp,0,temp
+	fetch 3,mem_24g_short_sleep_set
+	iadd temp,pdata
+	branch mouse_24g_short_sleep2
+
+mouse_24g_miss_temp_clear:
+	setarg 0
+	store 4,mem_mouse_24g_sleep_miss_temp
+	rtn
+
+mouse_24g_short_sleep_2:
+	jam 1,mem_mouse_24g_sleep_miss
+	rtn
+
+mouse_24g_sub_miss_temp:
+	arg -1,pdata
+	isub temp,regext
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	isub regext,pdata
+	branch mouse_24g_short_sleep_notify
+
+mouse_24g_transmit_callback:
+	call mouse_24g_send_time_check
+	branch mouse_wakeup_24g
+
+mouse_24g_send_time_check:
+	fetch 1,mem_mouse_sleep_deal_type
+	rtn blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,mouse_24g_send_timer_first
+	fetch 1,mem_mouse_24g_tx_count
+	branch mouse_24g_send_timer_first,blank
+	copy clkn,pdata
+	fetcht 6,mem_mouse_24g_tx_time_last
+	store 6,mem_mouse_24g_tx_time_last
+	call clk_diff_rt
+	store 4,mem_mouse_24g_tx_time_last_delt
+
+	fetch 1,mem_mouse_24g_sleep_miss
+	nrtn blank
+	fetch 2,mem_24g_retransmit
+	nrtn blank
+	fetch 4,mem_mouse_24g_sleep_miss_temp
+	nrtn blank
+
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	fetcht 4,mem_mouse_24g_tsniff
+	lshift temp,temp
+	isub temp,null
+	branch mouse_24g_send_time_long_wake,positive
+
+	fetcht 5,mem_mouse_24g_tx_time_sum
+	iadd temp,pdata
+	store 5,mem_mouse_24g_tx_time_sum
+	fetcht 1,mem_mouse_24g_tx_count
+	fetch 1,mem_mouse_24g_tx_time_sum_count
+	isub temp,null
+	branch mouse_24g_send_time_check_average,zero
+	increase 1,temp
+	storet 1,mem_mouse_24g_tx_count
+	rtn
+
+mouse_24g_send_time_check_average:
+	jam 1,mem_mouse_24g_tx_count
+	arg 0,temp
+	fetch 5,mem_mouse_24g_tx_time_sum
+	storet 5,mem_mouse_24g_tx_time_sum
+	fetcht 1,mem_mouse_24g_tx_time_sum_count
+	idiv temp
+	call wait_div_end
+  	quotient rega
+
+	fetch 4,mem_mouse_24g_tsniff
+	fetcht 1,mem_mouse_24g_tx_time_offset
+	isub temp,temp
+
+	copy rega,pdata
+	isub temp,pdata
+	branch mouse_24g_send_time_check_average_late,positive
+	sub pdata,0,pdata
+
+	rshift2 pdata,pdata
+	fetcht 3,mem_24g_short_sleep_set
+	iadd temp,temp
+	bpatch patch15_5,mem_patch15
+	fetch 3,mem_mouse_24g_short_sleep_set_init
+	arg 0x1800,rega
+	iadd rega,pdata
+	isub temp,null
+	nbranch mouse_24g_send_time_check_average_min,positive
+mouse_24g_short_sleep_storet:
+	storet 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_time_check_average_late:
+	rshift2 pdata,temp
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,temp
+	bpatch patch15_6,mem_patch15
+	fetch 3,mem_mouse_24g_short_sleep_set_init
+	arg 0x1800,rega
+	isub rega,pdata
+	isub temp,null
+	branch mouse_24g_send_time_check_average_min,positive
+	branch mouse_24g_short_sleep_storet
+
+mouse_24g_send_time_check_average_min:
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_timer_first:
+	jam 1,mem_mouse_24g_tx_count
+	copy clkn,pdata
+	store 6,mem_mouse_24g_tx_time_last
+	rtn
+
+mouse_24g_send_time_long_wake:
+	setarg 0
+	store 1,mem_mouse_24g_tx_count
+	store 5,mem_mouse_24g_tx_time_sum
+	rtn
+
+/******************************************USB MODE*******************************************/
+mouse_usb_check_enable:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
+	rtn
+
+mouse_usb_isr:
+	call mouse_usb_interface_check
+	fetch 1,mem_usb_vdd_status
+	rtnne USB_INTERFACE_INSERT
+	branch usb_isr
+
+mouse_usb_interface_check:
+	bpatch patch15_7,mem_patch15
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	nbranch mouse_usb_mode_disable,true
+mouse_usb_mode_enable:
+	fetch 1,mem_usb_vdd_status
+	rtneq USB_INTERFACE_INSERT
+	jam USB_INTERFACE_INSERT,mem_usb_vdd_status
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	call mouse_24g_stop
+	call mouse_stop_bluetooth_mode
+	disable wake
+	call mouse_init_sensor_reset
+
+	setarg mouse_usb_config_param
+	store 2,mem_cb_usb_config
+	fetch 1,mem_usb_tx_interval_retention
+	store 1,mem_usb_tx_interval
+	arg mem_usb_vid_pid_retention,contr
+	arg mem_usb_vid_pid,contw
+	arg 9,loopcnt
+	call memcpy
+	branch usb_init
+
+mouse_usb_mode_disable:
+	fetch 1,mem_usb_keyboard_flag
+	rtneq USB_INTERFACE_REMOVE
+	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
+	jam 0,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_status
+	jam 0,mem_usb_state
+	fetch 2,core_clkoff
+	set1 CLOCK_OFF_USB,pdata
+	store 2,core_clkoff
+	jam 1,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	branch mouse_soft_reset
+
+mouse_usb_mode:
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	call mouse_usb_timer_check
+	nrtn user
+	call mouse_motion
+	nrtn user
+	fetch 1,core_usb_txbusy
+	rtnbit1 2
+	branch mouse_push_data_to_usb
+
+mouse_push_data_to_usb:
+	fetch 1,core_usb_addr
+	rtnbit0 7
+	bpatch patch16_0,mem_patch16
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,hid_device_push_mouse_data_to_usb
+	fetch 1,mem_customer_key
+	beq 1,hid_device_push_keyboard_data_to_usb
+	branch hid_device_push_mouse_data_to_usb
+
+mouse_usb_timer_check:
+	call disable_user
+	fetcht 4,mem_btclk_sensor
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall mouse_usb_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_btclk_sensor
+	fetcht 1,mem_wire_usb_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_btclk_sensor
+	branch enable_user
+
+mouse_usb_timer_timeout:
+	rtn zero
+	set1 28,pdata
+	rtn
+
+mouse_usb_timer_init:
+	setarg 0
+	store 4,mem_btclk_sensor
+	rtn
+
+mouse_usb_config_param:
+	bpatch patch16_1,mem_patch16
+	call mouse_usb_config_kb_check
+	call mouse_usb_report_rate_set
+	call mouse_usb_config_param_setup
+mouse_usb_device_name_config:
+	fetch 1,mem_usb_device_name_retention
+	rtn blank
+	arg mem_usb_device_name_retention,contr
+	arg mem_string2,contw
+	arg 30,loopcnt
+	branch memcpy
+
+mouse_usb_config_kb_check:
+	jam DONGLE_KB_BIND_OTP_OFFECT,mem_usb_keyboard_flag
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
+	rtn
+
+mouse_usb_config_param_setup:
+	call usb_tx_interval_config
+	call dongle_usb_vid_pid_config
+mouse_usb_hid_icon_config:
+	fetch 1,mem_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+mouse_usb_report_rate_set:
+	call mouse_usb_timer_init
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_USB_250,mouse_usb_report_rate_set_250hz
+	bbit1 MOUSE_ENABLE_USB_500,mouse_usb_report_rate_set_500hz
+	bbit1 MOUSE_ENABLE_USB_1000,mouse_usb_report_rate_set_1000hz
+mouse_usb_report_rate_set_125hz:
+	jam 32,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_250hz:
+	jam 16,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_500hz:
+	jam 8,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_1000hz:
+	jam 4,mem_wire_usb_interval
+	rtn
+
+
+/*****************close define  COMPILE_MOUSE**********/
+else
+
+endif
+
+
+
Index: program/patch.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/patch.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/patch.prog	(working copy)
@@ -0,0 +1,1411 @@
+
+
+	bbit1 8,pf_patch_ext
+	beq patch00_0,p_soft_reset	
+	beq patch03_2,p_initialize_radio_cont
+	beq patch04_5,p_lpm_sleep
+	beq patch05_0,p_lpm_dispatch
+	beq patch07_6,p_keyboard_setting_config_next
+	beq patch07_7,p_keyboard_load_info_check
+	beq patch08_0,p_keyboard_store_device_info
+	//beq patch08_2,p_keyboard_priority_bb_event
+	beq patch08_3,p_keyboard_bb_event_timer
+	beq patch08_4,p_keyboard_adc_vol_init
+	beq patch09_1,p_keyboard_idle	
+	beq patch09_3,p_keyboard_work_start
+	beq patch09_4,p_kscan_dispatch
+	beq patch09_6,p_keyboard_keyvalue_chang
+	beq patch0a_1,p_keyboard_keyvalue_fn_replace_press
+	beq patch0a_6,p_keyboard_long_button_bt_discovery
+	beq patch0a_7,p_keyboard_24g_start_pair_mode
+	beq patch0b_1,p_keyboard_motion_data_check
+	beq patch0b_4,p_keyboard_value_tpye_consumer_set
+	beq patch0b_6,p_keyboard_lpm_before_common
+	beq patch0d_2,p_keyboard_le_parse_att
+	beq patch0f_4,p_keyboard_app_enter_hibernate
+	beq patch10_2,p_mouse_adc_bat_percent_lowpower_out
+	beq patch14_3,keyboard_24g_hibernate_set
+	beq patch1d_1,p_otp_write
+	beq patch1d_2,p_otp_read_data
+	beq patch19_7,p_keyboard_init
+	beq patch1f_2,p_gpio_set_wake_by_current_state
+	branch assert
+
+pf_patch_ext:
+	rtneq patch3f_7
+	beq patch35_5,p_g24_pair_sm_common
+	beq patch37_5,p_g24_reconn_dispatch_next
+	beq patch38_2,p_g24_transmit_no_interrupt
+	beq patch3e_3,p_initialize_radio2
+	branch assert
+p_initialize_radio2:
+//	bpatchx patch3e_3,mem_patch3e
+	until null,lpo_edge
+	jam 0x60,0x8a86
+	jam 0x3b,0x8a8b 
+
+	call dpll_on
+	jam 0,core_config
+	jam CLKSEL_DPLL,core_clksel
+	setarg 0x557474
+	store 3,0x8968
+	jam 0x6e,0x8960
+	call rx_dcoc
+	call rfpll_aac_ghpc
+	call set_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	jam 0x06,0x8a30
+	jam 0xdd,0x8a32
+	jam 0xe0,0x8a88
+	jam 0x2d,0x8a8c
+	jam 0x78,0x8a31
+	call sadc_calibration
+	call dpll_ring_ibias_calc
+	branch set_bistfix_save_patchram
+
+p_soft_reset:
+	nbranch p_soft_reset_next,wake
+	until null,lpo_edge
+	until null,lpo_edge
+p_soft_reset_next:	
+	call keyboard_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_keyboard_pb_button_gpio
+	beq UI_BUTTON_GPIO_DISABLE,soft_reset+1
+	copy pdata,queue
+	fetch 4,mem_saved_gpio_in
+	qisolate0 pdata					// bt button gpio num
+	call keyboard_pb_set,true
+	branch soft_reset+1
+	///////////////////
+p_lpm_sleep:
+	//call xtal_fast_wake
+	fetch 2,mem_cb_before_lpm_sleep
+	call callback_func
+	//jam 0x3f,0x8078
+	fetch 4,mem_sleep_counter_all	// sleep total time, 32k unit
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	call lpm_save_context
+	fetch 1,mem_lpm_hv_sel
+	set1 LPM_DOZE_EN_BIT, pdata
+	call lpm_write_sel_hv
+	ncall lpm_preon_counter,wake
+	until null,lpo_edge
+	copy clkn,pdata
+	store 6,mem_sleep_clkn
+	branch lpm_sleep_skip_cb_function+10	
+p_g24_pair_sm_common:
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	branch g24_pair_sm_common+12
+		
+p_g24_reconn_dispatch_next:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch p_keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+
+p_keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call p_keyboard_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+
+p_keyboard_g24_ackpayload_parse:
+	call g24_ackpayload_parse
+	fetch 1,mem_24g_rxbuf+1
+	compare 0x08,pdata,0xf8
+	nrtn true
+	fetch 1,mem_24g_rxbuf+2		// pc sleep mouse ackpayload: 01 08 ff
+	beq 0xff,keyboard_24g_hibernate_set
+	store 1,mem_keyboard_led_status
+	rtn
+
+p_initialize_radio_cont:
+	until null,lpo_edge
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	jam 0xcd,0x8a13
+//	jam 0x10,0x8a06
+	fetch 1,0x8a06
+	and pdata,0xfc,pdata
+	store 1,0x8a06
+	branch initialize_radio_cont+6
+
+p_otp_read_data:
+	call enable_otp_read
+	call otp_read_data1
+	branch otp_disable_chgpump
+
+/* regb = otp address, rega pointers data, loopcnt is count */
+p_otp_write:
+	//bpatch patch1d_1,mem_patch1d
+	call otp_enable_chgpump65
+	call otp_set_addr
+	call otp_reset
+p_otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+p_otp_program_bit:
+	set0 mark_otp_write,mark
+p_otp_program_bit2:
+	qisolate0 temp
+	branch p_otp_skip_0,true
+	fetch 1,core_otp_din
+	set1 6,pdata				/* din */
+	set1 7,pdata				/* dle */
+	store 1,core_otp_din
+	jam 0x02,core_otp_ctrl	/* web */
+	jam 0x82,core_otp_ctrl
+	set0 7,pdata				/* dle */
+	store 1,core_otp_din
+	jam 0x8a,core_otp_ctrl	/* pgmen */
+	nop 11
+	jam 0xca,core_otp_ctrl	/* vppen */
+	nop 33
+	jam 0x4a,core_otp_ctrl	/* web 2nd */
+	nop 44
+	jam 0xca,core_otp_ctrl	/* release web */
+	nop 22
+	jam 0x8a,core_otp_ctrl	/* release vppen */
+	nop 33
+	jam 0x82,core_otp_ctrl	/* release pgmen */
+	nop 1
+	jam 0x92,core_otp_ctrl	/* pgmvfy */
+	nop 10
+	jam 0xb2,core_otp_ctrl	/* readen */
+	fetch 1,core_otp_rdata
+	jam 0x92,core_otp_ctrl	/* release readen */
+	nop 1
+	jam 0x82,core_otp_ctrl	/* release pgmvfy */
+	nop 1
+	qisolate0 pdata
+	branch p_otp_program_bit,true	/* program error */
+	bmark1 mark_otp_write,p_otp_skip_0
+	set1 mark_otp_write,mark
+	branch p_otp_program_bit2
+
+p_otp_skip_0:
+	fetch 2,core_otp_addr
+	increase 1,pdata
+	store 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch p_otp_program_bit,true
+	loop p_otp_program
+	branch otp_disable_chgpump
+
+p_gpio_set_wake_by_current_state:
+	set1 gpio_active_bit,temp
+	call gpio_get_bit
+	nsetflag true,gpio_active_bit,temp
+	branch gpio_set_wake
+
+//**************************APP INIT*******************************//
+p_lpm_dispatch:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	rtn
+	fetch 1,mem_keyboard_fn_flag
+	nrtn blank
+	fetch 1,mem_keyboard_control_key_flag
+	nrtn blank
+	fetch 1,mem_device_direct_timer
+	nrtn blank
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	branch lpm_dispatch+4
+
+p_keyboard_init:
+	//call ice_break
+	call app_param_init
+	call enable_authrom
+	call p_keyboard_setting_config
+	call p_keyboard_gpio_init
+	call p_keyboard_low_vol_mult_set
+	branch keyboard_init+4
+
+p_keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,p_keyboard_low_vol_mult_ble_set
+	call g24_interval_param_8ms
+	branch mouse_24g_long_sleep_set
+p_keyboard_low_vol_mult_ble_set:
+	setarg 160			// 320ms
+	call keyboard_mult_auto_get
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	setarg 80			// 100ms
+	branch keyboard_mult_auto_get
+
+p_keyboard_setting_config:
+	call p_keyboard_gpio_drive_strength_init
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call p_keyboard_param_init
+	jam 0x0a,mem_lpm_overhead
+	call p_keyboard_device_led_all_off
+	branch keyboard_setting_config+5
+p_keyboard_gpio_drive_strength_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_gpio_drive_strength_loop:
+	ifetcht 1,regb
+	call p_gpio_set_ds_bit
+	increase 1,regb
+	loop p_keyboard_gpio_drive_strength_loop
+	rtn
+p_keyboard_device_led_all_off:
+	call keyboard_low_voltage_led_off
+	branch keyboard_device_led_all_off+1
+
+p_keyboard_param_init:
+	call keyboard_compare_addr_init
+	call p_keyboard_param_common_init
+	branch	keyboard_param_init+2
+
+p_keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg mem_keyboard_le_table
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+p_keyboard_store_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,p_keyboard_store_otp_device_info
+	branch keyboard_store_device_info+1
+
+p_keyboard_store_otp_device_info:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	rtn positive
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+
+p_keyboard_work_start:
+	setarg 0x0100
+	store 2,mem_lpm_interval
+	jam 0x0c,mem_lpm_overhead
+	branch keyboard_start_work+1
+
+p_kscan_dispatch:
+	call p_keyboard_keyscan
+	call p_keyboard_key_process
+	branch kscan_dispatch+3
+
+p_keyboard_keyscan:
+	call p_keyboard_gpio_init
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value_new
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+	call keyboard_clk_input
+p_keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,p_keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch p_keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+p_keyboard_keyscan_wait_wake_next:
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
+	call gpio_get_bit
+	branch p_keyboard_keyscan_wait_wake_next,true
+	call p_keyboard_keyscan_get_exmcu_value
+	call p_keyboard_keyscan_get_mcu_value
+	call keyboard_clk_input
+	call keyboard_stb_state_high							// exmcu sleep
+p_keyboard_keyscan_copy_value:
+	fetch 2,mem_kb_excol_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_compare_col_excol_gpio_loop:		// loop 12 times
+	ifetcht 1,regb
+	fetch 2,mem_kb_col_ptr
+	copy pdata,rega
+	copy rega,regc
+	arg 20,loopcnt
+p_keyboard_compare_col_gpio_loop:
+	ifetch 1,rega
+	isub temp,null
+	branch keyboard_copy_value_exmcu_to_mcu,zero
+	increase 1,rega
+	loop p_keyboard_compare_col_gpio_loop
+p_keyboard_compare_col_excol_gpio_loop_next:
+	increase 1,regb
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,11,null
+	branch p_keyboard_compare_col_excol_gpio_loop,positive
+	// call keyboard_gpio_pu_idle
+	branch p_keyboard_key_row_init
+
+p_keyboard_copy_value_exmcu_to_mcu:
+	fetch 2,mem_keyscan_value_ptr
+	copy pdata,contw
+	copy rega,pdata
+	isub regc,pdata
+	iadd contw,contw							// offset = rega-regc
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	copy pdata,regc
+	fetch 1,mem_keyscan_col_loop_count
+	iadd regc,regc
+	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
+	istore 1,contw
+	branch p_keyboard_compare_col_excol_gpio_loop_next
+
+
+
+p_keyboard_keyscan_get_mcu_value:
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_keyscan_mcu_start:		// loop 20 times
+	jam 0,mem_keyscan_value_temp
+	ifetcht 1,regb
+	isolate1 7,temp								// exmcu gpio
+	branch p_keyboard_keyscan_mcu_start_loop,true
+	call gpio_out_active
+	call p_keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_set_high_impedance
+
+p_keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch p_keyboard_keyscan_mcu_start,positive
+	rtn
+p_keyboard_keyscan_get_exmcu_value:
+	jam 0,mem_keyscan_col_loop_count
+p_keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
+	call keyboard_clk_state_low
+
+	call p_keyboard_keyscan_exmcu_get_col_value
+	call keyboard_clk_state_high
+
+	call p_keyboard_keyscan_exmcu_get_col_value
+	sub pdata,11,null
+	branch p_keyboard_keyscan_exmcu_start_loop,positive
+	branch keyboard_clk_state_low
+	
+p_keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	call p_keyboard_keyscan_get_col_value
+	fetch 2,mem_keyscan_exmcu_value_ptr
+p_keyboard_keyscan_value_store:
+	copy  pdata,contw
+	fetch 1,mem_keyscan_col_loop_count
+	iadd contw,contw
+	fetch 1,mem_keyscan_value_temp
+	istore 1,contw
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	rtn
+p_keyboard_keyscan_get_col_value:        
+	fetch 2,mem_kb_row_ptr    
+	copy pdata,regc        
+	arg 8,loopcnt      
+p_keyboard_keyscan_get_col_value_loop:              	// loop 8 times
+	ifetcht 1,regc
+	call gpio_out_inactive
+	ifetcht 1,regc
+	call gpio_set_high_impedance
+	nop 240        
+	ifetcht 1,regc       
+	call gpio_get_bit    
+	fetch 1,mem_keyscan_value_temp    
+	rshift pdata,pdata      
+	setflag true,7,pdata       
+	store 1,mem_keyscan_value_temp 
+	increase 1,regc       
+	loop p_keyboard_keyscan_get_col_value_loop
+	rtn
+
+p_keyboard_lpm_before_common:
+	call clear_wake
+
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call gpio_set_wake
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+p_keyboard_key_col_wake_init:
+	ifetcht 1,regb
+	isolate1 7,temp				// exmcu gpio
+	ncall gpio_out_active,true
+	increase 1,regb
+	loop p_keyboard_key_col_wake_init
+
+	call keyboard_gpio_pu_idle
+	jam 0,mem_qdec_set_flag
+
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_key_row_wake_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall p_keyboard_key_row_wake_set,zero
+	ifetcht 1,regb
+	call gpio_set_high_impedance
+	increase 1,regb
+	loop p_keyboard_key_row_wake_init
+
+	call lpm_puchk_set_check
+	call lpm_write_gpio_wakeup
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	branch keyboard_adc_gpio_set_before_hibernate
+
+p_keyboard_key_row_wake_set:
+	fetch 1,mem_same_keyvalue_timerout_flag                                
+	branch gpio_set_wake,blank
+	// branch gpio_set_wake,blank
+	branch gpio_set_wake_by_current_state
+
+p_gpio_set_low_pullup_wakeup:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	arg 3,debug
+	call get_gpio_wakeup_index
+	isolate0 0,temp
+	branch p_gpio_set_low_pullup_low4bit,true
+	lshift4 debug,debug
+p_gpio_set_low_pullup_low4bit:
+	ifetch 1,contw
+	iand alarm,pdata
+	ior debug,pdata
+	istore 1,contw	
+	rtn		
+p_keyboard_gpio_init:
+	call clear_wake
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call device_gpio_config_input_pu
+
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_DISABLE_ICE,pdata
+	call p_lpm_write_ice_disable,true
+		//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+	call p_keyboard_key_row_init
+	call lpm_write_gpio_wakeup
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+p_keyboard_key_cow_init:
+	ifetcht 1,regb
+	isolate1 7,temp						// exmcu gpio
+	ncall gpio_set_high_impedance,true
+	increase 1,regb
+	loop keyboard_key_cow_init
+	rtn
+
+p_keyboard_key_row_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+p_keyboard_key_row_init_loop:
+	ifetcht 1,regb
+	call gpio_set_high_impedance        
+	call p_gpio_clear_low_pullup      
+	increase 1,regb       
+	loop p_keyboard_key_row_init_loop    
+	rtn
+
+p_gpio_clear_low_pullup:     
+	call gpio_set_low_pullup     
+	sub temp,UI_BUTTON_GPIO_DISABLE,null      
+	rtn zero       
+	arg 0,debug      
+	call get_gpio_wakeup_index        
+	isolate0 0,temp        
+	branch gpio_clear_low_pullup_low4bit,true       
+	lshift4 debug,debug
+gpio_clear_low_pullup_low4bit:     
+	ifetch 1,contw        
+	iand alarm,pdata      
+	ior debug,pdata      
+	istore 1,contw             
+	rtn        
+
+p_lpm_write_ice_disable:
+	fetch 1,core_lpm_sysctl
+	set0 ice_mode,pdata
+	store 1,core_lpm_sysctl
+	rtn
+
+p_keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,p_keyboard_device_poweron_030_led
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+
+p_keyboard_device_poweron_030_led:
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_power_led_off,blank
+	branch keyboard_power_led_on
+
+p_keyboard_num_capslock_led_on_timer:
+	//fetch 1,mem_keyboard_device_poweron_timer
+	//rtnne 0
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_num_capslock_led_on_timer_next
+	fetch 1,mem_device_le_bb_connected_flag
+	rtneq 0
+p_keyboard_num_capslock_led_on_timer_next:	
+	fetch 1,mem_keyboard_mode_led_on_timer
+	rtnne 0
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_led_check
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_num_caps_scoll_led_on_timer
+	isub temp,pdata
+	branch p_keyboard_num_cap_scoll_led_check,positive
+	call keyboard_numlock_led_off
+	call keyboard_scrolllock_led_off
+	branch keyboard_capslock_led_off
+
+p_keyboard_num_cap_scoll_led_check:
+	call keyboard_numlock_led_check_on
+	call keyboard_scrolllock_led_check_on
+	branch p_keyboard_capslock_led_check_on
+p_keyboard_capslock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_CAPSLOCK,keyboard_capslock_led_off
+	jam 0,mem_keyboard_device_poweron_timer
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_active
+	
+p_keyboard_bb_event_timer:
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	//led
+	call keyboard_low_voltage_led_timer
+	call p_keyboard_num_capslock_led_on_timer
+	call keyboard_rgb_on_timer
+	call p_keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call p_keyboard_device_pair_led_timer
+	//key
+	call p_keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+
+	// g24
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+
+	//le
+	call keyboard_check_discovery_timeout_timer
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer
+	call keyboard_le_auto_recognize_timer
+
+	call mouse_current_mult_update_timer
+	call keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+	branch keyboard_check_no_data_timeout_timer
+
+p_keyboard_key_press_timer:
+	//fetch 1,mem_keyboard_switch_device_flag
+	//bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,p_keyboard_device_select_g24_press_timer
+	call p_keyboard_device_select_g24_nopress_timer
+	//fetch 1,mem_keyboard_switch_device_flag
+	//bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,p_keyboard_device_select_bt_press_timer
+	branch p_keyboard_device_select_bt_nopress_timer
+
+/*p_keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call g24_interval_param_8ms
+	call p_keyboard_store_device_number
+	call keyboard_stop_bluetooth_mode
+	call app_evt_button_long_pressed
+	branch keyboard_24g_start_pair_mode
+
+p_keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery*/
+
+p_keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call p_keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_store_device_number:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,mouse_write_otp_device_flag
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_device_number
+	rtn
+p_keyboard_keyvalue_chang:
+	call keyboard_keyvalue_normal_replace
+	
+	call p_keyboard_keyvalue_fn_replace
+	call p_keyboard_keyvalue_commbination_replace
+	branch keyboard_keyvalue_change+14
+
+p_keyboard_keyvalue_commbination_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_PRINT_SCREEN,keyboard_commination_screen_shot_replace
+	beq HID_KEY_PAGE_UP,keyboard_commination_pageup_replace
+	beq HID_KEY_PAGE_DOWN,keyboard_commination_pagedown_replace
+	beq HID_KEY_HOME,keyboard_commination_home_replace
+	beq HID_KEY_END,keyboard_commination_end_replace
+	beq HID_KEY_SELECT_ALL,keyboard_commination_select_all
+	beq HID_KEY_COPY,keyboard_commbination_copy
+	beq HID_KEY_PASTE,keyboard_commbination_paste
+	beq HID_KEY_CUT,keyboard_commbination_cut
+	beq HID_KEY_ALL_OS_LOCK,keyboard_commination_os_lock
+	beq HID_KEY_OSK,keyboard_commbination_osk
+	beq HID_KEY_SEARCH,keyboard_commbination_search
+	beq HID_KEY_LANGUAGE,keyboard_commbination_language
+	beq HID_KEY_APP_TILING,keyboard_commbination_app_tiling
+	beq HID_KEY_ALL_OS_HOME,p_keyboard_commination_all_ac_home_replace
+	rtn
+
+p_keyboard_commination_all_ac_home_replace:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_MAC,p_keyboard_value_MAC_home
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,p_keyboard_value_ac_home_key
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_value_MAC_home
+p_keyboard_value_ac_home_key:	
+	setarg HID_KEY_AC_HOME
+	branch keyboard_keyvalue_store_temp
+p_keyboard_value_MAC_home:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_H,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+p_keyboard_keyvalue_fn_replace:
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate1 0,pdata
+	call keyboard_commbination_delay_release_clear,true
+	call p_keyboard_keyvalue_nfn_replace
+	fetch 1,mem_keyboard_fn_flag
+	ncall keyboard_keyvalue_fn_replace_press,blank
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,p_keyboard_fn_lock_check
+	fetch 1,mem_keyboard_fn_lock_flag
+	branch p_keyboard_fn_lock_check+1
+
+p_keyboard_fn_lock_check:
+	fetch 1,mem_keyboard_fn_first
+	fetcht 1,mem_keyboard_fn_flag
+	ixor temp,pdata
+	//fetch 1,mem_kb_computer_system
+	//beq SYSTEM_OS_ANDROID,p_keyboard_fn_lock_check_next
+	//beq SYSTEM_OS_IOS,p_keyboard_fn_lock_check_next
+	rtn zero
+//p_keyboard_fn_lock_check_next:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_ESC,keyboard_keyvalue_fn_esc
+	beq HID_KEY_DELETE,keyboard_keyvalue_fn_delete
+	beq HID_KEY_F1,p_keyboard_keyvalue_f1
+	beq HID_KEY_F2,p_keyboard_keyvalue_f2
+	beq HID_KEY_F3,p_keyboard_keyvalue_f3
+	beq HID_KEY_F4,p_keyboard_keyvalue_f4
+	sub pdata,HID_KEY_F12,null
+	nrtn positive
+	arg HID_KEY_F1,temp
+	isub temp,pdata
+	nrtn positive
+	arg mem_keyboard_fn_f1,contr		//  HID_KEY_F1 <= keyvalue <= HID_KEY_F12
+	iadd contr,contr
+	ifetch 1,contr
+	branch keyboard_keyvalue_store_temp
+	
+p_keyboard_keyvalue_nfn_replace:
+	fetch 1,mem_kb_computer_system
+	rtnne SYSTEM_OS_IOS
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq 0x35,p_keyboard_ios_0x35
+	rtn
+p_keyboard_ios_0x35:
+	fetch 1,mem_keyboard_shift_flag
+	rtneq 1
+	jam 0x40,mem_keyboard_commbination_control_key_value
+	jam 0x35,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+p_keyboard_keyvalue_fn_replace_press:
+	call keyboard_keyvalue_fn_lock_replace
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_UP_ARROW,keyboard_keyvalue_fn_up_arrow
+	beq HID_KEY_DOWN_ARROW,keyboard_keyvalue_fn_down_arrow
+	beq HID_KEY_LEFT_ARROW,keyboard_keyvalue_fn_left_arrow
+	beq HID_KEY_RIGHT_ARROW,keyboard_keyvalue_fn_right_arrow
+	//beq HID_KEY_LEFT_CTRL,keyboard_keyvalue_fn_left_ctrl
+	//beq HID_KEY_SPACE,keyboard_keyvalue_fn_space
+	beq HID_KEY_W,keyboard_keyvalue_os_android
+	beq HID_KEY_E,keyboard_keyvalue_os_windows
+	beq HID_KEY_Q,keyboard_keyvalue_os_ios
+	rtn
+
+p_keyboard_keyvalue_f1:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_keyvalue_ios_back
+	setarg HID_KEY_AC_BACK
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_ios_back:	
+	setarg HID_KEY_LIGHT_DOWN
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_f2:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_keyvalue_ios_f2
+	setarg HID_KEY_MAIL
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_ios_f2:
+	setarg HID_KEY_LIGHT_UP	
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_f3:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_keyvalue_ios_f3
+	beq SYSTEM_OS_ANDROID,p_keyboard_keyvalue_fn_android_f3
+	jam 0x08,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_I,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+p_keyboard_keyvalue_ios_f3:
+	setarg HID_KEY_OS_SOFT_KB	
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_fn_android_f3:
+	setarg HID_KEY_android_set	
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_f4:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_keyvalue_ios_f4
+	setarg HID_KEY_MULTIKEY_MEDIA
+	branch keyboard_keyvalue_store_temp
+p_keyboard_keyvalue_ios_f4:
+	jam 0x0a,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_3,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+p_keyboard_long_button_bt_discovery:
+	fetch 1,mem_device_discovery_timer
+	rtnne 0
+	jam 0,mem_keyboard_led_status
+	call keyboard_capslock_led_off
+	call keyboard_low_voltage_led_off
+	branch keyboard_long_button_bt_discovery+2
+
+/////////////////////////////////////store otp///////////////////////////////////////
+p_keyboard_setting_config_next:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info
+	branch keyboard_setting_config+11
+
+p_keyboard_load_info_check:
+	call p_keyboard_app_initflag_check
+	branch keyboard_load_info_check+2
+
+p_keyboard_app_initflag_check:
+	fetch 1,mem_device_flag
+	arg 0xff,temp
+	isub temp,null
+	branch keyboard_app_initflag_check+4,zero
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+	branch keyboard_app_initflag_check+4
+
+///////////////////////////ATT fix//////////////////////
+p_keyboard_le_parse_att:
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,p_keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2
+
+p_keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	branch keyboard_le_send_att_read_blob_response
+p_keyboard_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,p_keyboard_le_send_att_read_response_check_auth
+//input:temp is handle
+p_keyboard_le_send_att_read_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,p_keyboard_le_send_att_read_response+3
+	bbit0 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL,p_keyboard_le_send_att_read_response_next
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+p_keyboard_le_send_att_read_response_next:
+	fetch 2,mem_le_att_handle
+	beq 0x05,keyboard_le_send_att_appearance
+	beq 0x10,keyboard_le_send_att_pnp_id
+p_keyboard_le_send_att_read_response_next_1:
+	fetcht 2,mem_le_att_handle
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,p_le_send_att_read_response
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_le_send_att_read_response,zero
+	call le_get_search_max_mtu_data
+	fetcht 2,mem_keyboard_le_hid_map
+	copy temp,contr
+	ifetcht 2,contr
+	increase 1,temp
+	call not_greater_than
+	branch p_le_send_att_read_response_less
+
+//input:temp is handle
+p_le_send_att_read_response:
+	call le_att_get_handle_ptr2
+	nbranch le_send_att_error_response_notfound,zero
+	call le_send_att_read_response_check_handle,user
+	rtn user
+	call le_att_get_handle_ptr_found
+	increase -2,contr
+	ifetch 2,contr
+	arg UUID_CHRCTR_DEVICE_NAME,temp
+	isub temp,null
+	branch le_send_device_name,zero
+	copy contr,regc
+	call le_get_search_max_mtu_data
+	copy regc,contr
+	ifetcht 1,contr
+	increase 1,temp
+	call not_greater_than
+p_le_send_att_read_response_less:
+	copy pdata,regc
+	copy pdata,rega
+	call store_contr
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_RESPONSE
+	istore 1,contw
+	fetch 2,mem_le_att_handle
+	beq 0x1f,p_keyboard_reference_hid_report_fix
+	add regc,-1,loopcnt
+	call get_contr
+	branch memcpy
+
+p_keyboard_reference_hid_report_fix:
+	add regc,-1,loopcnt
+	arg mem_keyboard_hid_fix_handle,contr
+	branch memcpy
+
+
+p_keyboard_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_keyboard_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch p_keyboard_le_send_att_read_response_next,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+	////////////////////////////////////motion////////////////////////////////
+p_keyboard_motion_data_check:
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,p_keyboard_value_consumer_release
+	branch keyboard_motion_data_check+3//////////////////////////////////////media/////////////////////////////////////
+p_keyboard_value_tpye_consumer_set:
+	copy temp,pdata
+	jam HID_REPORTID_BIT_CONSUMER_KEY,mem_keyboard_tx_data
+	fetcht 1,mem_keyboard_all_press_key_count
+	sub temp,HID_KEY_NULL,null
+	branch p_keyboard_value_consumer_all_key_release,zero
+	beq 	HID_KEY_MULTIKEY_MEDIA,p_keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,p_keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,p_keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,p_keyboard_value_mute
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,p_keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,p_keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_PALY,p_keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,p_keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,p_keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,p_keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,p_keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,p_keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,p_keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,p_keyboard_value_ac_search
+	beq 	HID_KEY_AC_BACK,p_keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,p_keyboard_value_os_soft_kb
+
+	beq 	HID_KEY_LIGHT_DOWN,p_keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,p_keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,p_keyboard_value_os_lock
+
+	beq 	HID_KEY_MAC_EJECT,p_keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,p_keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,p_keyboard_value_ac_stop
+	//beq 	HID_KEY_AC_REFRESH,p_keyboard_value_ac_refresh
+	beq 	HID_KEY_android_set,p_keyboard_value_android_set
+
+	beq 	HID_KEY_SYSTEM_SLEEP,p_keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_consumer_all_key_release:
+p_keyboard_value_consumer_release:
+	jam 2,mem_keyboard_data_change_flag
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_24g_consumer_release
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_24g_consumer_release:
+	setarg HID_REPORTID_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_media:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_media
+	setarg 0x0183
+
+p_keyboard_24g_standard_data_send:
+	store 2,mem_keyboard_tx_data+1
+	jam HID_REPORTID_CONSUMER_KEY,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_vol_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_down
+	setarg 0x00ea
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_vol_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_up
+	setarg 0x00e9
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mute:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mute
+	setarg 0x00e2
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_pre_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_pre_track
+	setarg 0x00b6
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_next_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_next_track
+	setarg 0x00b5
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_play:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_play
+	setarg 0x00cd
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_stop
+	setarg 0x00b7
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_home:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_home
+	setarg 0x0223
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mail:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mail
+	setarg 0x018a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_my_computer:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_my_computer
+	setarg 0x0194
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_favorites:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_favorites
+	setarg 0x022a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_calculator:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_calculator
+	setarg 0x0192
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_search:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_search
+	setarg 0x0221
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_back:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_back
+	setarg 0x0224
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_soft_kb
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,p_keyboard_value_os_soft_kb_android
+	setarg 0x01ae
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb_android:
+	setarg 0x0307
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_down
+	setarg 0x0070
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_up
+	setarg 0x006f
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_lock:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_lock
+	setarg 0x0030
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mac_eject:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mac_eject
+	setarg 0x00b8
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_forward:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_forward
+	setarg 0x0225
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_stop
+	setarg 0x0226
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_android_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_refresh
+	setarg 0x0306
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_system_sleep:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_system_sleep
+	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
+	setarg 0x02
+	store 1,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+	beq HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+
+/////////////////////////////////////////////////////////////////////////
+p_keyboard_app_enter_hibernate:
+	call keyboard_setgpio_hibernate
+	branch app_enter_hibernate
+
+p_keyboard_key_process:
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch p_keyboard_press_change_or_no_key,zero
+	branch keyboard_key_process+5
+
+p_keyboard_idle:
+	call p_keyboard_evt_ui_timer_check
+	branch keyboard_idle+1
+
+p_keyboard_evt_ui_timer_check:
+	arg 0,rega
+	fetcht 4,mem_keyboard_evt_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+p_keyboard_evt_ui_timer_check_loop:
+	copy regb,pdata
+	increase 40,temp    //40clk = 12.5ms
+	isub temp,null
+	nbranch p_keyboard_evt_ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch p_keyboard_evt_ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call p_keyboard_evt_ui_timer_check_send_evt
+p_keyboard_evt_ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_keyboard_evt_btclk
+	rtn
+
+
+p_keyboard_evt_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -40,temp    //160btclk = 50ms
+	set0 28,temp
+	storet 4,mem_keyboard_evt_btclk
+p_keyboard_evt_ui_timer_check_send_evt:
+	store 1,mem_keyboard_evt_timer_count
+p_keyboard_evt_50ms_loop:
+	fetch 1,mem_keyboard_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_evt_timer_count
+	call p_keyboard_delay_lpm_timer
+	branch p_keyboard_evt_50ms_loop
+
+p_keyboard_delay_lpm_timer:
+	fetch 1,mem_keyboard_delay_lpm_flag
+	rtn blank
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,p_keyboard_delay_lpm_timer_next
+	jam 1,mem_lpm_mode
+p_keyboard_delay_lpm_timer_next:
+	jam 0,mem_keyboard_delay_lpm_flag
+	rtn
+
+p_keyboard_press_change_or_no_key:
+	jam 0,mem_lpm_mode
+	jam 1,mem_keyboard_delay_lpm_flag
+	branch keyboard_press_change_or_no_key
+
+p_g24_transmit_no_interrupt:
+	branch keyboard_g24_transmit_no_interrupt
+
+/*p_keyboard_priority_bb_event:        
+	copy regc,pdata        
+	beq BT_EVT_LE_CONNECTED,p_keyboard_le_bb_event_connected 
+	beq BT_EVT_24G_PAIRING_COMPLETE,p_keyboard_24g_pairing_complete
+	branch keyboard_priority_bb_event+2
+p_keyboard_le_bb_event_connected:       
+	// jam 0,mem_keyboard_pair_led_flag       
+	// jam 0,mem_keyboard_pair_led_blink_count       
+	call keyboard_device_led_off        
+	branch keyboard_le_bb_event_connected
+p_keyboard_24g_pairing_complete:
+	call keyboard_device_led_off
+	branch keyboard_24g_pairing_complete*/
+
+p_keyboard_24g_start_pair_mode:
+	//jam 0,mem_keyboard_device_poweron_timer
+	//call keyboard_power_led_off
+	//call keyboard_device_led_off
+	//call keyboard_numlock_led_off
+	//call keyboard_capslock_led_off
+	call keyboard_low_voltage_led_off
+	call keyboard_pairing_check_otp_offset
+	jam 0,mem_keyboard_data_change_flag
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_reconn_type
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_stop_discovery
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+//////////////////////////////////led///////////////////////////////////
+p_keyboard_device_pair_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_pair_led
+	branch keyboard_device_pair_led_timer+2
+
+p_keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	branch p_keyboard_pair_sucess_led_move,blank
+	branch keyboard_device_pair_led
+
+p_keyboard_pair_sucess_led_move:
+	fetch 1,mem_keyboard_mode_led_on_timer
+	nrtn blank
+	//fetch 1,mem_adc_power_flag
+	//bbit1 0,p_keyboard_pair_sucess_led_move_next
+	fetch 1,mem_keyboard_device_poweron_timer
+	nbranch p_keyboard_pair_sucess_led_move_next,blank
+	fetch 1,mem_keyboard_led_status
+	bbit1 KB_PC_KEYSEL_CAPSLOCK,p_keyboard_pair_sucess_led_move_next
+	branch keyboard_device_24g_led_off
+p_keyboard_pair_sucess_led_move_next:
+	rtn
+//***************************adc***********************//
+p_keyboard_adc_vol_init:
+	fetch 1,mem_keyboard_power_type
+	beq KEYBOARD_BATTARY_1V5,keyboard_adc_vol_1v5_init
+	beq KEYBOARD_BATTARY_3V0,p_keyboard_adc_vol_3v0_init
+	beq KEYBOARD_BATTARY_4V2,keyboard_adc_vol_4v2_init
+	branch keyboard_adc_vol_1v5_init
+
+p_keyboard_adc_vol_3v0_init:
+	setarg 0xbe0122		// 0x0094--3.0V  0x00d4--2.1V  0x00dc--2.2V  0x00e6--2.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x00dc00
+	istore 3,contw
+	rtn
+p_mouse_adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp	
+p_mouse_adc_bat_percent_lowpower_out_battery:
+	call adc_clear_no_power_flag
+	call p_adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall p_adc_set_low_power_flag,positive
+	branch mouse_adc_bat_level_set
+
+p_adc_clear_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 0,temp
+	branch adc_set_power_flag
+
+p_adc_set_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 0,temp
+	branch adc_set_power_flag
+
+p_gpio_set_ds_bit:
+	arg core_gpio_ds,contw
+	and temp,0x07,queue
+	rshift3 temp,pdata
+	and_into 3,pdata
+	iadd contw,contw
+	ifetch 1,contw
+	qset1 pdata
+	istore 1,contw
+	rtn
Index: program/patch_sdk.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/patch_sdk.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/program/patch_sdk.prog	(working copy)
@@ -0,0 +1,18 @@
+define SECURE_CONNECTION
+define NEC
+define DEBUG_RF_INIT
+define COMPILE_SHUTTER
+define COMPILE_MOUSE
+define COMPILE_MODULE
+define COMPILE_USB
+define COMPILE_DONGLE
+define COMPILE_LE
+define COMPILE_24G
+define COMPILE_CAR
+define COMPILE_REMOTE_CAR
+define COMPLIE_ADPCM
+define SDKCODE
+ifdef SDKCODE
+INCLUDE "bt_format"
+org 0x0000  // start from patch ram address start
+endif
Index: sched/1.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/1.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/1.dat	(working copy)
@@ -0,0 +1,530 @@
+#device option
+mem_device_option:06
+#power on config
+mem_ui_button_gpio:ff
+
+mem_le_lap:61 21 20 98 07 2a
+mem_le_name_len:
+'BLE-M3
+
+mem_tx_power:06
+
+//save otp addr
+mem_shutter_efuse_start_offset: b0 1f
+mem_shutter_efuse_end_offset: 70 1a
+
+mem_shutter_le_pairing_handle:2b 00
+
+#默认相机圈
+#mem_initial_move_conf:aa 00 78 00 69 00 38 00
+#左下角
+#mem_initial_move_conf:0a 00 1e 00 07 00 06 00
+#安卓中间，IOS左下角
+mem_initial_move_conf:43 08 4a 0e 07 00 06 00
+
+mem_shutter_dy_conf:01
+#soft switch first power on
+mem_shutter_soft_switch_first_power_on:00
+
+#led config
+mem_shutter_led_on_light_dark_led_conf:
+00		#type:stop blink
+00		#blink count:no blink
+8c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+mem_shutter_led_off_light_dark_led_conf:
+01		#type:start blink
+03		#blink count:no blink
+8c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+
+
+mem_shutter_reconn_blink_on_time_conf:
+20 01
+20 03
+mem_shutter_discovery_blink_on_time_conf:
+20 01
+20 03
+
+#hard_soft_switch config
+mem_shutter_hard_soft_switch_case_temp:00
+mem_shutter_soft_switch_button_gpio_temp:ff
+
+#100ms timera
+mem_shutter_ble_discovery_time_conf:
+b8 0b #discovery_timeout
+70 17 #connect_timeout
+b8 0b #sleep_timeout
+b8 0b #sleep_timer
+
+
+#key config
+mem_shutter_key_num_conf:06
+mem_shutter_dy_key_conf:
+# #test 6key
+# 07
+# 0b
+# 13
+# 14
+# 15
+# 16
+# 0c
+
+# jxy-181
+07	#right
+12 	#like
+13 	#down
+06 	#photo
+08 	#up
+14 	#left
+
+# ff	#right
+# ff 	#like
+# 13 	#down
+# ff 	#photo
+# ff 	#up
+# ff 	#left
+
+mem_combine_key0:
+#6key
+28 00 #left 2
+09 00 #right 2
+18 00 #up 2
+0c 00 #down 2
+
+#6key -key mirror
+#09 00 #left 2
+#28 00 #right 2
+#0c 00 #up 2
+#18 00 #down 2
+
+#7key
+# 60 00 #left 2
+# 41 00 #right 2
+# 50 00 #up 2
+# 44 00 #down 2
+# 00 00
+
+#7key -key mirror
+#41 00 #left 2
+#60 00 #right 2
+#44 00 #up 2
+#50 00 #down 2
+#00 00
+
+
+mem_combine_key_release_value:
+#6key
+# 08 00
+#7key
+40 00
+
+
+mem_shutter_iphone_up_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_like_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_move_mid:
+1e 1e 1f 20 28 28 00
+
+
+mem_key0_press_i:  #right
+00
+mem_key0_release_new_i:
+27 24 24 24 28 23 23 23
+mem_key0_long_press_i:
+04 06 00
+
+mem_key1_press_i:#like
+27 00 28 00
+mem_key1_release_new_i:
+28 28 00
+
+mem_shutter_link_data_i:
+27 28 28 27 28 28 00
+
+mem_key2_press_i:#down
+00
+mem_key2_release_new_i:
+27 26 26 26 28 25 25 25
+
+#toggle between vol-inc and vol-dec
+mem_key3_press_i:#photo
+00
+mem_key3_release_new_i:#volume increment
+#7key
+01 06 00
+#6key
+# 27 01 06 28 00
+mem_key3_release_new_i_t:#volume decrement
+#7key
+02 06 00
+#6key
+# 27 02 06 28 00
+
+mem_key4_press_i:#up
+00
+mem_key4_release_new_i:
+27 25 25 25 28 26 26 26
+
+mem_key5_press_i:#left
+00
+mem_key5_release_new_i:
+27 23 23 23 28 24 24 24
+mem_key5_long_press_i: #lock
+03 06 00
+
+mem_key6_release_new_i:#move
+27 28 00 00
+mem_key6_release_new:#move
+00
+
+mem_dy_key0_press:  #right
+00
+mem_key0_release_new:
+13 14 15 16 17 18 19 1a 1b 00
+mem_key0_long_press:
+05 06 00
+
+mem_dy_key1_press:#like
+0b 11 00
+mem_key1_release_new:
+00
+
+mem_shutter_link_data:#like key loop
+0b 11 00 00 0b 11 00
+
+mem_dy_key2_press: #down
+00
+mem_key2_release_new:
+0f 0e 0d 0c 0b 0a 09 08 07 00
+mem_key2_long_press:#volume decrement
+02 06 00
+mem_key2_long_release:
+1c 1d 00
+
+#toggle between vol-inc and vol-dec
+mem_dy_key3_press:#photo
+00
+mem_key3_release_new:#volume increment
+# 1c 02 06 1d 00 #6key
+01 06 #7key
+mem_key3_release_new_t:#volume decrement
+# 1c 01 06 1d 00 #6key
+02 06 #7key
+
+
+mem_dy_key4_press:#up
+00
+mem_key4_release_new:
+08 09 0a 0b 0c 0d 0e 0f 10 00
+mem_key4_long_press:#volume increment
+01 06 00
+mem_key4_long_release:
+00
+
+
+mem_dy_key5_press:#left
+00
+mem_key5_release_new:
+1a 19 18 17 16 15 14 13 12 00
+mem_key5_long_press: #lock
+03 06 00
+
+mem_combine_key0_press:
+01
+mem_combine_key1_press:
+02
+mem_combine_key2_press:
+03
+mem_combine_key3_press:
+04
+mem_combine_key_release:
+00
+
+mem_move_mode_set:00 #00 combine key, 01 single key when another key has already triggered
+mem_move_mode_key_index:03 #move key index,SHUTTER_MOVE_KEY_NUM,SHUTTER_PHOTO_KEY_NUM
+mem_move_mode_trigger_enable:00
+
+mem_shutter_long_key_released_flag:01
+
+################ble kb val list#######################
+mem_shutter_mousekey_value_list:
+#Media key
+02 1b 00 01 00 00 00 00 00 00 #1 volume increment
+02 1b 00 02 00 00 00 00 00 00 #2 volume decrement
+02 1b 00 04 00 00 00 00 00 00 #3 lock
+02 1b 00 08 00 00 00 00 00 00 #4 ios home
+02 1b 00 10 00 00 00 00 00 00 #5 android home
+02 1b 00 00 00 00 00 00 00 00 #6 release
+#Android Key
+#up down
+06 23 00 02 01 00 00 00 00 00 #7
+06 23 00 03 01 f4 06 20 02 00 #8
+06 23 00 03 01 f4 06 d4 02 00 #9
+06 23 00 03 01 f4 06 28 03 00 #a
+06 23 00 03 01 f4 06 3c 04 00 #b like press
+06 23 00 03 01 f4 06 20 04 00 #c
+06 23 00 03 01 f4 06 74 05 00 #d
+06 23 00 03 01 f4 06 28 06 00 #e
+06 23 00 03 01 f4 06 dc 06 00 #f
+06 23 00 02 01 f4 06 70 07 00 #10
+#like release
+06 23 00 02 01 f4 06 3c 04 00 #11
+#right left
+06 23 00 02 01 f0 08 0f 06 00#12
+06 23 00 03 01 a3 07 0f 06 00#13
+06 23 00 03 01 2c 06 0f 06 00#14
+06 23 00 03 01 2c 05 0f 06 00#15
+06 23 00 03 01 52 04 0f 06 00#16
+06 23 00 03 01 e2 03 0f 06 00#17
+06 23 00 03 01 4f 03 0f 06 00#18
+06 23 00 03 01 4f 02 0f 06 00#19
+06 23 00 03 01 ab 01 0f 06 00#1a
+06 23 00 02 01 01 01 0f 06 00#1b
+#move
+06 23 00 07 04 00 00 00 00 00#1c    //move press
+06 23 00 06 04 00 00 00 00 00#1d    //move release
+
+#ios key
+#ios localinit key
+03 1b 00 01 18 80 00 00 00 00 #1e
+03 1b 00 00 10 80 00 00 00 00 #1f
+03 1b 00 41 40 0a 00 00 00 00 #20 ios init up local
+03 1b 00 41 40 0a 00 00 00 00 #21 ios init like local
+03 1b 00 41 40 0a 00 00 00 00 #22 ios init down/right/left local
+03 1b 00 20 00 00 00 00 00 00 #23 ios left
+03 1b 00 e0 0f 00 00 00 00 00 #24 ios right
+03 1b 00 00 00 02 00 00 00 00 #25 ios up
+03 1b 00 00 00 fe 00 00 00 00 #26 ios down
+
+#mouse key
+03 17 00 01 00 00 00 00 00 00 #27   press
+03 17 00 00 00 00 00 00 00 00 #28   release
+03 1b 00 00 00 00 00 00 00 00 #29 ios move
+03 1b 00 00 00 00 00 00 00 00 #2a ios move double
+
+03 1b 00 01 f8 7f 00 00 00 00 #2b
+03 1b 00 64 00 00 00 00 00 00 #2c
+03 1b 00 00 b0 f9 00 00 00 00 #2d
+mem_shutter_move_data:
+00 00 00  #defualt
+
+mem_ble_shutter_dy_interval_min_android:
+12 00
+15 00
+10 00
+2c 01
+
+mem_ble_shutter_dy_interval_min_ios:
+18 00
+1c 00
+10 00
+2c 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_shutter_le_uuid_sup:
+#Primary service GATT ------
+01 00 02 00 28 02 01 18
+#Service changed
+02 00 02 03 28 01 20
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 00 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+06 00 02 03 28 01 02
+07 00 02 00 2a 13 43 68 69 70 73 65 61 2d 42 4c 45 20 20 20 20 20 20 20 20
+
+#Appearance
+08 00 02 03 28 01 02
+09 00 02 01 2a 02 c1 03
+
+#Peripheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#PNP id
+0d 00 02 03 28 01 02
+0e 00 02 50 2a 07 01 05 0e 00 0a 02 40
+
+#Primary service hid ------
+0f 00 02 00 28 02 12 18
+
+#Protocol mode
+10 00 02 03 28 01 06
+11 00 02 4e 2a 01 01
+
+
+#Hid report
+12 00 02 03 28 01 10
+13 00 02 4d 2a 07 00 00 00 00 00 00 00
+#Client Characteristic
+14 00 02 02 29 02 00 00
+#Report reference
+15 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Hid report id 4
+16 00 02 03 28 01 10
+17 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+18 00 02 02 29 02 00 00
+#Report reference
+19 00 02 08 29 02 04 01 # report id=4, type=1 input
+
+#Hid report id 3
+1a 00 02 03 28 01 10
+1b 00 02 4d 2a 02 00 00
+#Client Characteristic
+1c 00 02 02 29 02 00 00
+#Report reference
+1d 00 02 08 29 02 03 01 # report id=3, type=1 input
+
+#Hid report id 5
+1e 00 02 03 28 01 10
+1f 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+20 00 02 02 29 02 00 00
+#Report reference
+21 00 02 08 29 02 05 01 # report id=5, type=1 input
+
+#Hid report id 6
+22 00 02 03 28 01 10
+23 00 02 4d 2a 05 00 00 00 00 00
+#Client Characteristic
+24 00 02 02 29 02 00 00
+#Report reference
+25 00 02 08 29 02 06 01 # report id=6, type=1 input
+
+#Hid report id 2
+26 00 02 03 28 01 12
+27 00 02 4d 2a 02 00 00
+#00 00 00 00 00
+#Client Characteristic
+28 00 02 02 29 02 00 00
+#Report reference
+29 00 02 08 29 02 02 01 # report id=2, type=1 input
+
+#Report map
+2a 00 02 03 28 01 02
+2b 00 02 4b 2a 01 00
+
+#Hid information
+2c 00 02 03 28 01 02
+2d 00 02 4a 2a 04 11 01 00 01
+
+#Hid control point
+2e 00 02 03 28 01 04
+2f 00 02 4c 2a 01 00
+30 00 02 00 28 02 0f 18
+
+00 00
+
+mem_shutter_le_map_len_android:63 00 #6d 00
+mem_shutter_le_map_len_ios:b7 00
+mem_shutter_le_hid_map:
+05 0c # Usage Page(Consumer) #legth 30
+09 01 # Usage(Consumer Control)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 05 # Report Count(5)
+09 e9 # volume up
+09 ea # volume down
+09 30 # lock
+09 40 # home
+0a 23 02  #home
+81 06 #Input (Data, Variable, Absolute)
+c0 #end
+
+05 0d	#Usage Page (Digitizer)
+09 04 	# Usage(touch screem)
+a1 01 	#Collection (Application)
+85 06	#Report Id (6)
+09 24   #Usage (Stylus)
+a1 02  	#Collection (Logical)
+09 42	#Usage (Tip Switch)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+75 01	#Report Size (1)
+95 01	#Report Count (1)
+81 02 	#Input (Data,Value,Absolute,Bit Field)
+09 32	#Usage (In Range)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+95 06	#Report Count (6)
+81 03 	#Input (Constant,Array,Absolute,Bit Field)
+75 08 #        Report Size (8)
+09 51 #        Usage (Contact identifier)
+95 01 #        Report Count (1)
+81 02 #        Input (Data,Value,Absolute,Bit Field)
+05 01	#Usage Page (Generic Desktop)
+26 ff 0f  #Logical maximum (1'000)
+75 10	#Report Size (16)
+55 0E #Unit Exponent (14)
+65 33 #Unit(51)
+09 30 	#Usage (X)
+35 00   #Physical Minimum (0)
+46 00 10  #Physical maximum (1'205)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+09 31	#Usage (Y)
+46 8a 03  #Physical maximum (906)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+c0		#End Collection
+c0
+
+05 01 #Usage Page (Generic Desktop Controls)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 04 # Report ID(4)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+95 05 # Report Count(5)
+75 01 # Report Size(1)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 05 # Usage Maximum(5)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+81 02 #Input (Data, Variable, Absolute)
+95 01 # Report Count(1)
+75 03 # Report Size(3)
+81 01 #Input (Constant, Array, Absolute)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+05 01  #Usage Page (Generic Desktop Controls)
+09 38 #Usage (Wheel)
+15 81 # Logical Minimum(129)
+25 7f  # Logical Maximum(127)
+81 06 #Input (Data, Variable, Relative)
+05 0c #Usage page (Consumer)
+0a 38 02 	#Usage (AC Pan)
+95 01 # Report Count(1)
+81 06 #INPUT (Data, Variable, Relative)
+c0
+85 05 # Report ID(5)
+09 01 # Usage(Consumer Control)
+a1 00 # Collection(Physical)
+75 0c # Report Size(12)
+95 02 # Report Count(2)
+05 01 #Usage Page (Generic Desktop Controls)
+09 30 #Usage (x)
+09 31 #Usage (y)
+16 01 f8  # Logical Minimum(63489)
+26 ff 07 # Logical Maximum(2047)
+81 06 #Input (Data, Variable, Relative)
+c0 c0
+
+
+##############BLE ATT LIST END####################
+mem_dy_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
Index: sched/1305.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/1305.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/1305.dat	(working copy)
@@ -0,0 +1,56 @@
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:35 3f 64
+mem_lpm_isogate:db 7b 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:00
+mem_lpm_sysctl:08
+mem_lpm_hv_sel:b4
+
+mem_fcomp_div:18
+mem_xtal_c_sel:3e
+mem_gpio_wakeup_cfg:00 00 00 00 00 00 00 00 00 00 00 02
+
+mem_version:08 0e 05 03 00
+mem_le_tx2m_delay:20
+
+mem_rx_window_sniff:00 10
+
+mem_gain_fix:ff	#00:soft agc; ff:hw agc
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
+
+
+#adc config
+mem_adc_config_flag:01
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:00
+#00 ADC_CH_VBAT
+#01 ADC_CH_VDCDC5V
+#06 ADC_CH_GPIO_4
+#07 ADC_CH_GPIO_2
+#08 ADC_CH_GPIO_1
+#09 ADC_CH_GPIO_3
+#0a ADC_CH_GPIO_0
+#0b ADC_CH_GPIO_5
+#0c ADC_CH_GPIO_6
+#0d ADC_CH_GPIO_7
+
+mem_adc_dma_enable:00
+mem_adc_saddr_ptr:00 07
+mem_adc_eaddr_ptr:ff 07
+
+mem_ring_ibias_trim:a0
+mem_ring_ibias_vtune_high:bc 02 #700mv
+mem_ring_ibias_vtune_low:90 01 #400mv
+mem_ring_ibias_calc_adc_gpio:03
+mem_ring_ibias_calc_adc_channel:09
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
+
Index: sched/DM_module.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/DM_module.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/DM_module.dat	(working copy)
@@ -0,0 +1,242 @@
+
+
+mem_device_option:0a
+
+mem_module_connect_state_gpio:FF
+mem_module_mcu_wake_pin:FF
+##############ADC CONFIG##############
+mem_module_read_vdd_count:01
+mem_module_read_vdd_flag:01
+#####################################
+
+##############NVRAM CONFIG##############
+mem_nv_data_ptr:mem_module_nv_data
+mem_nv_data_number:05
+#####################################
+
+
+#####################################
+
+##############UART CONFIG##############
+mem_module_uarta_baud_rate:D0 00
+mem_module_uart_rx_buffer:00 4d
+mem_module_uart_rx_buffer_end:7f 4e
+mem_module_uart_tx_buffer:80 4e
+mem_module_uart_tx_buffer_end:ef 4f
+#####################################
+
+
+
+##############BLUETOOTH CONFIG##############
+###commom###
+mem_soft_version_num:00 11
+mem_module_state:03
+mem_module_bluetooth_stauts_by_command:07
+
+mem_module_flag:00 00
+#bit0 MODULE_FLAG_UART_FLOW_CONTROL
+#bit1 MODULE_FLAG_BLE_SEND_MTU23
+#bit2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+mem_ui_button_gpio:ff
+mem_lpm_mode:01
+mem_lpm_interval:00 01
+mem_lpm_overhead:08
+mem_lpm_mult_timeout:02
+
+mem_module_wake_up_gpio:04
+
+
+
+###ble###
+mem_le_pairing_handle:2a 00
+mem_le_configuration:08
+
+mem_le_adv_channel_map:07
+mem_le_pairing_mode:01
+
+mem_module_ble_data_uart_max_length:f0
+
+mem_le_scan_enable:00
+mem_le_scan_type:01
+mem_le_scan_interval:00 02
+mem_le_scan_window:00 01
+#mem_le_conn_peer_addr:2a 31 00 33 02 3b
+#mem_cmd_le_create_conn:1b
+
+mem_le_adv_enable:01
+mem_le_adv_interval:f0 00
+mem_module_le_lpm_mult:05
+mem_le_lap:11 fa 0d 43 05 13
+mem_le_name_len:
+'Yichip 1121s
+
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0e
+
+mem_le_scan_data:# 1 byte length + 1 byte type + N bytes data
+'\09Yichip 1121s
+
+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_conn_interval:90 00
+mem_le_local_mtu:20 00
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+mem_le_local_feature:21 09 
+mem_le_tx_phys:0707
+#####################################
+
+
+mem_ui_le_uuid_table:mem_module_le_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_module_le_att_list:
+#Primary service GAP ------
+01 00 02 00 28 02 00 18
+
+
+#Appearance
+02 00 02 03 28 01 02
+03 00 02 01 2a 02 c8 00 #3c2=hid mouse
+
+#Device name
+04 00 02 03 28 01 02
+05 00 02 00 2a 14 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20 20
+
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+
+#privcy flag
+08 00 02 03 28 01 02
+09 00 02 02 2a 01 01
+
+#reconnecting addr 
+0a 00 02 03 28 01 08
+0b 00 02 03 2a 06 00 00 00 00 00 00
+
+#Primary service GATT ------
+0c 00 02 00 28 02 01 18
+
+#Service changed
+0d 00 02 03 28 01 20
+0e 00 02 05 2a 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+
+#Primary service TX power ------
+10 00 02 00 28 02 04 18
+#Characteristic Tx power level
+11 00 02 03 28 01 16
+12 00 02 07 2a 01 00
+13 00 02 02 29 02 00 00
+
+#Primary service Battery ------
+14 00 02 00 28 02 0f 18
+#Characteristic Battery level
+15 00 02 03 28 01 12
+16 00 02 19 2a 01 38
+
+#Primary service device infomation
+17 00 02 00 28 02 0a 18
+#Characteristic system id
+18 00 02 03 28 01 02
+19 00 02 23 2a 03 00 00 00
+
+#Characteristic manufactor name
+1a 00 02 03 28 01 02
+1b 00 02 29 2a 06 79 69 63 68 69 70
+
+#Characteristic module number
+1c 00 02 03 28 01 02
+1d 00 02 24 2a 06 79 69 63 68 69 70
+
+#Characteristic serial number
+1e 00 02 03 28 01 02
+1f 00 02 25 2a 04 63 6f 6d 33
+
+#Characteristic firmware version
+20 00 02 03 28 01 02
+21 00 02 26 2a 03 31 2e 30
+
+#Characteristic software version
+22 00 02 03 28 01 02
+23 00 02 28 2a 03 31 2e 30
+
+#Characteristic hardware version
+24 00 02 03 28 01 02
+25 00 02 2a 2a 03 31 2e 30
+
+#Characteristic regulatory version
+26 00 02 03 28 01 02
+27 00 02 25 2a 04 63 6f 6d 33
+
+#Primary service yichip transmit ------
+28 00 02 00 28 10 55 e4 05 d2 af 9f a9 8f e5 4a 7d fe 43 53 53 49
+#Characteristic tx--notify read
+29 00 02 03 28 01 12
+2a 00 10 16 96 24 47 C6 23 61 BA D9 4B 4D 1E 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+2b 00 02 02 29 02 00 00
+
+#Characteristic rx--write
+2c 00 02 03 28 01 08
+2d 00 10 b3 9b 72 34 be ec d4 a8 f4 43 41 88 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx-- write without Response
+2e 00 02 03 28 01 04
+2f 00 10 fe 69 ca 9a 56 19 f6 ab 02 4d aa 6d 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx tx --read write notify
+30 00 02 03 28 01 2a
+31 0010 18 03 A6 28 5E D8 EC 91 1C 48 A3 AC 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+32 00 02 02 29 02 00 00
+
+
+#End of Attribute list
+00 00
+
+#mem_le_wechat_air_sync_ptr:mem_module_wechat_indication_handle
+#mem_module_wechat_indication_handle:35 38 
+
+#mem_module_wechat_tx_buffer_ptr:mem_wechat_tx_buffer
+#mem_module_wechat_rx_buffer_ptr:mem_wechat_rx_buffer
+
+#mem_le_adv_data_len:03
+#mem_le_adv_data:
+#02 
+#01 #GAP_ADTYPE_FLAGS
+#06 #GAP_ADTYPE_FLAGS_GENERAL |GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED
+
+#05 
+#02 #GAP_ADTYPE_16BIT_MORE
+#E7 FE 00 18
+
+#09 
+#FF #GAP_ADTYPE_MANUFACTURER_SPECIFIC
+#0e 05 #Yichip Microelectronics (Hangzhou) Co.,Ltd.
+#81 E8 2F 96 FD 64
+
+#mem_le_scan_data_len:0e
+
+#mem_le_scan_data:# 1 byte length + 1 byte type + N bytes data
+#'\09Yichip 1305 le
+
+
+
+#eeprom gpio config
+
+
+
Index: sched/adpcm.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/adpcm.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/adpcm.dat	(working copy)
@@ -0,0 +1,95 @@
+
+mem_ad_indexTable:ff ff ff ff 02 04 06 08 ff ff ff ff 02 04 06 08
+
+mem_ad_stepsizeTable:
+07 00 00 00
+08 00 00 00
+09 00 00 00
+0a 00 00 00
+0b 00 00 00
+0c 00 00 00
+0d 00 00 00
+0e 00 00 00
+10 00 00 00
+11 00 00 00
+13 00 00 00
+15 00 00 00
+17 00 00 00
+19 00 00 00
+1c 00 00 00
+1f 00 00 00
+22 00 00 00
+25 00 00 00
+29 00 00 00
+2d 00 00 00
+32 00 00 00
+37 00 00 00
+3c 00 00 00
+42 00 00 00
+49 00 00 00
+50 00 00 00
+58 00 00 00
+61 00 00 00
+6b 00 00 00
+76 00 00 00
+82 00 00 00
+8f 00 00 00
+9d 00 00 00
+ad 00 00 00
+be 00 00 00
+d1 00 00 00
+e6 00 00 00
+fd 00 00 00
+17 01 00 00
+33 01 00 00
+51 01 00 00
+73 01 00 00
+98 01 00 00
+c1 01 00 00
+ee 01 00 00
+20 02 00 00
+56 02 00 00
+92 02 00 00
+d4 02 00 00
+1c 03 00 00
+6c 03 00 00
+c3 03 00 00
+24 04 00 00
+8e 04 00 00
+02 05 00 00
+83 05 00 00
+10 06 00 00
+ab 06 00 00
+56 07 00 00
+12 08 00 00
+e0 08 00 00
+c3 09 00 00
+bd 0a 00 00
+d0 0b 00 00
+ff 0c 00 00
+4c 0e 00 00
+ba 0f 00 00
+4c 11 00 00
+07 13 00 00
+ee 14 00 00
+06 17 00 00
+54 19 00 00
+dc 1b 00 00
+a5 1e 00 00
+b6 21 00 00
+15 25 00 00
+ca 28 00 00
+df 2c 00 00
+5b 31 00 00
+4b 36 00 00
+b9 3b 00 00
+b2 41 00 00
+44 48 00 00
+7e 4f 00 00
+71 57 00 00
+2f 60 00 00
+ce 69 00 00
+62 74 00 00
+ff 7f 00 00
+
+
Index: sched/ble_car_att_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/ble_car_att_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/ble_car_att_list.dat	(working copy)
@@ -0,0 +1,204 @@
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+11
+55
+43
+48
+4f
+4e
+20
+30
+31
+20
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c8
+00
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+f0
+ff
+10
+00
+02
+03
+28
+01
+12
+11
+00
+02
+f1
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+12
+00
+02
+02
+29
+02
+00
+00
+13
+00
+02
+03
+28
+01
+08
+14
+00
+02
+f2
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
\ No newline at end of file
Index: sched/ble_shutter_gatt_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/ble_shutter_gatt_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/ble_shutter_gatt_list.dat	(working copy)
@@ -0,0 +1,313 @@
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+13
+43
+68
+69
+70
+73
+65
+61
+2d
+42
+4c
+45
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c1
+03
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+12
+18
+10
+00
+02
+03
+28
+01
+06
+11
+00
+02
+4e
+2a
+01
+01
+12
+00
+02
+03
+28
+01
+12
+13
+00
+02
+4d
+2a
+02
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+02
+01
+16
+00
+02
+03
+28
+01
+12
+17
+00
+02
+4d
+2a
+02
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+03
+01
+1a
+00
+02
+03
+28
+01
+02
+1b
+00
+02
+4b
+2a
+1b
+05
+0c
+09
+01
+a1
+01
+85
+02
+09
+e9
+09
+ea
+09
+e2
+09
+30
+15
+01
+25
+0c
+75
+10
+95
+01
+81
+00
+c0
+1c
+00
+02
+03
+28
+01
+02
+1d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+1e
+00
+02
+03
+28
+01
+04
+1f
+00
+02
+4c
+2a
+01
+00
+20
+00
+02
+00
+28
+02
+0f
+18
+21
+00
+02
+03
+28
+01
+12
+22
+00
+02
+19
+2a
+01
+63
+00
+00
\ No newline at end of file
Index: sched/ble_shutter_key_value_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/ble_shutter_key_value_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/ble_shutter_key_value_list.dat	(working copy)
@@ -0,0 +1,40 @@
+02
+13
+00
+02
+00
+02
+13
+00
+01
+00
+02
+13
+00
+04
+00
+02
+13
+00
+06
+00
+02
+13
+00
+05
+00
+02
+13
+00
+00
+00
+02
+17
+00
+00
+28
+02
+17
+00
+00
+00
Index: sched/car.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/car.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/car.dat	(working copy)
@@ -0,0 +1,134 @@
+mem_device_option:0e
+mem_tx_power: 0a
+#0x00 TX_POWER_0DB
+#0x03 TX_POWER_3DB
+#0x05 TX_POWER_5DB
+#0x07 TX_POWER_7DB
+#0x0a TX_POWER_10DB
+
+#0x83 TX_POWER_F3DB
+#0x85 TX_POWER_F5DB
+#0x8a TX_POWER_F10DB
+#0x94 TX_POWER_F20DB
+
+
+mem_24g_tx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_rx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_ch_map1:04 14 24 34
+mem_24g_ch:20
+#2402Mhz + mem_24g_ch
+
+mem_factory_control_flag:01
+mem_car_full_control_remote_lap:ff ff ff ff
+
+mem_car_pwm_gpio:10
+
+mem_24g_addr:00 00 00 00
+
+
+mem_le_lap:ff ff ff ff 01 21
+mem_stop_4w1_flag:01
+#mem_rf_debug_rx_gpio:8a
+
+mem_le_adv_channel_map:07
+
+
+mem_le_scan_enable:
+00   #scan enable
+0a 00  #scan interval
+08 00  #scan window
+
+mem_le_adv_enable:
+01
+mem_le_adv_interval:f0 00
+
+mem_le_local_feature:01 08
+mem_le_tx_phys:84
+mem_le_rx_phys:84
+##############BLUETOOTH CONFIG##############
+mem_lpm_mode:00
+#mem_lpm_interval:00 01    #unit: 0.625ms
+mem_lpm_overhead:08   
+mem_lpm_mult:05
+mem_lpm_mult_timeout:02
+
+mem_le_name_len:
+'GP4WCAR_
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+02 01 05
+
+mem_le_interval_min:
+08 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+
+mem_queue_ptr: mem_car_le_queue_each_size
+
+mem_car_le_queue_each_size:
+14     #queue �ĵ���Ԫ�صĳ���
+04     #queue �Ķ��г���
+00     #queue current num
+00     #queue read ptr
+00     #queue write ptr
+
+
+#####################################
+
+
+mem_ui_le_uuid_table:mem_car_ble_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_car_ble_att_list:
+#Primary service yichip transmit ------
+01 00 02 00 28 02 01 18   #0x1801 GATT Service------Generic Access<16-bit UUID Numbers Document.pdf>
+#Service Changed
+02 00 02 03 28 01 20    #0x20 properties------notify
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 01 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+06 00 02 03 28 01 4e
+07 00 02 00 2a 13 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20
+
+#Apperance
+08 00 02 03 28 01 4e
+09 00 02 01 2a 02 00 00
+
+#Perpheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 10 00 20 00 05 00 2c 01
+
+#Primary service yichip transmit ------
+0c 00 02 00 28 02 f0 ff
+
+#Characteristic tx--notify&read
+0d 00 02 03 28 01 12
+0e 00 02 f1 ff 04 00 00 00 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+#Characteristic rx--write
+10 00 02 03 28 01 08
+11 00 02 f2 ff 01 00
+00 00   
+
+
Index: sched/dongle.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/dongle.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/dongle.dat	(working copy)
@@ -0,0 +1,69 @@
+
+mem_device_option:04
+mem_ui_button_gpio:ff
+
+
+#efuse size:28 bytes
+
+#sys config
+#bit7:enable 16M xtal#0:24M#1:16M
+#bit6:enable new channel map
+#bit5:enable eeprom
+#bit4:enable kb icon
+#bit3:enable 24g 2M
+#bit2-0:retention
+mem_dg_sys_config:00  #24M
+
+#24g new process #default value 00,if need new process set value 01
+mem_24g_disable_fec1:00
+mem_dg_24g_tx_power_default:06	#6dBm
+
+#usb config
+#mem_dg_usb_vid_pid:
+#00 #disable
+#mouse only#auto pair
+#51 31#VID
+#20 10#PID
+#mouse & keyboard
+#51 31#VID
+#20 30#PID
+#mem_dg_usb_tx_interval:00
+#mem_dg_usb_device_name:
+#'123456
+
+
+#rf config
+mem_24g_lap:36 26 10 30 12 23#low 4B used for 24g rxaddr
+#mem_24g_tx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+#mem_24g_rx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+#mem_24g_no_ack:00#no ack
+mem_24g_rx_window:78 69#rx
+mem_24g_hop_interval:1e
+#mem_24g_ackpayload_enable:00#ack payload enable
+#mem_24g_ch_map1:00 13 2c 42
+#mem_24g_ch_map2:06 15 36 48
+#mem_24g_ch_map3:0f 1a 3a 4c
+#mem_24g_ch_map4:11 23 31 4d
+#mem_24g_pair_switch:00
+mem_24g_pair_mode:00
+#mem_24g_pair_ch:4e
+#mem_24g_pair_tx_power:85
+#mem_24g_pair_addr:20 15 10 05
+#mem_24g_ch_map_update:00
+#mem_24g_ch_update_map1
+#mem_24g_ch_update_map2
+#mem_24g_ch_update_map3
+#mem_24g_ch_update_map4
+
+#mem_rssi_buff_index:ff
+#mem_rssi_noise_buffer_ptr:mem_dg_rssi_noise_buffer
+#mem_rssi_noise_self_buffer_ptr:mem_dg_rssi_noise_dg_buffer
+#mem_rssi_noise_device1_buffer_ptr:mem_dg_rssi_noise_ms_buffer
+#mem_rssi_noise_device2_buffer_ptr:mem_dg_rssi_noise_kb_buffer
+
+
+
+#mem_rf_debug_rx_gpio:8c
+#mem_rf_debug_tx_gpio:8b
+
+
Index: sched/ff.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/ff.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/ff.dat	(working copy)
@@ -0,0 +1,88 @@
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
Index: sched/fpga.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/fpga.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/fpga.dat	(working copy)
@@ -0,0 +1,28 @@
+mem_xtal_freq:18
+mem_le_adv_enable:01
+
+mem_rx_window_sniff:00 0e
+
+mem_version:08 0e 05 03 00
+
+mem_le_lap:11 22 35
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0b
+mem_le_scan_data:
+'\09FPGA1121S
+
+mem_le_adv_interval:20 00
+mem_le_scan_window:20 00
+mem_le_scan_type:01
+mem_le_adv_own_addr_type:01
+mem_le_adv_channel_map:07
+
+mem_device_option:05
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
Index: sched/gatt.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/gatt.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/gatt.dat	(working copy)
@@ -0,0 +1,85 @@
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip transmit ------
+12 00 00 28 02 f0 18
+#Characteristic tx--notify
+13 00 03 28 01 12
+14 00 f1 2a 14	# for Android device, ATT MTU is just 23 bytes, so payload is 20 bytes max
+'Test read initial va
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic rx--write
+16 00 03 28 01 0c
+17 00 f0 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#End of Attribute list
+00 00
+
+mem_le_adv_enable:01
+mem_le_adv_data_len:03
+
+mem_le_adv_data:02 01 05
+#flags NOTE: should be included here, or Android will not do connectgatt()
+
+
+mem_le_scan_data_len:17
+
+mem_le_scan_data:	# 1 byte length + 1 byte type + N bytes data
+
+#complete local name
+0e 09 
+#'Ast LE2Serial
+'YiChip BLE2IR
+
+#16bit uuid
+03 03 00 f0
+
+#Apperance
+03 19 40 02
+
+
+mem_le_adv_interval:00 08 
+mem_le_adv_channel_map:07 
+
+mem_24g_lap:77 11 00 33 00 00
+
Index: sched/hci_boot.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/hci_boot.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/hci_boot.dat	(working copy)
@@ -0,0 +1,7 @@
+
+mem_device_option:0c
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
Index: sched/keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/keyboard.dat	(working copy)
@@ -0,0 +1,769 @@
+mem_keyboard_flag:
+#byte 0
+#bit0 KEYBOARD_24G_PAIRING_FLAG
+#bit1 KEYBOARD_STORE_MEMORY_FLAG
+#bit2 KEYBOARD_LOW_VOLTAGE_FLAG
+#bit3 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit4 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+00
+
+#byte 1
+#bit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+#bit1 KEYBOARD_ENABLE_16M
+#bit2 KEYBOARD_DISABLE_ICE
+#bit3 KEYBOARD_ENABLE_ADC
+#bit4 KEYBOARD_ENABLE_FLASH
+#bit5 KEYBOARD_ENABLE_2K_EEPROM
+#bit6 KEYBOARD_ENABLE_EEPROM
+#bit7 KEYBOARD_ENABLE_OTP
+69
+
+#byte 2
+#bit0 KEYBOARD_ENABLE_24G
+#bit1 KEYBOARD_ENABLE_AUTO_24G_PARING
+#bit2 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit4 KEYBOARD_ENABLE_24G_2M_PHY
+#bit5 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+05
+
+#byte 3
+#bit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+#bit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit2 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+01
+
+#byte 4
+#bit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+#bit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+#bit2 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+#bit3 KEYBOARD_ENABLE_MOUSE
+#bit4 KEYBOARD_ENABLE_USB
+00
+
+#byte 5
+#bit0 KEYBOARD_ENABLE_030_POWER_LED
+#bit1 KEYBOARD_ENABLE_LOW_LED
+#bit2 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+#bit3 KEYBOARD_ENABLE_BACKLIGHT
+03
+
+#byte 6
+#bit0 KEYBOARD_ENABLE_FN_ARROW
+#bit1 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+#bit2 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+#bit3 KEYBOARD_ENABLE_FN_OS_SWITCH
+#bit4 KEYBOARD_ENABLE_FN_LOCK
+0f
+
+#byte 7
+#bit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+#bit2 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+#bit3 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+#bit4 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+00
+
+
+mem_device_option:0f
+mem_power_on_flag:01
+
+
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:01
+
+#rf
+mem_tx_power:01	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_rssi_buff_index:07
+mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
+mem_rssi_dis_min_24g_init:85
+mem_rssi_dis_max_24g_init:90
+mem_rssi_dis_min_ble_init:75
+mem_rssi_dis_max_ble_init:80
+mem_rssi_hex_received_max_value_init:63
+mem_power_ctrl_pac_succ_cnt_init:7d
+
+#usb
+mem_keyboard_usb_vid_pid:
+01 #enable
+#mouse only#auto pair
+51 31#VID
+10 50#PID
+#mouse & keyboard
+51 31#VID
+20 50#PID
+
+#2.4g
+mem_24g_lap: 03 11 36 55 51 61
+mem_24g_data_type:02	#01--mouse  02--keyboard
+mem_24g_fast_conn_enable:01
+mem_24g_fast_conn_addr:0f 0f 0f 0f
+mem_24g_ch_map_update:00   #00--disable   01--enable
+mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
+mem_24g_disable_fec1:00	 #00--default mode  01--new process
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+mem_device_24g_pair_tx_power:94 #-20dBm
+
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:0a 00	#1s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_device_24g_search_dongle_time_init:32 00	#3mins
+mem_store_information_delay_timer_init:02
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+#bt
+mem_lpm_mode:01
+mem_lpm_mult:10
+mem_lpm_mult_init:10
+
+
+#ble
+mem_le_lap:73 83 92 a1 b1 c1
+mem_le_adv_channel_map:07
+
+mem_le_battery_level_updata_timer_init:96 00
+mem_le_keyboard_handle:15 00
+mem_le_notify_handle:19 00
+mem_le_multimedia_handle:1d 00
+mem_le_systemctrl_handle:21 00
+mem_le_pairing_handle:28 00
+mem_le_battery_level_handle:30 00
+mem_keyboard_hid_fix_handle:05 01
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#flag
+02 01 05
+#uuid
+03 03 12 18
+#appearance
+03 19 c1 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+#06 ff 06 00 03 00 80
+#name
+'\09BT KEYBOARD
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BT KEYBOARD
+
+#max 20bytes, att list data rom limits
+mem_le_name_len:
+'BT KEYBOARD
+
+mem_le_interval_min:
+08 00 #min interval
+08 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_le_search_mac_manu_name:
+41 70 70 6c 65 20 49 6e 63
+mem_le_search_mac_uuid:
+0a 18
+mem_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+mem_keybord_appearance:c1 03
+
+mem_keyboard_le_change_vid_pid_flag:
+01			# 00:disable    01:enable
+02
+e8 04		# vid: 04 e8
+21 70		# pid: 70 21
+01 00
+
+mem_keyboard_blob_response_consumer_customize:
+09 b8 		#bit4  MAC EJECT
+0a 25 02 		#bit5  AC Forward
+0a 26 02 		#bit6  AC Stop
+0a 24 02 		#bit6  AC Back
+
+81 02
+c0
+05 01
+09 06
+a1 01
+85 02
+
+#adc
+
+#adc config
+mem_keyboard_power_type:01 #00 1v5; 01 3v0; 02 4v2
+mem_adc_config_flag:01
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:00
+#00 ADC_CH_VBAT
+#01 ADC_CH_VDCDC5V
+#06 ADC_CH_GPIO18
+#07 ADC_CH_GPIO10
+#08 ADC_CH_GPIO9
+#09 ADC_CH_GPIO12
+#0a ADC_CH_GPIO6
+#0b ADC_CH_GPIO20
+#0c ADC_CH_GPIO21
+#0d ADC_CH_GPIO22
+#0e ADC_CH_GPIO13
+
+mem_adc_dma_enable:00
+mem_adc_saddr_ptr:00 07
+mem_adc_eaddr_ptr:ff 07
+
+#led
+mem_keyboard_device_poweron_timer_init:1e
+
+#system
+mem_device_24g_power_on_fast_conn_timer:02 00	#1s
+mem_device_24g_reconn_timeout_init:64 #10s
+mem_device_24g_pair_timeout_init:58 02  #1min
+mem_device_fast_direct_timeout:64 #10s
+mem_device_direct_timeout:64  #10s
+mem_device_discovery_timeout:58 02  #1min
+mem_device_no_data_timeout:70 17   #10mins
+mem_adc_low_volatage_led_blink_timer:64 00 #10s
+mem_keyboard_pair_led_blink_count:05	#500ms
+mem_keyboard_low_volatage_led_blink_count:02		#200ms
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+
+mem_device_flag:00	#00--24g 01--ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 00 00
+
+mem_device_number:01
+mem_keyboard_switch_device_to_g24:01  7f 1f		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt1:01  7f 1e		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt2:00  7f 20		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt3:00  7f 21		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_usb:00  7f 22
+
+#rgb
+mem_rgb_on_color:
+07		#white
+01		#blue
+02		#green
+04		#red
+03		#cyan
+05		#purple
+06		#orange
+
+mem_customize_timer_setup: 50 00  	# n*0.3125ms
+mem_keyboard_num_caps_scoll_led_on_timer:58 02		#1min
+
+mem_rgb_pwm_conf:
+13	#pwm gpio
+01	#pwm channel
+a0	#three  byte frequency
+0f
+00
+1e 	#duty cycle (by percent %)
+
+mem_keyboard_led_r_gpio:ff #13
+mem_keyboard_led_g_gpio:ff #14
+mem_keyboard_led_b_gpio:ff #15
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:00					#                 00                                    00                                 01
+# mem_config_select_device_button_gpio:ff			#              00~16			               ff					ff
+mem_keyboard_commbination_key_bt:ff ff			#		 not care				   not care			     Fn+C
+mem_keyboard_commbination_key_24g:ff ff		#		 not care				   not care			     Esc+Q
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+mem_eeprom_wp_gpio:ff
+mem_eeprom_scl_gpio:03
+mem_eeprom_sda_gpio:02
+mem_eeprom_base:10 00
+mem_flash_base:00 50 00
+mem_otp_read_retention_max_size:20 03
+
+
+mem_keyboard_caps_led_gpio:81
+mem_keyboard_num_led_gpio:ff
+mem_keyboard_power_led_gpio:81
+mem_keyboard_low_voltage_alarm_gpio:80
+mem_keyboard_scroll_led_gpio:ff
+mem_keyboard_24g_led_gpio:81
+mem_keyboard_bt1_led_gpio:81
+mem_keyboard_bt2_led_gpio:ff
+mem_keyboard_bt3_led_gpio:ff
+
+#mem_rf_debug_rx_gpio:96
+#mem_rf_debug_tx_gpio:89
+
+
+mem_mcu_stb_gpio:0b			#IOB0
+mem_mcu_clk_gpio:0a				#IOB1
+mem_mcu_rstb_gpio:ff
+
+mem_keyboard_pb_button_gpio:0c
+mem_device_reuse_2ice_gpio:05
+#portA:8x,portB:cx,fixed conf,don't change
+mem_key_excol_gpio:c2 c1 85 84 83 82 81 80 c7 c6 c4 c3   #fx0012
+
+#gpio00~16
+mem_key_row_gpio:
+06		#r0
+07		#r1
+08		#r2
+15		#r3
+14		#r4
+13		#r5
+12		#r6
+11		#r7
+
+#gpio00~16   portA:8x,portB:cx
+mem_key_col_gpio:
+84		#c0
+10		#c1
+0f		#c2
+0e		#c3
+0d		#c4
+c2		#c5
+c3		#c6
+c4		#c7
+c7		#c8
+80		#c9
+81		#c10
+85		#c11
+c6		#c12
+c5		#c14
+82		#c15
+83 		#c16
+ff		#c13
+ff		#c17
+ff		#c18
+ff		#c19
+ff		#c20
+
+mem_keyboard_keyvalue_map:
+#r0 ~ r7
+#A  B  C    D   E    F   G  H
+00 00 00 00 e6 00 7f 3e #A   
+14 2b 04 29 1d 00 35 1e #B
+1a 39 16 00 1b 00 3a 1f #C
+08 3c 07 3d 06 00 3b 20 #D
+15 17 09 0a 19 05 22 21 #E
+18 1c 0d 0b 10 11 23 24 #F
+0c 30 0e 3f 36 00 2e 25 #G
+12 40 0f 00 37 00 41 26 #H
+13 2f 33 34 00 38 2d 27 #I
+00 00 e0 e3 00 e7 00 45 #J
+00 2a 31 00 28 00 42 43 #K
+00 00 00 2c 44 51 4c 00 #L
+00 00 00 00 00 4f 00 00 #M
+00 00 00 52 00 50 00 00 #N
+00 e1 e5 00 00 00 00 00 #O
+00 e2 00 00 00 00 00 00 #P
+00 00 00 00 00 00 00 00 #QS
+
+mem_keyboard_fn_first:	00			#fn first  00:press f1~f12=f1~f12      01:press fn+f1~f12=f1~f12
+mem_keyboard_fn_esc:	af			#esc
+mem_keyboard_fn_f1: 3a			#f1
+mem_keyboard_fn_f2:	3b			#f2
+mem_keyboard_fn_f3:	3c			#f3
+mem_keyboard_fn_f4:	3d			#f4
+mem_keyboard_fn_f5:	ad			#f5
+mem_keyboard_fn_f6:	ab			#f6
+mem_keyboard_fn_f7:	ec			#f7
+mem_keyboard_fn_f8:	ee			#f8
+mem_keyboard_fn_f9:	ed			#f9
+mem_keyboard_fn_f10:	eb			#f10
+mem_keyboard_fn_f11:	e9			#f11
+mem_keyboard_fn_f12:	ea			#f12
+mem_keyboard_fn_del:	a9			#delete
+mem_keyboard_fn_lock_keyvalue:29
+
+mem_keyboard_le_table:
+#att table
+# 01 00 02 00 28  # Primary Service Declaration
+# 02 00 18        # Generic Access Service (UUID: 0x1800)
+# 02 00 02 03 28  # Characteristic Declaration
+# 01 0a           # Properties: Read, Write
+# 03 00 02 00 2a  # Device Name Characteristic (UUID: 0x2A00)
+# 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+# 04 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 05 00 02 01 2a  # Appearance Characteristic (UUID: 0x2A01)
+# 02 c1 03        # Value: 0x03C2 (Generic Keyboard)
+
+# 06 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 07 00 02 04 2a  # Peripheral Preferred Connection Parameters (UUID: 0x2A04)
+# 08 06 00 06 00  # Minimum Connection Interval: 0x0006 (7.5ms)
+# 64 00           # Maximum Connection Interval: 0x0064 (100ms)
+# 2c 01           # Slave Latency: 0x012C (300)
+
+# 08 00 02 00 28  # Primary Service Declaration
+# 02 01 18        # Generic Attribute Service (UUID: 0x1801)
+# 09 00 02 03 28  # Characteristic Declaration
+# 01 20           # Properties: Indicate
+# 0a 00 02 05 2a 01 00 # Service Changed Characteristic (UUID: 0x2A05)
+# 0b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+
+# 0c 00 02 00 28  # Primary Service Declaration
+# 02 0a 18        # Battery Service (UUID: 0x180F)
+# 0d 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 0e 00 02 29 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 06 59 69 43 68 69 70  # Value: Battery Level Data
+
+# 0f 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 10 00 02 50 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 07 02 e8 04 21 70 01 00  # Value: HID Information Data
+
+# 11 00 02 00 28  # Primary Service Declaration
+# 02 12 18        # HID Service (UUID: 0x1812)
+# 12 00 02 03 28  # Characteristic Declaration
+# 01 06           # Properties: Read, Write Without Response
+# 13 00 02 4e 2a  # Report Map Characteristic (UUID: 0x2A4B)
+# 01 01           # Value: Report Map Data
+
+# 14 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 15 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+# 16 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 17 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 01        # Value: Report ID and Type
+
+# 18 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 19 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 07 00 00 00 00 00 00 00  # Value: Report Data
+# 1a 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 1b 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 01 01        # Value: Report ID and Type
+
+# 1c 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 1d 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 1e 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 1f 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 05 01        # Value: Report ID and Type
+
+# 20 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 21 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 22 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 23 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 04 01        # Value: Report ID and Type
+
+# 24 00 02 03 28  # Characteristic Declaration
+# 01 0e           # Properties: Read, Write
+# 25 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 26 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 02        # Value: Report ID and Type
+
+# 27 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 28 00 02 4b 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# f5 05 0c 09 01 a1 01 85 05  # Value: HID Control Point Data
+# 15 00 25 01 75 01 95 18
+# 0a 83 01 09 ea 09 e9 09 e2
+# 09 b6 09 b5 09 cd 09 b7
+# 0a 23 02 0a 8a 01 0a 94 01
+# 0a 2a 02 0a 92 01 0a 21 02
+# 0a 24 02 0a 07 03 0a ae 01
+# 09 70 09 6f 09 30 09 b8
+# 0a 25 02 0a 26 02 0a 27 02
+# 81 02 c0
+
+# 05 01 09 06 a1 01 85 02  # HID Keyboard Input Report
+# 75 01 95 08 05 07 19 e0 29 e7
+# 15 00 25 01 81 02 95 01 75 08
+# 81 03 95 05 75 01 05 08 19 01
+# 29 05 91 02 95 01 75 03 91 03
+# 95 06 75 08 15 00 26 ff 00
+# 05 07 19 00 2a ff 00 81 00
+# c0
+
+# 05 01 09 02 a1 01 85 01  # HID Mouse Input Report
+# 09 01 a1 00 05 09 19 01 29 08
+# 15 00 25 01 75 01 95 08 81 02
+# 05 01 09 30 09 31 16 01 f8
+# 26 ff 07 75 10 95 02 81 06
+# 09 38 15 81 25 7f 75 08 95 01
+# 81 06 05 0c 0a 38 02 95 01
+# 81 06 c0 c0
+
+# 05 01 09 80 a1 01 85 04  # HID System Control Input Report
+# 15 00 25 01 75 01 95 03 19 81
+# 29 83 81 02 95 01 75 05 81 03
+# c0
+# 29 00 02 03 28  # Characteristic Declaration
+# 01 1a           # Properties: Read, Notify
+# 2a 00 02 33 2a  # Report Characteristic (UUID: 0x2A33)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+
+# 2b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 01 00        # Value: 0x0001 (Notifications Enabled)
+
+# 2c 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 2d 00 02 4a 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 04 01 01 00 03  # Value: HID Information Data
+
+# 2e 00 02 00 28  # Primary Service Declaration
+# 02 0f 18        # Battery Service (UUID: 0x180F)
+
+# 2f 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 30 00 02 19 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 01 64           # Value: Battery Level (100%)
+
+# 31 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 32 00 02 03 28  # Characteristic Declaration
+# 01 04           # Properties: Write Without Response
+# 33 00 02 4c 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# 00 00 00        # Value: HID Control Point Data
+
+#se map
+af 00              # Feature
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 06        # Usage (Keyboard)
+A1 01        # Collection (Application)
+85 02        #   Report ID (2)
+75 01        #   Report Size (1)
+95 08        #   Report Count (8)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 E0        #   Usage Minimum (0xE0)
+29 E7        #   Usage Maximum (0xE7)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 08        #   Report Size (8)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 05        #   Report Count (5)
+75 01        #   Report Size (1)
+05 08        #   Usage Page (LEDs)
+19 01        #   Usage Minimum (Num Lock)
+29 05        #   Usage Maximum (Kana)
+91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 01        #   Report Count (1)
+75 03        #   Report Size (3)
+91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 06        #   Report Count (6)
+75 08        #   Report Size (8)
+15 00        #   Logical Minimum (0)
+26 FF 00  #   Logical Maximum (255)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 00        #   Usage Minimum (0x00)
+29 FF        #   Usage Maximum (0xFF)
+81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+05 0C        # Usage Page (Consumer)
+09 01        # Usage (Consumer Control)
+A1 01        # Collection (Application)
+85 03        #   Report ID (3)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 18        #   Report Count (24)
+0A 83 01  #   Usage (AL Consumer Control Configuration)
+09 EA        #   Usage (Volume Decrement)
+09 E9        #   Usage (Volume Increment)
+09 E2        #   Usage (Mute)
+09 B6        #   Usage (Scan Previous Track)
+09 B5        #   Usage (Scan Next Track)
+09 CD        #   Usage (Play/Pause)
+09 B7        #   Usage (Stop)
+0A 23 02  #   Usage (AC Home)
+0A 8A 01  #   Usage (AL Email Reader)
+0A 94 01  #   Usage (AL Local Machine Browser)
+0A 2A 02  #   Usage (AC Bookmarks)
+0A 92 01  #   Usage (AL Calculator)
+0A 21 02  #   Usage (AC Search)
+0A 24 02  #   Usage (AC Back)
+0A 07 03  #   Usage (0x0307)
+0A AE 01  #   Usage (AL Keyboard Layout)
+09 70        #   Usage (0x70)
+09 6F        #   Usage (0x6F)
+09 30        #   Usage (Power)
+09 B8        #   Usage (Eject)
+0A 25 02  #   Usage (AC Forward)
+0A 26 02  #   Usage (AC Stop)
+0A 06 03  #   Usage (AC Refresh)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#af 00             # Feature
+
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 E0        #   Usage Minimum (0xE0)
+# 29 E7        #   Usage Maximum (0xE7)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF  #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 80        # Usage (Sys Control)
+A1 01        # Collection (Application)
+85 04        #   Report ID (4)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 03        #   Report Count (3)
+19 81        #   Usage Minimum (Sys Power Down)
+29 83        #   Usage Maximum (Sys Wake Up)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 05        #   Report Size (5)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#sb map
+# af 00             # Feature
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 E0        #   Usage Minimum (0xE0)
+# 29 E7        #   Usage Maximum (0xE7)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF        #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# 05 0C        # Usage Page (Consumer)
+# 09 01        # Usage (Consumer Control)
+# A1 01        # Collection (Application)
+# 85 03        #   Report ID (3)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 18        #   Report Count (24)
+# 0A 83 01  #   Usage (AL Consumer Control Configuration)
+# 09 EA        #   Usage (Volume Decrement)
+# 09 E9        #   Usage (Volume Increment)
+# 09 E2        #   Usage (Mute)
+# 09 B6        #   Usage (Scan Previous Track)
+# 09 B5        #   Usage (Scan Next Track)
+# 09 CD        #   Usage (Play/Pause)
+# 09 B7        #   Usage (Stop)
+# 0A 23 02  #   Usage (AC Home)
+# 0A 8A 01  #   Usage (AL Email Reader)
+# 0A 94 01  #   Usage (AL Local Machine Browser)
+# 0A 2A 02  #   Usage (AC Bookmarks)
+# 0A 92 01  #   Usage (AL Calculator)
+# 0A 21 02  #   Usage (AC Search)
+# 0A 24 02  #   Usage (AC Back)
+# 0A 07 03  #   Usage (0x0307)
+# 0A AE 01  #   Usage (AL Keyboard Layout)
+# 09 70        #   Usage (0x70)
+# 09 6F        #   Usage (0x6F)
+# 09 30        #   Usage (Power)
+# 09 B8        #   Usage (Eject)
+# 0A 25 02  #   Usage (AC Forward)
+# 0A 26 02  #   Usage (AC Stop)
+# 0A 27 02  #   Usage (AC Refresh)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# # 05 0C        # Usage Page (Consumer)
+# # 09 01        # Usage (Consumer Control)
+# # A1 01        # Collection (Application)
+# # 85 03        #   Report ID (3)
+# # 19 00        #   Usage Minimum (Unassigned)
+# # 2A FF 03  #   Usage Maximum (0x03FF)
+# # 15 00        #   Logical Minimum (0)
+# # 26 FF 03  #   Logical Maximum (1023)
+# # 95 01        #   Report Count (1)
+# # 75 10        #   Report Size (16)
+# # 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# # C0              # End Collection
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 80        # Usage (Sys Control)
+# A1 01        # Collection (Application)
+# 85 04        #   Report ID (4)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 03        #   Report Count (3)
+# 19 81        #   Usage Minimum (Sys Power Down)
+# 29 83        #   Usage Maximum (Sys Wake Up)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 05        #   Report Size (5)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+# 120 bytes
+
Index: sched/keyboard_ble_hid_map_magic_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/keyboard_ble_hid_map_magic_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/keyboard_ble_hid_map_magic_keyboard.dat	(working copy)
@@ -0,0 +1,188 @@
+ba
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+05
+ff
+09
+03
+75
+08
+95
+01
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
\ No newline at end of file
Index: sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat	(working copy)
@@ -0,0 +1,204 @@
+ca
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+06
+a1
+01
+85
+01
+95
+70
+75
+01
+15
+00
+25
+01
+05
+07
+19
+00
+2a
+ff
+00
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
\ No newline at end of file
Index: sched/keyboard_ble_hid_map_only_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/keyboard_ble_hid_map_only_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/keyboard_ble_hid_map_only_keyboard.dat	(working copy)
@@ -0,0 +1,178 @@
+b0
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
\ No newline at end of file
Index: sched/le_prcp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/le_prcp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/le_prcp.dat	(working copy)
@@ -0,0 +1,77 @@
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip PRCP ------
+12 00 00 28 02 f1 18
+#Characteristic device tx
+13 00 03 28 01 12
+14 00 f3 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic device rx
+16 00 03 28 01 0e
+17 00 f2 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09
+'Yichip Temp
+ 03 19 40 02 02 01 05 02 0a 00 03 03 f1 18
+mem_le_scan_data_len:00
+#mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
+
+
+mem_le_adv_interval:20 00 
+mem_le_adv_type:00 
+mem_le_adv_own_addr_type:01 
+mem_le_adv_direct_addr:00 00 00 00 00 00 
+mem_le_adv_channel_map:07 
+
+mem_le_notify_handle:14
+
+mem_lpm_mode:00
+#mem_lpm_ctrl:0f 0f 10 06
+mem_lpm_xtalcnt:0c 10 ca 1f
+mem_device_option:0d
+mem_le_lap:45 67 78 89 90 56
+
Index: sched/le_transmit_uuid.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/le_transmit_uuid.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/le_transmit_uuid.dat	(working copy)
@@ -0,0 +1,62 @@
+mem_device_option: 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip transmit ------
+12 00 00 28 02 f0 18
+#Characteristic tx--notify
+13 00 03 28 01 12
+14 00 f1 2a 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic rx--write
+16 00 03 28 01 0c
+17 00 f0 2a 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09 52 74 72 69 76 72 5f 52 36 32 31 03 19 40 02 02 01 05 02 0a 00 03 03 00 f0
+mem_le_scan_data_len:00
+mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
Index: sched/mouse.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/mouse.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/mouse.dat	(working copy)
@@ -0,0 +1,337 @@
+mem_mouse_flag:
+#mouse flag byte1
+#bit0 MOUSE_SELECT_DEVICE_FLAG
+#bit1 MOUSE_24G_PAIRING_FLAG
+#bit2 MOUSE_STORE_EEPROM_FLAG
+#bit3 MOUSE_BT_CANNEL_RECONN_FLAG
+#bit4 MOUSE_LOW_VOLTAGE_FLAG
+#bit5 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit6 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+#bit7 MOUSE_ENABLE_SPI2
+04
+
+#mouse flag byte2
+#bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+#bit1 MOUSE_ENABLE_2K_EEPROM
+#bit2 MOUSE_ENABLE_WAKEUP_FROM_POWER
+#bit3 MOUSE_ENABLE_16M
+#bit4 MOUSE_ENABLE_USB
+#bit5 MOUSE_ENABLE_24G_SEARCH_DONGLE
+#bit6 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+#bit7 MOUSE_ENABLE_24G
+e5
+
+#mouse flag byte3
+#bit0 MOUSE_ENABLE_FLASH
+#bit1 MOUSE_ENABLE_EEPROM
+#bit2 MOUSE_ENABLE_OTP
+#bit3 MOUSE_ENABLE_ADC
+#bit4 MOUSE_ENABLE_KEYBOARD
+#bit5 MOUSE_ENABLE_DOUBLE_DPI_KEY
+#bit6 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+01
+
+#mouse flag byte4
+#bit0 MOUSE_ENABLE_24G_250Hz
+#bit1 MOUSE_ENABLE_24G_500Hz
+#bit2 MOUSE_ENABLE_24G_1000
+#bit3 MOUSE_ENABLE_BT_125Hz
+#bit4 MOUSE_ENABLE_DPI_LEVEL_4
+#bit5 MOUSE_ENABLE_USB_250
+#bit6 MOUSE_ENABLE_USB_500
+#bit7 MOUSE_ENABLE_USB_1000
+00
+
+#mouse flag byte5
+#bit0 MOUSE_ENABLE_1IO2LED
+#bit1 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+#bit2 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+#bit3 MOUSE_ENABLE_LOW_LED
+#bit4 MOUSE_ENABLE_LOW_FOR_LED
+#bit5 MOUSE_ENABLE_DPI_FOR_LED
+00
+
+#mouse flag byte6 
+#bit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+#bit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+#bit2 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit3 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+#bit4 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+#bit5 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+#bit6 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+#bit7 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN
+00
+
+#mouse flag byte7
+#bit0 MOUSE_ENABLE_AUTO_24G_PARING
+#bit1 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+#bit2 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit3 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit4 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+#bit5 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+#bit6 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+#bit7 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+01
+
+#mouse flag byte8
+#bit0 MOUSE_ENABLE_SMOOTHER
+#bit1 MOUSE_ENABLE_XY_OFFSET
+#bit2 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit4 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+#bit5 MOUSE_ENABLE_24G_2M_PHY
+#bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+1b
+
+
+mem_device_switch_gpio:ff
+mem_device_reuse_2ice_gpio:05
+mem_sensor_motion_gpio:ff
+mem_whee_a_data_gpio:ff
+mem_whee_b_data_gpio:ff
+
+mem_mouse_param_config:
+06 #mem_lbutton_gpio
+0b #mem_mbutton_gpio
+0c #mem_rbutton_gpio
+06 #mem_bk_button_gpio
+0b #mem_fw_button_gpio
+0c #mem_dpi_button_gpio
+12 #mem_mouse_sensor_sclk_gpio
+13 #mem_mouse_sensor_sdio_gpio
+ff #mem_select_sensor_angle_gpio
+00 #mem_sensor_angle_default
+00 #mem_sensor_angle_gnd
+00 #mem_sensor_angle_vin
+00 #mem_config_sensor_dpi	#power on default dpi 00--1200  01--1600
+ff #mem_whee_ta_data_gpio
+ff #mem_whee_tb_data_gpio
+ff #mem_matrix_public_gpio
+ff #mem_config_select_device_button_gpio
+ff #mem_customer_key_gpio
+ff #mem_firebutton_gpio
+ff #mem_dpi_another_button_gpio
+ff #mem_mouse_logo_led_gpio
+ff #mem_mouse_1io2led_multi_24gled
+ff #mem_mouse_1io2led_multi_bt1led
+ff #mem_mouse_1io2led_multi_bt2led
+ff #mem_mouse_low_voltage_alarm_gpio
+ff #mem_mouse_dpi_gpio
+
+#mouse sensor angle
+#0x00 MOUSE_6CLK_ANGLE
+#0X01 MOUSE_9CLK_ANGLE
+#0X02 MOUSE_12CLK_ANGLE
+#0X03 MOUSE_3CLK_ANGLE
+
+
+#1io2led multi start
+#time parm
+mem_mouse_le_reconn_blink_limit:00		#00:disable 	01:enable
+mem_mouse_multi_led_powon_timer_init:14	#2s
+mem_mouse_multi_24gled_blink_timer_init:05			#24gled blink time		500ms on,500ms off
+mem_mouse_multi_le_discovery_blink_timer_init:02		#le discovery blink time	500ms on,500ms off
+mem_mouse_multi_le_reconn_blink_timer_init:05			#le reconn blink time		500ms on,500ms off
+mem_mouse_low_led_blink_timer:14				#low blink time			1000ms on,1000ms off
+mem_mouse_dpi_led_blink_timer_init:02			#dpi blink time			200ms on,200ms off
+#blink count=count/2
+mem_mouse_multi_24gled_blink_count_init:02		#24g count
+mem_mouse_multi_le_reconn_blink_count_init:06	#le reconn count
+mem_mouse_multi_lowled_blink_count_init:0a		#low count=count
+mem_mouse_dpi_led_delay_count_init:0a		#1s
+#1io2led multi end
+
+#time parm
+mem_mouse_logo_led_on_time_init:58 02	#1min
+mem_device_24g_pair_timeout_init:2c 01  #30s	    24g reconn timer&pair timer
+mem_device_24g_reconn_timeout_init:0a #1s
+mem_device_24g_power_on_fast_conn_timer:05 00	#500ms
+mem_device_direct_timeout:32  #05s
+mem_device_discovery_timeout:b0 04	#2min
+mem_device_fast_direct_timeout:0a #1s
+mem_device_no_data_timeout:70 17   #10mins
+
+#device parm
+mem_device_option:08
+mem_device_number:01   #01--only 2.4g   02--2.4g+ble
+
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_init:20
+
+mem_device_set_analog_bit_set:00 00 00
+
+mem_device_flag:
+00		#00--24g 01--bt
+34
+ff ff ff ff ff ff			#eeprom need
+mem_device2_type:
+34
+ff ff ff ff ff ff			#eeprom need
+mem_device3_type:
+34
+ff ff ff ff ff ff			#eeprom need
+
+mem_customer_key_press_init:
+#05 00 01 00 00 00 00 00 00 00#AC Home
+#05 00 00 02 00 00 00 00 00 00#Volume Down
+#05 00 00 04 00 00 00 00 00 00#Volume Up
+#00 0a 00 72 00 00 00 00 00#copilot=win+shift+f23
+#00 05 00 04 00 00 00 00 00#CTRL+ALT+A
+#02 01 00 00 00 00 00 00 00 #POWERDOWN
+00 08 00 07 00 00 00 00 00#One-click desktop
+#03 ea 00 00 00 00 00 00 00 #VOL DOWN
+
+#adc
+mem_device_vdd_full_vol:dc 05		#1.5V
+84 03#mem_device_vdd_empty_vol  :0.9V
+e8 03#mem_device_vdd_low_vol   :1.0V
+#mem_device_vdd_full_vol:e4 0c		#3.3V
+#b8 0b#mem_device_vdd_empty_vol  :3.0V
+#80 0c#mem_device_vdd_low_vol   :3.2V
+
+mem_adc_channel_gpio:04
+#04
+#02
+#01
+#03
+#00
+#05
+#06
+#07
+
+#bit0:mouse_key_l    bit1:mouse_key_r  bit2:mouse_key_m
+mem_mouse_commbination_key_24g:03
+mem_mouse_commbination_key_bt:07
+mem_mouse_commbination_key_dpi:ff
+mem_mouse_commbination_key_select_device:ff
+mem_mouse_commbination_dpi_timer:1e	#3s
+mem_mouse_commbination_select_device_timer:1e	#3s
+
+#ui
+mem_ui_button_timeout:1e
+
+#2.4g
+mem_24g_lap: 11 11 31 41 51 61
+mem_24g_fast_conn_addr:0f 0f 0f 0f
+mem_24g_ch_map_update:00   #00--disable   01--enable
+mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+
+mem_mouse_24g_fast_hop_count_2ms:09	#report 500hz
+mem_mouse_24g_tsniff_2ms:c0 5d 00 00
+
+mem_mouse_24g_short_sleep_set_4ms:ee 4d 00	#1662us
+mem_mouse_24g_long_sleep_set_4ms:80 bb 00
+mem_mouse_24g_tsniff_4ms:80 bb 00 00
+
+mem_mouse_24g_short_sleep_set_8ms:70 11 01	#SB:70 11 01	SA:60 ea 00
+mem_mouse_24g_long_sleep_set_8ms:00 77 01
+mem_mouse_24g_tsniff_8ms:00 77 01 00
+
+mem_device_24g_pair_tx_power:94 #-20dBm
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:2c 01	#30s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_device_24g_search_dongle_time_init:64 00	#10s
+mem_store_information_delay_timer_init:05
+
+mem_mouse_long_mult_count:01
+
+#ble
+mem_le_lap:71 81 91 a1 b1 c1
+mem_le_adv_channel_map:07
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+mem_le_battery_level_updata_timer_init:96 00
+
+mem_le_keyboard_handle:15 00
+mem_le_notify_handle:19 00
+mem_le_multimedia_handle:13 00
+mem_le_systemctrl_handle:21 00
+mem_le_pairing_handle:2d 00
+mem_le_battery_level_handle:30 00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#flag
+02 01 05 
+#uuid
+03 03 12 18 
+#appearance
+03 19 c2 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80	
+#name
+'\09BT5.2 Mouse
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BT5.2 Mouse
+
+
+mem_le_name_len:
+'BT5.2 Mouse
+
+mem_le_name_patch_len:	#max 18bytes
+'BT5.2 Mouse
+
+mem_le_interval_min:
+07 00 #min interval
+07 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+#mem_le_adv_interval:01 00
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_flash_base:00 50 00
+mem_eeprom_base:80 1f
+mem_eeprom_block_size:80
+
+#otp write info offset
+mem_otp_offset_device_flag:96 06
+mem_otp_offset_device_flag_end:bf 06
+
+mem_otp_offset_24g_addr:c0 06
+mem_otp_offset_24g_addr_end:f9 06
+
+mem_otp_offset_le_addr1:fa 06
+mem_otp_offset_le_addr1_end:53 07
+
+mem_otp_offset_le_locall_addr1:54 07
+mem_otp_offset_le_locall_addr1_end:8f 07
+
+mem_otp_offset_le_addr2:90 07
+mem_otp_offset_le_addr2_end:e9 07
+
+mem_otp_offset_le_locall_addr2:ea 07
+mem_otp_offset_le_locall_addr2_end:43 08
+
+mem_otp_offset_dpi:44 08
+mem_otp_offset_dpi_end:73 08
+
+mem_otp_offset_le_addr_increase_count:74 08
+mem_otp_offset_le_addr_increase_count_end:d8 08
+
+mem_otp_offset_app_initflag:aa 08
+
+#usb
+mem_usb_offline_check_gpio:ff
+
+#rf
+mem_tx_power:00	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_rssi_buff_index:07
+mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
+mem_rssi_dis_min_24g_init:85
+mem_rssi_dis_max_24g_init:90
+mem_rssi_dis_min_ble_init:75
+mem_rssi_dis_max_ble_init:80
+mem_rssi_hex_received_max_value_init:63
+mem_power_ctrl_pac_succ_cnt_init:7d
+
+
Index: sched/mouse_ble_att_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/mouse_ble_att_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/mouse_ble_att_list.dat	(working copy)
@@ -0,0 +1,682 @@
+01
+00
+02
+00
+28
+02
+00
+18
+02
+00
+02
+03
+28
+01
+0a
+03
+00
+02
+00
+2a
+14
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+02
+03
+28
+01
+02
+05
+00
+02
+01
+2a
+02
+c2
+03
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+08
+00
+02
+00
+28
+02
+01
+18
+09
+00
+02
+03
+28
+01
+20
+0a
+00
+02
+05
+2a
+00
+0b
+00
+02
+02
+29
+02
+00
+00
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+02
+03
+28
+01
+02
+10
+00
+02
+50
+2a
+07
+02
+35
+12
+22
+aa
+01
+00
+11
+00
+02
+00
+28
+02
+12
+18
+12
+00
+02
+03
+28
+01
+06
+13
+00
+02
+4e
+2a
+01
+01
+14
+00
+02
+03
+28
+01
+12
+15
+00
+02
+4d
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+16
+00
+02
+02
+29
+02
+00
+00
+17
+00
+02
+08
+29
+02
+02
+01
+18
+00
+02
+03
+28
+01
+1a
+19
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+1a
+00
+02
+02
+29
+02
+00
+00
+1b
+00
+02
+08
+29
+02
+01
+01
+1c
+00
+02
+03
+28
+01
+12
+1d
+00
+02
+4d
+2a
+02
+00
+00
+1e
+00
+02
+02
+29
+02
+00
+00
+1f
+00
+02
+08
+29
+02
+03
+01
+20
+00
+02
+03
+28
+01
+12
+21
+00
+02
+4d
+2a
+02
+00
+00
+22
+00
+02
+02
+29
+02
+00
+00
+23
+00
+02
+08
+29
+02
+04
+01
+24
+00
+02
+03
+28
+01
+0e
+25
+00
+02
+4d
+2a
+02
+00
+00
+26
+00
+02
+08
+29
+02
+02
+02
+27
+00
+02
+03
+28
+01
+02
+28
+00
+02
+4b
+2a
+f5
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+f8
+26
+ff
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+29
+00
+02
+03
+28
+01
+1a
+2a
+00
+02
+33
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+2b
+00
+02
+02
+29
+02
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+01
+01
+00
+03
+2e
+00
+02
+00
+28
+02
+0f
+18
+2f
+00
+02
+03
+28
+01
+12
+30
+00
+02
+19
+2a
+01
+64
+31
+00
+02
+02
+29
+02
+00
+00
+32
+00
+02
+03
+28
+01
+04
+33
+00
+02
+4c
+2a
+00
+00
+00
\ No newline at end of file
Index: sched/mouse_sensor.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/mouse_sensor.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/mouse_sensor.dat	(working copy)
@@ -0,0 +1,166 @@
+
+mem_mouse_dpi_seting:
+03##mem_320x_dpi_0  	1200/1300
+04##mem_320x_dpi_1  	1600
+01##mem_320x_dpi_2   800
+02##mem_320x_dpi_3  	1000
+
+20##mem_3212_dpi_0	1200
+2a##mem_3212_dpi_1	1600
+3f ##mem_3212_dpi_2	2400
+15##mem_3212_dpi_3   800
+
+14##mem_ka8g2_dpi_0	1200
+1b##mem_ka8g2_dpi_1	1600
+11##mem_ka8g2_dpi_2	1000
+0e##mem_ka8g2_dpi_3	800
+
+mem_sensor_s201_dpi:
+8a  ##1200
+8b  ##1600
+83  ##2400
+84  ##3200
+88  ##800
+
+mem_sensor_3212_init:
+09 5a
+26 34
+19 04
+09 00
+ff ff
+
+#################sensor parm init#################
+
+
+mem_sensor_3204_init:
+09 5a
+0d f0
+1d e3
+7d d2
+ff ff
+
+mem_sensor_3205_init:
+09 5a
+0d 10
+1d ed
+7d 80
+ff ff
+
+mem_sensor_32xx_init:
+1b 35
+28 b4
+29 46
+2a 96
+2b 8c
+2c 6e
+2d 64
+38 5f
+39 0f
+3a 32
+3b 47
+42 10
+ff ff
+
+mem_sensor_32xx_init_1:
+54 2e
+55 f2
+61 f4
+63 70
+75 52 
+76 41
+77 ed
+78 23
+79 46
+7a e5
+7c 48
+7e 77
+7f 01
+0b 00
+7f 00
+09 00
+ff ff
+
+mem_sensor_8650_init:
+09 5a
+ff 27
+ab 40
+be d1
+a0 41
+a1 12
+a7 ff
+b6 00
+b5 c8
+a5 af
+ff 00
+09 00
+ff ff
+
+mem_sensor_p6520_init:
+05 b9
+09 5a
+0b 72
+0c 52
+09 00
+ff ff
+
+mem_sensor_ka8ul_init:
+09 5a
+0d 10
+0e c5
+5b 9a
+10 38
+11 42
+28 28
+41 23
+49 39
+4a b0
+4b a0
+4c 90
+4d 70
+09 00
+ff ff
+
+mem_sensor_8009_init:
+09 5a
+06 02
+09 69
+0d 48
+0e 9f
+0f ba
+09 00
+ff ff
+
+mem_sensor_ka8g2_init:
+09 a5
+26 34
+19 04
+60 07
+69 04
+7d 20
+7e 00
+09 00
+ff ff
+
+mem_sensor_ka5857_init:
+09 a5
+46 34
+6a c0
+69 24
+09 00
+ff ff
+
+mem_sensor_poweron_init:
+09 5a
+0b f3
+09 00
+ff ff
+
+mem_ka8g2_sensor_poweron_init:
+09 a5
+0b f3
+09 00
+ff ff
+
+
+
+
Index: sched/otp_set.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/otp_set.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/otp_set.dat	(working copy)
@@ -0,0 +1,11 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
Index: sched/rec.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/rec.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/rec.dat	(working copy)
@@ -0,0 +1,501 @@
+
+mem_device_option:0b
+mem_ui_button_gpio:ff
+
+mem_tx_power:05
+
+###########################LED INITIAL##########################
+mem_ui_led_struct_num:01
+mem_ui_led_struct_ptr:mem_rec_led_style
+
+mem_rec_led_style:
+00		#type:stop blink 00---blink stop   01---blink start   02---lighting  03---darking  04---blink lighting  05---blink darking
+00		#blink count:no blink
+07		#led gpio number
+a0 01	#led blink light time, uint 0.625ms
+a0 01	#led blink dark time
+
+mem_rec_le_pair_led_style:
+01		#type:blink start
+ff		#blink count:no blink
+07		#led gpio number
+80 02	#led blink light time 400ms
+80 02	#led blink dark time		
+
+mem_rec_le_reconn_led_style:
+01		#type:blink start
+ff		#blink count:no blink
+07		#led gpio number
+60 04	#led blink light time 700ms
+60 04	#led blink dark time
+
+mem_rec_adc_low_led_style:
+01		#type:blink start
+03		#blink count:no blink
+07		#led gpio number
+40 01	#led blink light time 200ms
+40 01	#led blink dark time	
+
+mem_rec_led2_style:
+01		#type:blink start
+ff		#blink count:no blink
+ff		#led gpio number
+60 04	#led blink light time 700ms
+60 04	#led blink dark time
+
+
+###########################QUEUE INIT############################
+mem_queue_ptr:mem_rec_queue_each_size
+mem_rec_queue_each_size:01 20
+
+
+###########################TSCAN INITIAL##########################
+mem_rec_tscan_gpio_nums:06
+mem_rec_tscan_row_nums:05
+mem_rec_tscan_col_nums:05
+mem_rec_tscan_row_gpio:0d 0e 0c 0a 08
+mem_rec_tscan_col_gpio:0b 0d 0e 0c 0a 08
+
+mem_rec_gpio_wakeup_source:07	#tri-angle keyscan matrix check
+
+mem_rec_gnd_key_offset:0f
+
+mem_rec_key_map:01 02 04 07 0b 03 05 08 0c 06 09 0d 0a 0e 0f 
+
+mem_rec_tscan_key_nums_list:
+01 01 #k01
+02 01 #k02
+04 01 #k04
+08 01 #k07
+10 01 #k11
+01 02 #k03
+02 02 #k05
+04 02 #k08
+08 02 #k12
+01 04 #k06
+02 04 #k09
+04 04 #k13
+01 08 #k10
+02 08 #k14
+01 10 #k15
+00 00 #end
+
+mem_rec_tscan_gndkey_nums_list:
+01
+02
+04
+08
+10
+20
+40
+00
+
+mem_rec_combin_key_timeout:14		#2s
+mem_rec_tscan_combin_key_num_bit:42 00 00 00 00 00 00 00	#key2+key5 0x0042, key8+key13 0x0880
+
+
+###########################NEC INITIAL##########################
+mem_rec_nec_send_gpio:03
+
+
+###########################OTA INITIAL##########################
+mem_rec_code_a_flash_addr:00 60 00
+mem_rec_code_b_flash_addr:00 f0 00
+
+mem_rec_ota_notify_handle:48 00
+mem_rec_ota_queue_size:00 05 
+
+mem_rec_ota_le_conn_update_param:
+06 00
+06 00
+2b 01
+b0 04
+
+
+###########################ADPCM INITIAL##########################
+mem_rec_ad_indexTable1:ff ff ff ff 02 04 06 08 ff ff ff ff 02 04 06 08
+
+mem_rec_ad_stepsizeTable1:
+07 00 00 00
+08 00 00 00
+09 00 00 00
+0a 00 00 00
+0b 00 00 00
+0c 00 00 00
+0d 00 00 00
+0e 00 00 00
+10 00 00 00
+11 00 00 00
+13 00 00 00
+15 00 00 00
+17 00 00 00
+19 00 00 00
+1c 00 00 00
+1f 00 00 00
+22 00 00 00
+25 00 00 00
+29 00 00 00
+2d 00 00 00
+32 00 00 00
+37 00 00 00
+3c 00 00 00
+42 00 00 00
+49 00 00 00
+50 00 00 00
+58 00 00 00
+61 00 00 00
+6b 00 00 00
+76 00 00 00
+82 00 00 00
+8f 00 00 00
+9d 00 00 00
+ad 00 00 00
+be 00 00 00
+d1 00 00 00
+e6 00 00 00
+fd 00 00 00
+17 01 00 00
+33 01 00 00
+51 01 00 00
+73 01 00 00
+98 01 00 00
+c1 01 00 00
+ee 01 00 00
+20 02 00 00
+56 02 00 00
+92 02 00 00
+d4 02 00 00
+1c 03 00 00
+6c 03 00 00
+c3 03 00 00
+24 04 00 00
+8e 04 00 00
+02 05 00 00
+83 05 00 00
+10 06 00 00
+ab 06 00 00
+56 07 00 00
+12 08 00 00
+e0 08 00 00
+c3 09 00 00
+bd 0a 00 00
+d0 0b 00 00
+ff 0c 00 00
+4c 0e 00 00
+ba 0f 00 00
+4c 11 00 00
+07 13 00 00
+ee 14 00 00
+06 17 00 00
+54 19 00 00
+dc 1b 00 00
+a5 1e 00 00
+b6 21 00 00
+15 25 00 00
+ca 28 00 00
+df 2c 00 00
+5b 31 00 00
+4b 36 00 00
+b9 3b 00 00
+b2 41 00 00
+44 48 00 00
+7e 4f 00 00
+71 57 00 00
+2f 60 00 00
+ce 69 00 00
+62 74 00 00
+ff 7f 00 00
+
+
+
+###########################GATT INITIAL##########################
+mem_rec_voice_notify_apk_handle:42 00
+mem_rec_voice_notify_box_handle:2a 00
+mem_rec_control_notify_apk_handle:3f 00
+mem_rec_control_notify_box_handle:26 00
+
+
+mem_ui_le_uuid_table:mem_rec_le_att_list
+
+mem_rec_le_att_list:
+#Primary Service Gap	
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 02
+03 00 02 00 2a 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Appearance
+04 00 02 03 28 01 02 
+05 00 02 01 2a 02 80 01 
+
+#Primary Service: Gatt Service
+06 00 02 00 28 02 01 18
+#Service Changed
+07 00 02 03 28 01 20
+08 00 02 05 2a 01 00 	
+#Client Characteristic Configuration
+09 00 02 02 29 02 00 00
+
+#Primary Service: Battery Service
+0a 00 02 00 28 02 0f 18
+0b 00 02 03 28 01 02
+0c 00 02 19 2a 01 64
+0d 00 02 02 29 02 00 00	
+
+#Primary Service: Device Information
+0e 00 02 00 28 02 0a 18
+#Model Number
+0f 00 02 03 28 01 02
+10 00 02 24 2a 05 4d 49 20 52 43
+#Manufacture name
+11 00 02 03 28 01 02
+12 00 02 29 2a 15 43 79 70 72 65 73 73 20 53 65 6D 69 63 6F 6E 64 75 63 74 6F 72
+#Pnp id
+13 00 02 03 28 01 02 
+14 00 02 50 2a 07 02 54 2b 00 16 00 00
+
+#Primary service: HID
+15 00 02 00 28 02 12 18
+#Characteristic:Hid information
+16 00 02 03 28 01 02
+17 00 02 4a 2a 04 01 01 00 02
+#Characteristic:Report map
+18 00 02 03 28 01 02
+19 00 02 4b 2a c5
+
+#65
+05 01    #Usage Page Generic Desktop) 
+09 06    #Usage (Keyboard) 
+A1 01    #Collection (Application) 
+85 0b    #report ID (HIDAPP_KEYBOARD_REPORT_ID) 
+75 01    #Report Size (1) 
+95 08    #Report Count (8) 
+05 07    #Usage Page (Key Codes) 
+19 e0    #Usage Minimum (224) 
+29 e7    #Usage Maximum (231) 
+15 00    #Logical Minimum (0) 
+25 01    #Logical Maximum (1) 
+81 02    #Input (Data, Variable, Absolute) 
+95 01    #Report Count (1) 
+75 08    #Report Size (8) 
+81 01    #Input (Constant) reserved byte(1) 
+95 05    #Report Count (5) 
+75 01    #Report Size (1) 
+05 08    #Usage Page (Page#for LEDs) 
+19 01    #Usage Minimum (1) 
+29 05    #Usage Maximum (5) 
+91 02    #Output (Data, Variable, Absolute), Led report 
+95 01    #Report Count (1) 
+75 03    #Report Size (3) 
+91 01    #Output (Constant), Led report padding 
+95 06    #Report Count (6) 
+75 08    #Report Size (8) 
+15 00    #Logical Minimum (0) 
+25 eb    #Logical Maximum (101) 
+05 07    #Usage Page (Key codes) 
+19 00    #Usage Minimum (0) 
+29 eb    #Usage Maximum (101) 
+81 00    #Input (Data, Array) Key array(6 bytes) 
+C0   	 #End Collection (Application) 
+
+
+#Consumer Usepage #46
+05 0c    #Usage Page (Consumer Devices) 
+09 01    #Usage (Consumer Control) 
+a1 01    #Collection (Application) 
+85 01    #HIDAPP_REMOTE_REPORT_ID,    #report ID (01) 
+19 00    #USAGE_MINIMUM (0) 
+2a 9c 02 #USAGE_MINIMUM (29c) 
+15 00    #Logical Minimum (0) 
+26 9c 02 #Logical Maximum (29c) 
+95 01    #Report Count (1) 
+75 10    #Report Size (16) 
+81 00    #Input (Data, array, Absolute) 
+09 02    #Usage (Numeric Key Pad ) 
+a1 02    #Collection (Application) 
+05 09    #Usage Page (button) 
+19 01    #Usage Minimum (1) 
+29 0a    #Usage Maximum (10) 
+15 01    #Logical Minimum (1) 
+25 0a    #Logical Maximum (10) 
+95 01    #Report Count (1) 
+75 08    #Report Size (8) 
+81 40    #Input (Data, Variable, Relative) 
+c0   	 #End Collection 
+c0    	 #End Collection 
+
+#optional mouse data #54
+05 01    #Usage Page (Generic Desktop) 
+09 02    #USAGE (Mouse) 
+a1 01    #COLLECTION (Application) 
+09 01    #USAGE (Pointer) 
+a1 00    #COLLECTION (Physical) 
+85 03    #HIDAPP_MOUSE_REPORT_ID,    #report ID (HIDAPP_MOUSE_REPORT_ID) 
+05 01    #USAGE_PAGE (Generic Desktop) 
+09 30    #USAGE (X) 
+09 31    #USAGE (Y) 
+09 38    #USAGE (Wheel)
+15 80    #LOGICAL_MINIMUM (-127) 
+25 7f    #LOGICAL_MAXIMUM (127) 
+75 08    #REPORT_SIZE (8) 
+95 03    #REPORT_COUNT (3) 
+81 06    #INPUT (Data, Variable, Relative) 
+05 09    #USAGE_PAGE (Button) 
+19 01    #USAGE_MINIMUM (Button 1) 
+29 05    #USAGE_MAXIMUM (Button 5) 
+15 00    #LOGICAL_MINIMUM (0) 
+25 01    #LOGICAL_MAXIMUM (1) 
+95 05    #REPORT_COUNT (5) 
+75 01    #REPORT_SIZE (1) 
+81 02    #INPUT () 
+95 01    #REPORT_COUNT (1) 
+75 03    #REPORT_SIZE (3) 
+81 03    #INPUT () 
+c0    	 #End Collection (Physical) 
+c0       #End Collection (Application) 
+
+#end mouse data	#32
+06 01 ff
+09 01    #Usage (Consumer Control) 
+a1 02    #COLLECTION () 
+85 08    #HIDAPP_VOICE_REPORT_ID,    #report ID (HIDAPP_KEYBOARD_REPORT_ID) 
+09 14
+75 08    #Report Size (8) 
+95 14    #Report Count (20) 
+15 80    #Logical Minimum (80) 
+25 7f    #Logical Minimum (7f) 
+81 22    #Input () 
+85 04    #report ID () 
+09 04    #USAGE () 
+75 08    #Report Size (8) 
+95 01    #Report Count (1) 
+91 02    #Output 
+c0
+
+#External Report Reference
+1a 00 02 07 29 02 19 2a
+#Characteristic:control point
+1b 00 02 03 28 01 04
+1c 00 02 4c 2a 01 00
+#Characteristic:boot keyboard Input report
+1d 00 02 03 28 01 12
+1e 00 02 22 2a 08 00 00 00 00 00 00 00 00
+1f 00 02 02 29 01 13
+#Characteristic:boot keyboard output report
+20 00 02 03 28 01 0e
+21 00 02 32 2a 08 00 00 00 00 00 00 00 00
+#Characteristic:boot Mouse Input report
+22 00 02 03 28 01 12
+23 00 02 33 2a 08 00 00 00 00 00 00 00 00
+24 00 02 02 29 01 13
+
+#Characteristic: hid report
+25 00 02 03 28 01 12   
+26 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+27 00 02 02 29 01 13	
+28 00 02 08 29 02 01 01	#Report ID: 1	Report Type: Input
+
+#Characteristic: hid report
+29 00 02 03 28 01 12   
+2a 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+2b 00 02 02 29 01 13	
+2c 00 02 08 29 02 08 01	#Report ID: 8	Report Type: Input
+
+#Characteristic: hid report
+2d 00 02 03 28 01 12   
+2e 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+2f 00 02 02 29 01 13
+30 00 02 08 29 02 03 01	#Report ID: 3	Report Type: input
+
+#Characteristic: hid report
+31 00 02 03 28 01 12   
+32 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+33 00 02 02 29 01 13
+34 00 02 08 29 02 0b 01	#Report ID: 0b 	 Report Type: input
+
+#Characteristic: hid report
+35 00 02 03 28 01 0e   
+36 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+37 00 02 08 29 02 00 02	#Report ID:2     Report Type:output
+
+#Characteristic: hid report
+38 00 02 03 28 01 0a  
+39 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+3a 00 02 08 29 02 00 03   #Report ID:0    Report Type:feature	
+
+#Characteristic:Protocol mode
+3b 00 02 03 28 01 06
+3c 00 02 4e 2a 01 01
+
+#Primary service yichip transmit ------
+3d 00 02 00 28 02 f0 ff 
+#Characteristic tx--notify
+3e 00 02 03 28 01 16
+3f 00 02 f1 ff 01 00 #voice data start and end 
+#Client Characteristic Configuration
+40 00 02 02 29 02 00 00
+
+41 00 02 03 28 01 16
+42 00 02 f2 ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  #voice data
+#Client Characteristic Configuration
+43 00 02 02 29 02 00 00
+
+44 00 02 03 28 01 0a
+45 00 02 f3 ff 01 00 # voice test bit
+46 00 02 02 29 02 00 00
+
+#ota notify
+47 00 02 03 28 01 16
+48 00 02 fe ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
+49 00 02 02 29 02 01 00
+
+#ota write
+4a 00 02 03 28 01 04
+4b 00 02 ff ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Warning Attention,long 16 byte uuid must put at the last
+#Primary service: Wicentric,Inc
+4c 00 02 00 28 10 fb 34 9b 5f 80 00 00 80 00 10 00 00 f6 fe 00 00 
+#
+4d 00 02 03 28 01 18
+4e 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 02 00 5f 00 01 18
+4f 00 02  02 29 01 00
+#
+50 00 02 03 28 01 14
+51 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 03 00 5f 00 01 14
+52 00 02 02 29 01 00
+#
+53 00 02 03 28 01 14
+54 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 04 00 5f 00 01 14
+55 00 02 02 29 01 00
+#
+56 00 02 03 28 01 18
+57 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 05 00 5f 00 01 18
+58 00 02 02 29 01 00
+
+#Google atv voice
+#primary service
+59 00 02 00 28 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 01 00 5e ab
+
+#google atv write characeristic
+5a 00 02 03 28 01 08
+5b 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 02 00 5e ab 01 14
+
+#google atv read characeristic
+5c 00 02 03 28 01 12
+5d 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 03 00 5e ab 01 14
+5e 00 02 02 29 02 00 00
+
+#google atv ctrl characeristic
+5f 00 02 03 28 01 12
+60 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 04 00 5e ab 01 14
+61 00 02 02 29 02 00 00
+
+#End of Attribute list
+00 00
+
+
+
+
+
Index: sched/remote_car.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/remote_car.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/remote_car.dat	(working copy)
@@ -0,0 +1,53 @@
+
+mem_device_option:0d
+
+mem_tx_power: 0a
+#0x00 TX_POWER_0DB
+#0x03 TX_POWER_3DB
+#0x05 TX_POWER_5DB
+#0x07 TX_POWER_7DB
+#0x0a TX_POWER_10DB
+
+#0x83 TX_POWER_F3DB
+#0x85 TX_POWER_F5DB
+#0x8a TX_POWER_F10DB
+#0x94 TX_POWER_F20DB
+
+
+mem_24g_tx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_rx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_ch_map1:04 14 24 34
+mem_24g_ch:20
+#2402Mhz + mem_24g_ch
+
+mem_remote_full_control_remote_lap:ff ff ff ff
+mem_le_lap:0f 01 00 00 01 22
+
+mem_24g_addr:00 00 00 00
+
+mem_remote_car_key_conf0:
+#0
+0c
+#1
+8c
+#2
+85
+#3
+05
+mem_24g_tx_led_map:0d
+
+
+mem_remote_mult_key:92
+mem_key_public_gpio:12
Index: sched/rtrivr_uuid.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/rtrivr_uuid.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/rtrivr_uuid.dat	(working copy)
@@ -0,0 +1,75 @@
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+#Primary service Immediate alert ------
+0f 00 00 28 02 02 18
+#Characteristic Alert level
+10 00 03 28 01 04
+11 00 06 2a 01 00
+
+#Primary service UUID:f003 ------
+12 00 00 28 02 03 f0
+#Characteristic UUID:f803
+13 00 03 28 01 04
+14 00 03 f8 01 00
+
+
+#Primary service Link loss alert ------
+15 00 00 28 02 03 f0
+#Characteristic Alert level
+16 00 03 28 01 0a
+17 00 06 2a 01 00
+
+#Primary service UUID:f002 ------
+18 00 00 28 02 02 f0
+#Characteristic UUID:f802
+19 00 03 28 01 12
+1a 00 02 f8 01 28
+1b 00 02 29 02 00 00
+
+#Primary service Battery ------
+1c 00 00 28 02 0f 18
+#Characteristic Battery level
+1d 00 03 28 01 12
+1e 00 19 2a 01 38
+
+
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09 52 74 72 69 76 72 5f 52 36 32 31 03 19 40 02 02 01 05 02 0a 00 03 03 00 f0
+mem_le_scan_data_len:00
+mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
Index: sched/sha256.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/sha256.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/sha256.dat	(working copy)
@@ -0,0 +1,256 @@
+98
+2f
+8a
+42
+91
+44
+37
+71
+cf
+fb
+c0
+b5
+a5
+db
+b5
+e9
+5b
+c2
+56
+39
+f1
+11
+f1
+59
+a4
+82
+3f
+92
+d5
+5e
+1c
+ab
+98
+aa
+07
+d8
+01
+5b
+83
+12
+be
+85
+31
+24
+c3
+7d
+0c
+55
+74
+5d
+be
+72
+fe
+b1
+de
+80
+a7
+06
+dc
+9b
+74
+f1
+9b
+c1
+c1
+69
+9b
+e4
+86
+47
+be
+ef
+c6
+9d
+c1
+0f
+cc
+a1
+0c
+24
+6f
+2c
+e9
+2d
+aa
+84
+74
+4a
+dc
+a9
+b0
+5c
+da
+88
+f9
+76
+52
+51
+3e
+98
+6d
+c6
+31
+a8
+c8
+27
+03
+b0
+c7
+7f
+59
+bf
+f3
+0b
+e0
+c6
+47
+91
+a7
+d5
+51
+63
+ca
+06
+67
+29
+29
+14
+85
+0a
+b7
+27
+38
+21
+1b
+2e
+fc
+6d
+2c
+4d
+13
+0d
+38
+53
+54
+73
+0a
+65
+bb
+0a
+6a
+76
+2e
+c9
+c2
+81
+85
+2c
+72
+92
+a1
+e8
+bf
+a2
+4b
+66
+1a
+a8
+70
+8b
+4b
+c2
+a3
+51
+6c
+c7
+19
+e8
+92
+d1
+24
+06
+99
+d6
+85
+35
+0e
+f4
+70
+a0
+6a
+10
+16
+c1
+a4
+19
+08
+6c
+37
+1e
+4c
+77
+48
+27
+b5
+bc
+b0
+34
+b3
+0c
+1c
+39
+4a
+aa
+d8
+4e
+4f
+ca
+9c
+5b
+f3
+6f
+2e
+68
+ee
+82
+8f
+74
+6f
+63
+a5
+78
+14
+78
+c8
+84
+08
+02
+c7
+8c
+fa
+ff
+be
+90
+eb
+6c
+50
+a4
+f7
+a3
+f9
+be
+f2
+78
+71
+c6
\ No newline at end of file
Index: sched/shutter.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/shutter.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/shutter.dat	(working copy)
@@ -0,0 +1,16 @@
+mem_device_option:09
+mem_ui_button_gpio:ff
+
+mem_le_lap:20 31 20 98 07 2a
+mem_le_name_len:
+'AB Shutter3
+
+mem_shutter_key_conf0_temp:07 0b 8c 00 ff
+
+mem_shutter_soft_switch_first_power_on:00
+
+mem_tx_power:06
+
+mem_shutter_dy_conf:00
+
+
Index: sched/shutter_dy.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/shutter_dy.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/shutter_dy.dat	(working copy)
@@ -0,0 +1,521 @@
+#device option
+mem_device_option:06
+#power on config
+mem_ui_button_gpio:ff
+
+mem_le_lap:61 21 20 98 07 2a
+mem_le_name_len:
+'BLE-M3
+
+mem_tx_power:06
+
+//save otp addr
+mem_shutter_efuse_start_offset: b0 1f
+mem_shutter_efuse_end_offset: 70 19
+
+mem_shutter_le_pairing_handle:2b 00
+
+#默认相机圈
+#mem_initial_move_conf:aa 00 78 00 69 00 38 00
+#左下角
+#mem_initial_move_conf:0a 00 1e 00 07 00 06 00
+#安卓中间，IOS左下角
+mem_initial_move_conf:43 08 4a 0e 07 00 06 00
+
+mem_shutter_dy_conf:01
+#soft switch first power on
+mem_shutter_soft_switch_first_power_on:00
+
+#led config
+mem_shutter_led_on_light_dark_led_conf:
+00		#type:stop blink
+00		#blink count:no blink
+8c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+mem_shutter_led_off_light_dark_led_conf:
+01		#type:start blink
+03		#blink count:no blink
+8c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+
+
+mem_shutter_reconn_blink_on_time_conf:
+20 01
+20 03
+mem_shutter_discovery_blink_on_time_conf:
+20 01
+20 03
+
+#hard_soft_switch config
+mem_shutter_hard_soft_switch_case_temp:00
+mem_shutter_soft_switch_button_gpio_temp:ff
+
+#100ms timer
+mem_shutter_ble_discovery_time_conf:
+b8 0b #discovery_timeout
+70 17 #connect_timeout
+b8 0b #sleep_timeout
+b8 0b #sleep_timer
+
+
+#key config
+mem_shutter_key_num_conf:06
+mem_shutter_dy_key_conf:
+#test 6key
+# 07
+# 0b
+# 13
+# 14
+# 15
+# 16
+# 0c
+
+# jxy-181
+07	#right
+12 	#like
+13 	#down
+06 	#photo
+08 	#up
+14 	#left
+
+mem_combine_key0:
+#6key
+28 00 #left 2
+09 00 #right 2
+18 00 #up 2
+0c 00 #down 2
+
+#6key -key mirror
+#09 00 #left 2
+#28 00 #right 2
+#0c 00 #up 2
+#18 00 #down 2
+
+#7key
+# 60 00 #left 2
+# 41 00 #right 2
+# 50 00 #up 2
+# 44 00 #down 2
+# 00 00
+
+#7key -key mirror
+#41 00 #left 2
+#60 00 #right 2
+#44 00 #up 2
+#50 00 #down 2
+#00 00
+
+
+mem_combine_key_release_value:
+#6key
+08 00
+#7key
+# 40 00
+
+
+mem_shutter_iphone_up_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_like_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_move_mid:
+1e 1e 1f 20 28 28 00
+
+
+mem_key0_press_i:  #right
+00
+mem_key0_release_new_i:
+27 24 24 24 28 23 23 23
+mem_key0_long_press_i:
+04 06 00
+
+mem_key1_press_i:#like
+00
+mem_key1_release_new_i:
+27 28 00
+
+mem_shutter_link_data_i:
+27 28 27 28 00
+
+mem_key2_press_i:#down
+00
+mem_key2_release_new_i:
+27 26 26 26 28 25 25 25
+
+#toggle between vol-inc and vol-dec
+mem_key3_press_i:#photo
+00
+mem_key3_release_new_i:#volume increment
+#7key
+# 01 06 00
+#6key
+27 01 06 28 00
+mem_key3_release_new_i_t:#volume decrement
+#7key
+# 02 06 00
+#6key
+27 02 06 28 00
+
+mem_key4_press_i:#up
+00
+mem_key4_release_new_i:
+27 25 25 25 28 26 26 26
+
+mem_key5_press_i:#left
+00
+mem_key5_release_new_i:
+27 23 23 23 28 24 24 24
+mem_key5_long_press_i: #lock
+03 06 00
+
+mem_key6_release_new_i:#move
+27 28 00 00
+mem_key6_release_new:#move
+00
+
+mem_dy_key0_press:  #right
+00
+mem_key0_release_new:
+13 14 15 16 17 18 19 1a 1b 00
+mem_key0_long_press:
+05 06 00
+
+mem_dy_key1_press:#like
+00
+mem_key1_release_new:
+0b 11 00
+
+mem_shutter_link_data:#like key loop
+0b 11 00 00 0b 11 00
+
+mem_dy_key2_press: #down
+00
+mem_key2_release_new:
+0f 0e 0d 0c 0b 0a 09 08 07 00
+mem_key2_long_press:#volume decrement
+02 06 00
+mem_key2_long_release:
+1c 1d 00
+
+#toggle between vol-inc and vol-dec
+mem_dy_key3_press:#photo
+00
+mem_key3_release_new:#volume increment
+1c 02 06 1d 00 #6key
+# 01 06 #7key
+mem_key3_release_new_t:#volume decrement
+1c 01 06 1d 00 #6key
+#02 06 #7key
+
+
+mem_dy_key4_press:#up
+00
+mem_key4_release_new:
+08 09 0a 0b 0c 0d 0e 0f 10 00
+mem_key4_long_press:#volume increment
+01 06 00
+mem_key4_long_release:
+00
+
+
+mem_dy_key5_press:#left
+00
+mem_key5_release_new:
+1a 19 18 17 16 15 14 13 12 00
+mem_key5_long_press: #lock
+03 06 00
+
+mem_combine_key0_press:
+01
+mem_combine_key1_press:
+02
+mem_combine_key2_press:
+03
+mem_combine_key3_press:
+04
+mem_combine_key_release:
+00
+
+mem_move_mode_set:00 #00 combine key, 01 single key when another key has already triggered
+mem_move_mode_key_index:03 #move key index,SHUTTER_MOVE_KEY_NUM,SHUTTER_PHOTO_KEY_NUM
+mem_move_mode_trigger_enable:00
+
+mem_shutter_long_key_released_flag:01
+
+################ble kb val list#######################
+mem_shutter_mousekey_value_list:
+#Media key
+02 13 00 01 00 00 00 00 00 00 #1 volume increment
+02 13 00 02 00 00 00 00 00 00 #2 volume decrement
+02 13 00 04 00 00 00 00 00 00 #3 lock
+02 13 00 08 00 00 00 00 00 00 #4 ios home
+02 13 00 10 00 00 00 00 00 00 #5 android home
+02 13 00 00 00 00 00 00 00 00 #6 release
+#Android Key
+#up down
+06 23 00 02 01 00 00 00 00 00 #7
+06 23 00 03 01 f4 06 20 02 00 #8
+06 23 00 03 01 f4 06 d4 02 00 #9
+06 23 00 03 01 f4 06 28 03 00 #a
+06 23 00 03 01 f4 06 3c 04 00 #b like press
+06 23 00 03 01 f4 06 20 04 00 #c
+06 23 00 03 01 f4 06 74 05 00 #d
+06 23 00 03 01 f4 06 28 06 00 #e
+06 23 00 03 01 f4 06 dc 06 00 #f
+06 23 00 02 01 f4 06 70 07 00 #10
+#like release
+06 23 00 02 01 f4 06 3c 04 00 #11
+#right left
+06 23 00 02 01 f0 08 0f 09 00#12d   dd
+06 23 00 03 01 a3 07 0f 09 00#13
+06 23 00 03 01 2c 06 0f 09 00#14
+06 23 00 03 01 2c 05 0f 09 00#15
+06 23 00 03 01 52 04 0f 09 00#16
+06 23 00 03 01 e2 03 0f 09 00#17
+06 23 00 03 01 4f 03 0f 09 00#18
+06 23 00 03 01 4f 02 0f 09 00#19
+06 23 00 03 01 ab 01 0f 09 00#1a
+06 23 00 02 01 01 01 0f 09 00#1b
+#move
+06 23 00 07 04 00 00 00 00 00#1c    //move press
+06 23 00 06 04 00 00 00 00 00#1d    //move release
+
+#ios key
+#ios localinit key
+03 1b 00 01 18 80 00 00 00 00 #1e
+03 1b 00 00 10 80 00 00 00 00 #1f
+03 1b 00 41 40 0a 00 00 00 00 #20 ios init up local
+03 1b 00 41 40 0a 00 00 00 00 #21 ios init like local
+03 1b 00 41 40 0a 00 00 00 00 #22 ios init down/right/left local
+03 1b 00 20 00 00 00 00 00 00 #23 ios left
+03 1b 00 e0 0f 00 00 00 00 00 #24 ios right
+03 1b 00 00 00 02 00 00 00 00 #25 ios up
+03 1b 00 00 00 fe 00 00 00 00 #26 ios down
+
+#mouse key
+03 17 00 01 00 00 00 00 00 00 #27   press
+03 17 00 00 00 00 00 00 00 00 #28   release
+03 1b 00 00 00 00 00 00 00 00 #29 ios move
+03 1b 00 00 00 00 00 00 00 00 #2a ios move double
+
+03 1b 00 01 f8 7f 00 00 00 00 #2b
+03 1b 00 64 00 00 00 00 00 00 #2c
+03 1b 00 00 b0 f9 00 00 00 00 #2d
+mem_shutter_move_data:
+00 00 00  #defualt
+
+mem_ble_shutter_dy_interval_min_android:
+10 00
+10 00
+10 00
+2c 01
+
+mem_ble_shutter_dy_interval_min_ios:
+18 00
+1c 00
+10 00
+2c 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_shutter_le_uuid_sup:
+#Primary service GATT ------
+01 00 02 00 28 02 01 18
+#Service changed
+02 00 02 03 28 01 20
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 00 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+06 00 02 03 28 01 02
+07 00 02 00 2a 13 43 68 69 70 73 65 61 2d 42 4c 45 20 20 20 20 20 20 20 20
+
+#Appearance
+08 00 02 03 28 01 02
+09 00 02 01 2a 02 c1 03
+
+#Peripheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#PNP id
+0d 00 02 03 28 01 02
+0e 00 02 50 2a 07 01 05 0e 00 0a 02 40
+
+#Primary service hid ------
+0f 00 02 00 28 02 12 18
+
+#Protocol mode
+10 00 02 03 28 01 06
+11 00 02 4e 2a 01 01
+
+
+#Hid report
+12 00 02 03 28 01 10
+13 00 02 4d 2a 02 00 00
+#Client Characteristic
+14 00 02 02 29 02 00 00
+#Report reference
+15 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Hid report id 4
+16 00 02 03 28 01 10
+17 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+18 00 02 02 29 03 00 00 00
+#Report reference
+19 00 02 08 29 02 04 01 # report id=4, type=1 input
+
+#Hid report id 3
+1a 00 02 03 28 01 10
+1b 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+1c 00 02 02 29 02 00 00
+#Report reference
+1d 00 02 08 29 02 03 01 # report id=3, type=1 input
+
+#Hid report id 5
+1e 00 02 03 28 01 10
+1f 00 02 4d 2a 05 00 00 00 00 00
+#Client Characteristic
+20 00 02 02 29 02 00 00
+#Report reference
+21 00 02 08 29 02 05 01 # report id=5, type=1 input
+
+#Hid report id 2
+22 00 02 03 28 01 12
+23 00 02 4d 2a 06 00 00 00 00 00 00
+#00 00 00 00 00
+#Client Characteristic
+24 00 02 02 29 02 00 00
+#Report reference
+25 00 02 08 29 02 02 01 # report id=2, type=1 input
+
+#Hid report id 6
+26 00 02 03 28 01 12
+27 00 02 4d 2a 07 00 00 00 00 00 00 00
+#Client Characteristic
+28 00 02 02 29 02 00 00
+#Report reference
+29 00 02 08 29 02 06 01 # report id=6, type=1 input
+#Report map
+2a 00 02 03 28 01 02
+2b 00 02 4b 2a 01 00
+
+#Hid information
+2c 00 02 03 28 01 02
+2d 00 02 4a 2a 04 11 01 00 01
+
+#Hid control point
+2e 00 02 03 28 01 04
+2f 00 02 4c 2a 01 00
+30 00 02 00 28 02 0f 18
+00 00
+
+mem_shutter_le_map_len_android:63 00 #6d 00
+mem_shutter_le_map_len_ios:b7 00
+mem_shutter_le_hid_map:
+05 0c # Usage Page(Consumer) #legth 30
+09 01 # Usage(Consumer Control)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 05 # Report Count(5)
+09 e9 # volume up
+09 ea # volume down
+09 30 # lock
+09 40 # home
+0a 23 02  #home
+81 06 #Input (Data, Variable, Absolute)
+c0 #end
+
+05 0d	#Usage Page (Digitizer)
+09 04 	# Usage(touch screem)
+a1 01 	#Collection (Application)
+85 02	#Report Id (2)
+09 24   #Usage (Stylus)
+a1 02  	#Collection (Logical)
+09 42	#Usage (Tip Switch)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+75 01	#Report Size (1)
+95 01	#Report Count (1)
+81 02 	#Input (Data,Value,Absolute,Bit Field)
+09 32	#Usage (In Range)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+95 06	#Report Count (6)
+81 03 	#Input (Constant,Array,Absolute,Bit Field)
+75 08 #        Report Size (8)
+09 51 #        Usage (Contact identifier)
+95 01 #        Report Count (1)
+81 02 #        Input (Data,Value,Absolute,Bit Field)
+05 01	#Usage Page (Generic Desktop)
+26 ff 0f  #Logical maximum (1'000)
+75 10	#Report Size (16)
+55 0E #Unit Exponent (14)
+65 33 #Unit(51)
+09 30 	#Usage (X)
+35 00   #Physical Minimum (0)
+46 00 10  #Physical maximum (1'205)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+09 31	#Usage (Y)
+46 8a 03  #Physical maximum (906)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+c0		#End Collection
+c0
+
+05 01 #Usage Page (Generic Desktop Controls)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 04 # Report ID(4)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+95 05 # Report Count(5)
+75 01 # Report Size(1)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 05 # Usage Maximum(5)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+81 02 #Input (Data, Variable, Absolute)
+95 01 # Report Count(1)
+75 03 # Report Size(3)
+81 01 #Input (Constant, Array, Absolute)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+05 01  #Usage Page (Generic Desktop Controls)
+09 38 #Usage (Wheel)
+15 81 # Logical Minimum(129)
+25 7f  # Logical Maximum(127)
+81 06 #Input (Data, Variable, Relative)
+05 0c #Usage page (Consumer)
+0a 38 02 	#Usage (AC Pan)
+95 01 # Report Count(1)
+81 06 #INPUT (Data, Variable, Relative)
+c0
+85 03 # Report ID(3)
+09 01 # Usage(Consumer Control)
+a1 00 # Collection(Physical)
+75 0c # Report Size(12)
+95 02 # Report Count(2)
+05 01 #Usage Page (Generic Desktop Controls)
+09 30 #Usage (x)
+09 31 #Usage (y)
+16 01 f8  # Logical Minimum(63489)
+26 ff 07 # Logical Maximum(2047)
+81 06 #Input (Data, Variable, Relative)
+c0 c0
+
+
+##############BLE ATT LIST END####################
+mem_dy_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
Index: sched/sim.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/sim.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/sim.dat	(working copy)
@@ -0,0 +1,54 @@
+
+mem_lpm_xtalcnt:10 20 64
+mem_lpm_isogate:8f 2f 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:19
+mem_fcomp_div:24
+
+mem_xtal_freq:18	#24MHz
+mem_set_cdb_on:00
+mem_syn_cal_ctrl:00
+
+mem_le_lap:11 22 33
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09
+'Yichip Temp
+ 03 19 40 02 02 01 05 02 0a 00 03 03 f1 18
+mem_le_ch_mapped:24
+mem_le_adv_interval:20 00
+mem_le_scan_window:20 00
+mem_le_scan_type:01
+mem_le_adv_own_addr_type:01
+
+
+mem_patch00:01
+
+
+4580:ff
+mem_rf_init_ptr:80 45		
+
+
+
+
+
+
+#ecb enc data
+4f00:
+0a94 0bb5 416e f045 f1c3 9458 c653 ea5a 
+
+
+#cbc xor data
+4e00:
+5a5a 5a5a 5a5a 5a5a 6363 6363 6363 6363
+
+#cbc enc data1
+4e20:
+7033 eafa b089 698f 43cb 1050 1e73 1109 
+
+#cbc enc data2
+4e30:
+3cfd e1a1 eb69 42b0 2593 3009 5238 53f9 
+
+
+
+
Index: sched/spp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/spp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/spp.dat	(working copy)
@@ -0,0 +1,206 @@
+#device option
+mem_device_option:04
+
+#spp uuid
+mem_uuid_list:
+04
+10
+02
+12
+00
+01
+00
+00
+01
+00
+01
+00
+01
+36
+00
+5a
+09
+00
+00
+0a
+00
+01
+00
+01
+09
+00
+01
+35
+03
+19
+12
+00
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+01
+35
+03
+19
+00
+01
+09
+00
+05
+35
+03
+19
+10
+02
+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
+11
+01
+00
+03
+01
+00
+00
+01
+00
+03
+36
+00
+4e
+09
+00
+00
+0a
+00
+01
+00
+03
+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
+09
+00
+05
+35
+03
+19
+10
+02
+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
+01
Index: sched/test.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/test.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/test.dat	(working copy)
@@ -0,0 +1,139 @@
+mem_device_option:ff
+mem_le_lap:11 22 33
+mem_le_adv_enable:01
+mem_le_adv_interval:00 02 
+mem_le_adv_channel_map:07
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0a
+mem_le_scan_data:
+'\09test1305
+
+mem_ui_le_uuid_table:mem_module_le_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_module_le_att_list:
+#Primary service GAP ------
+01 00 02 00 28 02 00 18
+
+
+#Appearance
+02 00 02 03 28 01 02
+03 00 02 01 2a 02 c8 00 #3c2=hid mouse
+
+#Device name
+04 00 02 03 28 01 0a
+05 00 02 00 2a 14 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20 20
+
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+
+#privcy flag
+08 00 02 03 28 01 02
+09 00 02 02 2a 01 01
+
+#reconnecting addr 
+0a 00 02 03 28 01 08
+0b 00 02 03 2a 06 00 00 00 00 00 00
+
+#Primary service GATT ------
+0c 00 02 00 28 02 01 18
+
+#Service changed
+0d 00 02 03 28 01 20
+0e 00 02 05 2a 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+
+#Primary service TX power ------
+10 00 02 00 28 02 04 18
+#Characteristic Tx power level
+11 00 02 03 28 01 16
+12 00 02 07 2a 01 00
+13 00 02 02 29 02 00 00
+
+#Primary service Battery ------
+14 00 02 00 28 02 0f 18
+#Characteristic Battery level
+15 00 02 03 28 01 12
+16 00 02 19 2a 01 38
+
+#Primary service device infomation
+17 00 02 00 28 02 0a 18
+#Characteristic system id
+18 00 02 03 28 01 02
+19 00 02 23 2a 03 00 00 00
+
+#Characteristic manufactor name
+1a 00 02 03 28 01 02
+1b 00 02 29 2a 08 46 6c 61 67 74 72 69 70
+
+#Characteristic module number
+1c 00 02 03 28 01 02
+1d 00 02 24 2a 06 79 69 63 68 69 70
+
+#Characteristic serial number
+1e 00 02 03 28 01 02
+1f 00 02 25 2a 04 63 6f 6d 33
+
+#Characteristic firmware version
+20 00 02 03 28 01 02
+21 00 02 26 2a 03 31 2e 30
+
+#Characteristic software version
+22 00 02 03 28 01 02
+23 00 02 28 2a 03 31 2e 30
+
+#Characteristic hardware version
+24 00 02 03 28 01 02
+25 00 02 2a 2a 03 31 2e 30
+
+#Characteristic regulatory version
+26 00 02 03 28 01 02
+27 00 02 25 2a 04 63 6f 6d 33
+
+#Primary service yichip transmit ------
+28 00 02 00 28 10 55 e4 05 d2 af 9f a9 8f e5 4a 7d fe 43 53 53 49
+#Characteristic tx--notify read
+29 00 02 03 28 01 12
+2a 00 10 16 96 24 47 C6 23 61 BA D9 4B 4D 1E 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+2b 00 02 02 29 02 00 00
+
+#Characteristic rx--write
+2c 00 02 03 28 01 08
+2d 00 10 b3 9b 72 34 be ec d4 a8 f4 43 41 88 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx-- write without Response
+2e 00 02 03 28 01 04
+2f 00 10 fe 69 ca 9a 56 19 f6 ab 02 4d aa 6d 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx tx --read write notify
+30 00 02 03 28 01 2a
+31 0010 18 03 A6 28 5E D8 EC 91 1C 48 A3 AC 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+32 00 02 02 29 02 00 00
+
+#Primary service yichip transmit ------
+33 00 02 00 28 02 e7 fe 
+#Characteristic tx--indicate
+34 00 02 03 28 01 20
+35 00 02 c8 fe 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+36 00 02 02 29 02 00 00
+
+#Characteristic rx--write,read
+37 00 02 03 28 01 0a
+38 00 02 c7 fe 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic - read
+39 00 02 03 28 01 02
+3a 00 02 c9 fe 06 11 22 33 44 55 66
+
+#End of Attribute list
+00 00
Index: sched/usb_confdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_confdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_confdata.dat	(working copy)
@@ -0,0 +1,60 @@
+3b
+09
+02
+3b
+00
+02
+01
+00
+a0
+32
+09
+04
+00
+00
+01
+03
+01
+01
+00
+09
+21
+00
+02
+00
+01
+22
+1a
+00
+07
+05
+81
+03
+40
+00
+02
+09
+04
+01
+00
+01
+03
+01
+02
+00
+09
+21
+00
+02
+00
+01
+22
+f3
+00
+07
+05
+82
+03
+40
+00
+02
\ No newline at end of file
Index: sched/usb_devicedata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_devicedata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_devicedata.dat	(working copy)
@@ -0,0 +1,19 @@
+12
+12
+01
+00
+02
+00
+00
+00
+40
+51
+31
+20
+10
+02
+00
+01
+02
+00
+01
\ No newline at end of file
Index: sched/usb_kbdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_kbdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_kbdata.dat	(working copy)
@@ -0,0 +1,66 @@
+41
+05
+01
+09
+06
+a1
+01
+75
+01 
+95
+08
+05
+07
+19
+e0 
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01 
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05  
+91
+02 
+95
+01  
+75
+03  
+91
+03
+95
+06 
+75
+08 
+15
+00 
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00 
+81
+00
+c0
Index: sched/usb_kbdata_vendor_define.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_kbdata_vendor_define.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_kbdata_vendor_define.dat	(working copy)
@@ -0,0 +1,27 @@
+1a
+06
+bc
+ff
+09
+88
+a1
+01
+85
+04
+19
+00
+2a
+ff
+00
+15
+00
+26
+ff
+00
+75
+08
+95
+01
+81
+00
+c0
\ No newline at end of file
Index: sched/usb_msdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_msdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/sched/usb_msdata.dat	(working copy)
@@ -0,0 +1,244 @@
+f3
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+05
+15
+00
+25
+01
+95
+05
+75
+01
+81
+02
+95
+01
+75
+03
+81
+01
+05
+01
+09
+30
+09
+31
+16
+01
+F8
+26
+FF
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+05
+01
+09
+80
+a1
+01
+85
+02
+05
+01
+19
+81
+29
+88
+15
+00
+25
+01
+95
+08
+75
+01
+81
+06
+c0
+06
+00
+ff
+09
+0e
+a1
+01
+85
+BA
+95
+1f
+75
+08
+26
+ff
+00
+15
+00
+09
+01
+91
+02
+85
+BA
+95
+1f
+75
+08
+26
+ff
+00
+15
+00
+09
+01
+81
+02
+C0
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+26
+80
+03
+19
+00
+2a
+80
+03
+75
+10
+95
+01
+81
+00
+c0
\ No newline at end of file
Index: util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

Property changes on: util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/eeprom2fulleeprom.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/util/eeprom2fulleeprom.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/util/eeprom2fulleeprom.pl	(working copy)
@@ -0,0 +1,18 @@
+
+
+
+$source_file = $ARGV[0];
+$eeprom_size = $ARGV[1];
+
+open(EEP,"$source_file") or die("cannot open files");
+for ($i = 1 ;$i<=$eeprom_size*128-2;$i++)
+{
+
+    while (<EEP>) { 
+        $c = hex();
+        printf "%02x\n", $c;
+        $i++;
+    }
+
+	printf "FF\n";
+}
Index: util/eeprom2otp.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/util/eeprom2otp.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/util/eeprom2otp.pl	(working copy)
@@ -0,0 +1,24 @@
+
+#改前三个字节为0200；
+#输入一个文件，输出一个文件；
+
+if(@ARGV < 2) {
+	printf "less files\n";
+	exit;
+}
+else{
+	open(file, $ARGV[0]) or die "Can't open  file  : $!"; 
+	open(file_out, ">$ARGV[1]")or die "Can't open out file  : $!"; 
+	@lines = <file>;
+	$length = @lines;
+	
+	my $j=2;
+	print file_out "00\n01\n";
+	while($j<$length){
+			print file_out "$lines[$j]";
+			$j++;
+	}
+#	print "----- reverse end -----";
+	close(file);
+	close(file_out);
+}
Index: util/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: util/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/mergepatch.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/util/mergepatch.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/util/mergepatch.pl	(working copy)
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+$defs = "";
+
+sub alloc {
+	my($end, %mc) = @_;
+	my(%eadr) = ();
+	my($tstr, $str, $i, $j, $addr);
+	my($tstr) = "";
+	
+	foreach $i (sort keys %mc) {
+		if($i =~ /(.+)_(.+)/ && exists($eadr{$1})) {
+			$addr = $eadr{$1};
+		} else {
+			$addr = $end;
+		}
+		for($j = 0;$j <= $#{$mc{$i}};$j++) {
+			if($mc{$i}[$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$var{$2} = $addr;
+				$addr += $1;
+				$tstr .= $str;
+			}
+		}
+		$eadr{$i} = $addr;
+	}
+	if($addr > 0x4000) {
+		$xend = $addr if($addr > $xend);
+	} else {
+		$bend = $addr if($addr > $bend);
+	}
+	return $tstr . "\n";
+}
+
+
+sub malloc {
+	$path="output/bt_format.meta";
+	open file, $path;
+	@f = <file>;
+	close file;
+	open file, ">$path";
+	$path =~ s/\/.*//;
+	open file1, ">output/memmap.format";
+	$xaddr = 0x4000;
+	$addr = 0;
+	if($#ARGV == 1) {
+		$addr = hex($ARGV[0]);
+		$xaddr = hex($ARGV[1]);
+	}
+	for($i = 0, $ocnt = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		$start = 1 if(/^\s*memalloc\s*\(\s*$/);		# allocate from 0
+		$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);	# allocate from 4000
+		$start = 3 if(/^\s*omemalloc\s*\(\s*$/);	# allocate after all xmemalloc, mutex from each other(obsolete, for compatibility)
+		if(/^\s*([ax]*)memalloc\s+([a-zA-Z_0-9]+)\s*\(\s*$/) {
+			$start = $1 eq 'a' ? 5 : $1 eq 'x' ? 6 : 7;
+			$basev = $2;
+		}
+		if($start) {
+			if(/^\s*([a-zA-Z0-9_]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/ && exists($def2{$1})) {		# macro for size
+				$_ = sprintf("%s %s %s", $def2{$1}, $2, $3);
+			}
+			if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				if($start == 1) {
+					$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+					$var{$2} = $addr;
+					$addr += $1;
+					$bstr .= $str;
+				} elsif($start == 2) {
+					$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
+					$var{$2} = $xaddr;
+					$xaddr += $1;
+					$xstr .= $str;
+				} else {
+					push @ostr, $_;
+				}
+			}
+			if(/^\s*\)\s*$/) {
+				if(@ostr > 0) {
+					if($start == 3) {
+						push @{$xmalloc{$ocnt}}, @ostr;
+						$ocnt++;
+					} elsif($start == 5) {
+						push @aaddr,$basev;
+						push @amalloc,[@ostr];
+					} elsif($start == 6) {
+						push @{$xmalloc{$basev}}, @ostr;
+					} elsif($start == 7) {
+						push @{$malloc{$basev}}, @ostr;
+					} 
+				}
+				$start = 0;
+				@ostr = ();
+			}
+		} else {
+			$def2{$2} = $1 if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/);
+			$sstr .= $_;
+		}
+	}
+	
+#--------------------- o/x/memalloc process -----------------------
+	$bend = $addr, $xend = $xaddr;
+	$bstr .= alloc($addr, %malloc);
+	$xstr .= alloc($xaddr, %xmalloc);
+
+#--------------------- amemalloc process -----------------------
+	for($i = 0;$i <= $#aaddr;$i++) {
+		for($j = 0, $addr = $aaddr[$i] =~ /^0x([0-9a-f]+)/ ? hex($1) : $var{$aaddr[$i]};$addr != 0 && $j <= $#{$amalloc[$i]};$j++) {
+			if($amalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$addr += $1;
+				if($addr < 0x4000) {
+					$bstr .= $str;
+				} else  {
+					$xstr .= $str;
+				}
+			}
+		}
+	}
+
+	
+	print file $bstr, $xstr, $sstr;
+	print file1 $bstr, $xstr;
+	close file;
+	close file1;
+	printf "\nLast allocated address is %04x\n", $bend;
+	printf "\nLast allocated xmem address is %04x\n", $xend;
+}
+
+
+sub getdefs {
+	my($def) = @_;
+	my(@ifdefs) = split(/\s*\|\s*/, $def);
+	my $v = 0;
+	foreach (@ifdefs) {
+		s/\s//g;
+		$v = 1 if($defs =~ /(^|\s)$_(\s|$)/);
+	}
+	return $v;
+}
+
+sub parseif {
+	my($fname) = @_;
+	open file, $fname;
+	@f = <file>;
+	close file;
+	open file, ">$fname";
+	@valid = (1);
+	for($i = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		s/\/\*.*\*\///g;
+		$comment = 1 if(/\/\*/ && !/\/\//);
+		if($comment) {
+			$comment = 0 if(/\*\//);
+			next;
+		}
+		if(/^\s*ifdef\s+(.+)$/) {
+			$v = getdefs($1) ? 1 : 0;
+			push @valid, $v & $valid[$#valid];
+		} elsif(/^\s*ifndef\s+(.+)$/) {
+			$v = getdefs($1) ? 0 : 1;
+			push @valid, $v & $valid[$#valid];
+		} elsif(/^\s*else/) {
+			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
+			if($#valid == 0) {
+				for($j = -10;$j < 10;$j++) {
+					print $f[$i + $j];
+				}
+				last;
+ 				$i = $i;
+			}
+			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
+		} elsif(/^\s*endif/) {
+			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
+			if($#valid == 0) {
+				for($j = -10;$j < 10;$j++) {
+					print $f[$i + $j];
+				}
+				last;
+ 				$i = $i;
+			}
+			pop @valid;
+		} elsif($valid[$#valid]) {
+			if(/^include\s+(.+)\s*/) {
+				open file2, "program/$1";
+				@f2 = <file2>;
+				close file2;
+				splice(@f, $i + 1, 0, @f2);
+			} else {
+			if(/^define\s+(\w+)\s*/) {
+				$defs .= $1 . " " 
+			}
+				print file $_;
+			}
+		}
+	}
+	close file;
+}
+
+sub genpatch
+{
+	print "genpatch\n";
+	$patched = 0;
+	open file,"output/bt_program23.meta";
+	while(<file>) {
+		if(/^\s*beq\s+patch([0-9a-f]+)_([0-7]),/) {
+			$a = hex($1), $b = hex($2);
+			$bits[$a] |= 1 << $b;
+			$patched = 1;
+		}
+	}
+	close file;
+	return if(!$patched);
+	open file,"output/sched.rom";
+	@sched = <file>;
+	close file;
+	for($j = 0;$j < 0x40;$j++) { 
+		$s .= sprintf ("%02x   #mem_patch%02x\n", $bits[$j], $j);
+	}
+	$s .= "\n\n";
+	for($i = $skip = 0;$i < @sched;$i++) {
+		$_ = $sched[$i];
+		if($skip > 0 && /:/) {
+			splice(@sched, $skip, $i - $skip, $s);
+			last;
+		}
+		$skip = $i + 1 if(/^mem_patch00:\s*$/);
+	}
+	if($skip == 0) {
+		$s = "mem_patch00:\n" . $s;
+		splice(@sched, 0, 0, $s);
+	}
+	open file,">output/sched.rom";
+	for($i = 0;$i < @sched;$i++) { print file $sched[$i]; }
+	close file;
+}
+
+sub zcode {
+	open file, "output/bt_program23.meta";
+	@f = <file>;
+	close file;
+	for($i = $label = $line[0] = 0, $z = 1;$i < @f;$i++) {
+		$_ = $f[$i];
+		$line[0] = $i - 1 if(/^org\s+0x([23]000|800)/ && $line[0] == 0);
+		if(/^org z\s*$/) {
+			$line[$z/0x10000 + 1] = $i - 1;
+			$z += 0x10000;
+			$f[$i] = sprintf("org 0x%x\n", $z);
+			$label = 1;
+		}
+		if(/^(\w+):\s*$/ && $label == 1) {
+			$lab{$1} = $z;
+			$label = 2;
+		}
+	}
+	return if($z == 1);
+	$line[$z/0x10000 + 1] = $i - 1;
+	for($i = 0;$i < @f;$i++) {
+		$_ = $f[$i];
+		$label = "";
+		if(/^\s*(branch|nbranch|call|ncall|setarg)\s+(\w+)\s*$/ || /^\s*(branch|nbranch|call|ncall|arg)\s+(\w+)\s*,\s*(\w+)\s*$/) {
+			$label = $2;
+		}
+		if(/^\s*(bmark|beq|bne|bbit[01])\s+(\w+)\s*,\s*(\w+)\s*$/) {
+			$label = $3;
+		}
+		$branch = /^\s+branch\s+$label\s*$/ ? 1 : 0;
+		if(exists($lab{$label})) {
+			$nlabel = "jmpz_" . $label;
+			$f[$i] =~ s/$label/eval "$nlabel"/e;
+			if($lab{$label} > 100) {
+				$z = int($lab{$label}/0x1000);
+				$l = $i < $line[1] ? $line[0] : $line[$z/10 - 1];
+				if($branch && $i >= $line[1]) {
+					$f[$i] = sprintf("\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $z);
+				} else {
+					$f[$l] .= sprintf("%s:\n\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $nlabel, $z);
+				}
+				$lab{$label} = 1;
+			}
+		}
+	}
+	open file, ">output/bt_program23.meta";
+	for($i = 0;$i < @f;$i++) {
+		if($f[$i] =~ /^\s*bbit1 8,pf_patch_ext\s*$/) {
+			printf file ("p_start:\n\tbranch p_patch_array\n\np_zcode:\n");
+			for($j = 0;$j < 63;$j++) {
+				printf file "\tnop %d\n", $j + 1;
+			}
+			printf file "p_patch_array:\n";
+		}
+		print file $f[$i];
+	}
+	close file;
+}
+
+sub authrom {
+	$addr = 0x9000;
+	foreach $s (@ARGV) {
+		open f, "../sched/" . $s . ".dat" or die "cannot open dat file $s";
+		@ff = <f>;
+		close f;
+		foreach (@ff) { $_ =~ s/\s//g;push @auth, $_ . "\n"; }
+	#	printf "0x%x %s_ADDR\n", $addr, uc($s);
+		$addr += $#ff + 1;
+	}
+	open f,">auth.rom";
+	print f @auth;
+	close f;
+	open f,"romcode.rom" or return;
+	@rom = <f>;
+	close f;
+	for($i = 0, $j = $#rom - 0x1ff;$i < 0x200;$i++,$j++) {
+		for($k = 0, $l = "";$k < 4;$k++) {
+			$_ = $auth[$i*4 + $k];
+			s/\s//g;
+			$_ = "00" if(/^$/);
+			$l =  $_ . $l;
+		}
+		$rom[$j] = $l . "\n";
+	}
+	open f,">romcode.rom";
+	print f @rom;
+	close f;
+}
+
+sub otp {
+	open f,'eeprom.dat';
+	@a=<f>;
+	open f,'../sched/otp_set.dat';
+	@b=<f>;
+	open f,'>otp.dat';
+#	printf f "0b\n00\n";
+	print f @b;
+	splice(@a,0,2);
+	print f @a;
+	close f;
+}
+
+if($ARGV[0] eq "otp") {
+	otp();
+	exit;
+} elsif(@ARGV > 0) {
+	authrom();
+	exit;
+}
+
+parseif("output/bt_program23.meta");
+parseif("output/bt_format.meta");
+genpatch() if($defs !~ / SIM /);
+malloc();
+zcode();
Index: util/romcrc.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/util/romcrc.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/YeCai/keyboard_2mode_4ch_carbon_ex_pullup_sdk/util/romcrc.pl	(working copy)
@@ -0,0 +1,54 @@
+#!/bin/perl
+sub crc16_ccitt2
+{
+	my($crc, $c) = @_;
+
+  $crc  = ($crc >> 8) | ($crc << 8);
+  $crc ^= $c;
+  $crc ^= ($crc & 0xff) >> 4;
+  $crc ^= $crc << 12;
+  $crc ^= ($crc & 0xff) << 5;
+  $crc &= 0xffff;
+ return $crc;
+}
+
+sub gencrc
+{
+  my($crc, $c) = @_;
+  my($i);
+	$c =~ s/\s//g;
+  for($i = 0;$i < length($c);$i+=2) {
+  	$crc = crc16_ccitt2($crc, hex(substr($c, $i, 2)));
+  }
+  return $crc;
+}
+
+open f,"$ARGV[0]" or die "open romfile fail";
+@txt = <f>;
+close f;
+$len = $len0 = $#txt;
+$len = hex($ARGV[1]) if(@ARGV > 1);
+for($i = 0, $crc = 0xffff;$i < $len;$i++) {
+	if($i <= $len) {
+		$_ = $txt[$i];
+		s/\s//g;
+		$wid = length($_) if($i == 0);
+		$crc = gencrc($crc, $_);
+		$txt[$i] = $_ . "\n";
+	} else {
+		$txt[$i] = join('', map('0', 1..$wid)) . "\n";
+		$crc = gencrc($crc, $txt[$i]);
+	}
+}
+if($wid > 4) {
+	$txt[$len] = join('', map('0', 1..($wid - 4)));
+	$crc = gencrc($crc, $txt[$i]);
+	$txt[$len] .= sprintf("%04x", $crc);
+} else {
+	$txt[$len] .= sprintf("%02x\n%02x\n", $crc >> 8, $crc & 0xff);
+}
+
+printf "%02x\n%02x\n", $crc >> 8, $crc & 0xff;
+open f,">$ARGV[0]";
+print f @txt;
+close f;
