Index: empty.dat
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/empty.dat	(nonexistent)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/empty.dat	(working copy)
@@ -0,0 +1,12288 @@
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+FF
+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: ep.bat
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/ep.bat	(revision 4836)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/ep.bat	(working copy)
@@ -6,6 +6,7 @@
 e er 0 10
 e ew 0 112233
 e er 0 10
-e ep
+e ep .\output\eeprom.dat
+e er 0 10
 e ku
 e au
Index: ep_empty.bat
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/ep_empty.bat	(nonexistent)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/ep_empty.bat	(working copy)
@@ -0,0 +1,12 @@
+e pu
+e 8043 0
+e 807d 3e
+e 80da 6d
+e 80db 6c
+e er 0 10
+e ew 0 112233
+e er 0 10
+e ep empty.dat
+e er 0 10
+e ku
+e au
Index: format/app_mouse.format
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/format/app_mouse.format	(revision 4836)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/format/app_mouse.format	(working copy)
@@ -446,6 +446,41 @@
 1 mem_mouse_delay_send_info_timer
 1 mem_mouse_m_key_press_flag
 1 mem_mouse_m_key_press_count
+
+2 mem_le_info_tx_handle
+// 2 mem_le_app_handle
+// 2 mem_le_device_info_handle
+800 mem_mouse_ble_att_list
+
+//WEBSITE
+1 mem_mouse_website_control_mode
+1 mem_mouse_website_step
+2 mem_mouse_website_ptr
+40 mem_mouse_website_info
+22 mem_mouse_website_info_sign
+1 mem_mouse_website_wait_count
+
+3 mem_usb_win_cmd
+3 mem_usb_mac_cmd
+3 mem_usb_kb_enter
+1 mem_mouse_website_shift_flag
+1 mem_mouse_website_release_flag
+
+
+
+// 1 mem_le_start_auto_reco_timer
+1 mem_computer_system
+// 1 mem_le_connect_ios_mac_flag
+
+// //SYSTEM AUTO RECO
+// 9 mem_le_search_mac_manu_name
+// 2 mem_le_search_mac_uuid
+// 16 mem_le_search_service_uuid
+
+
+// 2 mem_mouse_le_map_len
+// 200 mem_mouse_ble_hid_map
+20 mem_device_info_tx_buf
 )
 
 (
@@ -884,3 +919,43 @@
 6 DATA_DEVICE_INFO
 7 DATA_BATTERY
 )
+
+//CMD Opcode
+(
+1 HCI_CMD_GET_DEVICE_INFO_REQ   //request get device info
+2 HCI_CMD_SET_DPI_REQ           //request set DPI
+3 HCI_CMD_GET_DPI_REQ           //request get DPI
+// 4 HCI_CMD_GET_SN_REQ
+5 HCI_CMD_GET_SN_REQ            //request get SN
+6 HCI_CMD_SET_BATTERY_REQ       //request set battery
+7 HCI_CMD_GET_CONNECT_STATE     //request get connect state
+8 HCI_CMD_SET_B4_FUCTION        //request set B4 function
+9 HCI_CMD_SET_B5_FUNCTION       //request set B5 function
+)
+
+//EVENT Opcode
+(
+1 HCI_EVENT_DEVICE_INFO_REP     //response device info
+2 HCI_EVENT_DPI_RSP             //response DPI
+3 HCI_EVENT_SN_REP              //response SN
+4 HCI_EVENT_KEY_REP             //response key
+5 HCI_EVENT_CONNECT_REP         //response connect state
+6 HCI_EVENT_BATTERY_REP         //response battery
+7 HCI_EVENT_COMMAND_REP         //response command
+8 HCI_EVENT_OPEN_APP_REP        //response open app
+)
+
+(
+0 WEBSITE_DONE
+0 RELEASE_MS_DATA
+1 WEBSITE_WIN
+2 WEBSITE_WIN_RELEASE
+3 WEBSITE_WAIT
+4 WEBSITE_DATA
+5 WEBSITE_ENTER_1
+6 WEBSITE_ENTER_RELEASE_1
+7 WEBSITE_ENTER_2
+8 WEBSITE_ENTER_RELEASE_2
+
+30 WEBSITE_WAIT_COUNT
+)
\ No newline at end of file
Index: output/eeprom.dat
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/output/eeprom.dat	(revision 4836)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/output/eeprom.dat	(working copy)
@@ -18,16 +18,16 @@
 1e
 aa
 55
-80
-18
+30
+1b
 24
 e6
 00
 2c
 6d
 0c
-50
-6e
+57
+db
 49
 7e
 21
@@ -67,31 +67,31 @@
 7f
 55
 2b
-f8
+2f
 ab
 84
 48
 89
 d6
 cc
-10
-f6
+17
+59
 8b
 23
-f3
-1c
+f4
+41
 f0
 f7
-3a
-5a
+3d
+f7
 7c
 6b
-f9
-c2
+fe
+6f
 41
 76
-25
-de
+24
+6b
 f1
 04
 31
@@ -99,47 +99,47 @@
 27
 30
 11
-75
+a7
 5d
 0d
 74
-cd
+32
 7c
 58
-9d
-76
+9e
+24
 b8
 76
-3a
-00
+39
+b6
 eb
 19
-1d
-2b
+1e
+f9
 52
 f6
-dd
-97
+de
+69
 e3
 6e
-8d
-d3
+8e
+25
 5d
 5c
 db
-a2
+70
 ba
 0b
-1a
-3f
+19
+8d
 e5
 98
-b7
-e7
+b0
+8a
 15
 bc
-e0
-38
+e1
+6b
 1c
 84
 c1
@@ -147,51 +147,51 @@
 9c
 52
 df
-8a
+7d
 f1
 b7
 90
-2f
+82
 46
 76
-0d
-cf
+0a
+92
 4b
 f0
-1f
-22
+1e
+51
 91
 bc
-52
-9e
+51
+f0
 50
 77
-20
-92
+23
+cc
 6e
 15
 9e
-0c
+fa
 f7
 b8
 27
-5b
+e9
 04
 e6
 9c
 d8
 4b
 48
-4e
-5b
+49
+0e
 e3
 aa
 0b
-1a
+cd
 1e
 b4
 6e
-8d
+58
 ab
 2c
 4d
@@ -238,12 +238,12 @@
 04
 55
 b2
-e5
-97
+e2
+f8
 3b
 75
-25
-87
+22
+d0
 53
 47
 25
@@ -251,7 +251,7 @@
 6b
 96
 6d
-64
+92
 68
 3b
 28
@@ -262,8 +262,8 @@
 3d
 5f
 8f
-57
-38
+50
+95
 4d
 f0
 8a
@@ -2010,8 +2010,8 @@
 82
 c0
 1a
-ad
-94
+ac
+e2
 d3
 88
 9b
@@ -2054,8 +2054,8 @@
 be
 62
 dd
-b1
-74
+b6
+a7
 48
 44
 7f
@@ -2430,8 +2430,8 @@
 d8
 9b
 eb
-18
-e7
+1b
+5a
 7d
 82
 cd
@@ -2454,28 +2454,28 @@
 1d
 29
 7d
-a6
-9d
+a5
+22
 bf
 84
 05
 06
 52
 b1
-d6
-f4
+d5
+49
 d0
 d3
 a8
 1c
 9c
 b6
-8b
-39
+88
+86
 9a
 13
-87
-82
+84
+3f
 4b
 cd
 29
@@ -2498,8 +2498,8 @@
 6d
 b1
 b3
-36
-93
+35
+28
 8f
 8f
 fa
@@ -2509,16 +2509,16 @@
 07
 4d
 8e
-f5
-cb
+f6
+76
 6b
 51
 13
 d7
 aa
 3f
-20
-de
+23
+5b
 c0
 70
 2e
@@ -2550,8 +2550,8 @@
 0f
 00
 77
-8e
-b9
+8d
+02
 34
 b3
 37
@@ -2562,8 +2562,8 @@
 eb
 56
 9e
-c7
-03
+c4
+b8
 c4
 2a
 38
@@ -2586,16 +2586,16 @@
 e7
 2c
 ab
-44
-7f
+47
+c2
 20
 94
 ac
 75
 43
 fc
-69
-d3
+6a
+6e
 1e
 2f
 76
@@ -3114,16 +3114,16 @@
 66
 d4
 e5
-8f
-26
+8c
+9b
 38
 63
 81
 e8
 90
 48
-fd
-f2
+fe
+77
 bd
 c9
 ad
@@ -3162,5031 +3162,5902 @@
 85
 37
 b3
-22
-b3
-f5
-ca
-18
-13
-41
-e7
-01
-c0
+7d
+f3
+f1
+fe
+42
+a1
+45
+d3
+5b
+7c
 4e
 39
-be
-0b
+e1
+e3
 36
-a0
-dd
-3a
-06
-f9
-d0
-90
-24
-9d
-37
+c0
+80
+0f
+71
+5f
+67
+4b
+74
+b4
+93
 19
-5e
-62
-29
-2f
-64
-94
-d3
-eb
-07
-43
-7e
-4c
-cf
-56
-d1
-33
-49
-da
-32
-a0
-30
-c2
-a4
-d0
+45
+e0
+2a
+0c
+8e
+5a
+ae
 53
-a7
-6a
-38
+e5
+e0
+93
+6e
+d4
+d4
+52
+81
+ab
+79
+df
+a5
+08
+a4
+83
+18
+ab
+25
+ea
+34
 0f
 99
-e1
-6c
-bd
-d1
-cb
+f3
+65
+b9
+8b
+48
+0c
+1e
+89
 2f
-a8
-69
-e1
-12
+77
 db
-91
-e5
-d1
-0b
-60
-c9
-b1
-b3
+8b
+88
+48
+5b
+6b
+d6
 3a
+b2
+da
 c0
-65
-9a
-55
-f2
-a5
-e0
-45
-7b
-67
-50
-78
-2e
+6f
 e2
-80
-b5
+75
+9c
+0c
+98
+65
+07
+96
+6f
 88
-be
-89
-a1
-8d
-3a
-45
-5f
-b2
-06
-be
+af
+a3
+c7
 71
-0e
-aa
-ba
-13
-23
-2b
-f0
-72
-4f
-2f
-d2
-7d
-05
-21
-1b
-b9
-b7
-d8
-34
-d3
+ad
+2c
+c6
+01
+46
+75
+f5
+14
+ae
+32
+16
+39
 4b
-e4
-64
-40
-92
-a9
-c9
-49
-5f
-e5
-b3
-79
-5c
-de
-b1
-e7
-de
-73
-5d
+c8
+5a
+52
+4e
 91
-f0
-37
-59
-41
-b9
-25
-e5
-a1
-ea
+58
+3b
+0a
+e3
+32
+3f
+68
 b5
-6e
-2d
-6d
-8d
-ad
+fb
+fb
+61
+94
+d4
+90
+1c
+4d
+cc
+0b
+d7
+a0
+29
+0d
+33
+a1
+fb
+51
+9a
+95
+e1
+89
+d7
+7d
+12
 53
-ab
+eb
+c1
+b1
+4f
+21
+27
+5d
+a3
 e4
+72
+29
+8c
+20
+ac
 e2
-5e
-50
-d4
+f3
+66
+15
 4d
-ba
-48
-2f
-32
-85
-91
-a4
-88
-58
+bf
+13
+21
+5b
+7b
+f8
+83
+75
+24
+34
+35
+8c
 2d
-f7
+d5
+78
+c0
+a0
+88
+01
+93
+e1
+01
 98
+50
+34
+f6
+93
+d3
+b0
+6c
+9b
+b7
+f8
 98
-c4
-aa
-ef
-22
-f9
-e8
-17
-f7
-ed
-66
-83
-de
-2e
-b6
-f8
-38
-50
-9e
-da
-06
-00
-29
-a0
-98
-e2
-9f
-30
-d2
-b2
-39
-ba
-b7
-1d
+c5
+8a
+72
 65
-60
-f7
+07
+97
+79
+2c
 b1
-98
-59
-59
-5d
-6f
-f4
-31
+77
+13
+37
+6e
+fa
+93
+06
+c6
+d7
+d7
+ff
 5a
-33
-3f
-35
-67
-40
-4d
+41
+f9
+9e
+ed
+14
+71
+25
+e8
+c7
 95
-e1
-19
-30
-0a
-19
-3b
-eb
-91
-75
+e7
+94
+1d
+9b
 fb
-1e
-65
-a0
+90
+7f
+da
+9a
+f5
+fc
+3f
+d3
+17
+76
+69
+36
 0e
-31
+ce
 63
-28
-44
-a2
-bd
-43
-38
-27
-3a
-cb
-88
-88
-f3
-b5
+73
+05
+08
+d3
+25
+29
 dd
-8f
-6b
-60
-db
-71
+7a
+49
+8b
+cf
+64
+51
+d8
+40
+eb
+e0
+ca
+41
 15
-f9
-55
-cd
+37
+2c
+3a
+41
+27
 e7
 95
-8e
-2d
-89
-a6
-ec
-2b
-b4
-d0
-02
-3f
+eb
+a1
+b5
+a3
+b5
 1e
-14
+76
+90
+81
+ea
 02
-a1
-2a
-f2
-3d
-ed
-a5
-df
-07
-6f
-ef
+9b
+28
+d3
+6e
+d7
+85
+7a
+62
+8d
+af
 bf
-48
-a6
-a7
-ec
-2b
-b7
-9d
+90
+d3
+05
+26
+9a
+f0
+1d
+a8
 2e
-5e
-db
-f6
-30
-81
-f3
-51
-68
-66
-38
-81
-27
+99
+96
+dd
+c9
+bc
+f0
+4d
+74
+07
+41
 b2
-52
+8b
+5a
 6f
-a4
-1c
-cb
-fa
-ea
-4d
-6b
-89
-29
-15
-69
-42
-8d
-f6
-bd
-39
-36
-20
+af
+9b
+63
+f4
+59
+b4
+d3
+e8
+0c
+51
+21
+31
 c0
-9e
-45
-ac
-3c
-3a
-a5
-7e
-9e
-d9
-b7
-08
-51
-be
-0b
-1e
+f7
+72
+f9
+83
+43
+ff
+38
+0c
+a9
+38
+5b
+90
+44
+60
+b5
+82
+ef
+ef
+cf
+9c
+98
 3d
-ce
-8d
-2c
-da
+af
+b8
+c7
+5a
 7b
-da
-91
-c6
-10
-c6
-62
-75
-73
-4f
-32
-20
-f1
-25
-50
-94
+9f
+ee
+f9
+cc
+b9
+d0
+3e
+b0
+09
+8a
+92
+fb
+60
+ee
+96
 ea
-de
+80
 da
 db
-32
-61
-c2
-04
-6f
-8b
-21
-f2
-8b
-64
-32
-a7
+31
+e1
+37
+fe
+0f
+be
+7f
+07
+29
 01
-db
-b4
-12
-79
-ef
-71
-1c
-42
-24
-19
+21
+45
+bb
 38
-f7
-32
-09
-e4
-15
-df
-83
+73
+2d
+bf
+a6
+02
+53
+80
+62
+87
+07
+2b
+7c
+04
+ab
+d6
+19
+1c
 88
+8f
+74
+e1
+2d
+6b
+c7
+4e
+80
+b6
+9d
+cb
+32
 89
-f6
-ce
-6a
-a8
-01
-2f
-b0
-bf
-1f
-ef
-7d
-4b
-6d
-8a
-e3
-59
-a5
-16
-18
-ce
 2b
-67
+eb
+03
+3b
+26
+68
+e2
+ce
+1e
+d9
 b9
-bc
-33
-99
-51
+fc
+86
+d0
+ab
 50
-e5
-1a
+d7
+be
 16
-ed
-88
-50
-7a
-ca
-b7
-11
-93
-94
-4e
+cd
+dc
+6b
+d0
+a1
+f7
+26
+eb
+f4
+04
+77
+0e
+de
 68
-b3
-1f
-2b
-0a
-80
-16
+18
+f8
+76
 11
-f0
-af
-5b
-e0
-21
+d0
+d2
+9a
+01
+64
 67
-a6
-37
-65
-39
-c7
-db
-f6
-4b
-70
-4e
-4a
-3a
+86
+63
 29
-95
-f4
+4c
+03
+3e
+fb
+a8
+9a
+ce
+4a
+50
+4e
+8a
+2c
 0e
 e5
 5b
 11
-1a
-00
-80
-66
-f1
-3d
-e9
-77
-24
-62
-f5
-f3
-91
-98
-0b
-48
-21
-d5
+05
+ac
+74
+82
+f6
+96
+e2
+9f
+53
+c4
+09
+cc
+69
+7a
+c6
+b7
+26
+7f
+fc
+12
+af
+ad
+07
 77
+50
+12
+0c
+c1
+3c
+88
+12
+4e
+28
+2b
+06
+12
+83
+9e
+4d
+94
 dc
-97
-95
-75
-77
-98
-72
-8f
-aa
-cb
-2e
-aa
-79
-2c
-73
-85
-84
-2e
-7f
-0a
-ec
-3f
-d3
-c0
+36
+40
 e4
-c1
-87
-f6
-08
+db
+e8
+02
+fa
 07
-93
-9a
-b6
+b3
+af
+02
+e2
+22
+e6
+47
+61
+79
+22
+51
 ed
-8a
-ee
-c4
 11
-79
-1a
-79
-4f
-e2
-75
-96
-63
-04
-9a
-5b
-c9
-06
-2e
-8f
-9a
-f6
-fa
-e5
-6e
-c9
-c8
-b2
-8e
-62
-94
 b8
-08
+ad
+cd
+6b
+5c
+77
+21
+0e
+f5
+8f
+ce
 99
-06
-5d
-9a
-e3
-9b
-93
-28
-d0
-c6
-69
-ed
-00
+9f
+57
+21
+49
+0e
+94
+b1
+c4
+eb
+14
+5c
+f6
+b1
+f8
+85
+4d
+e8
+b9
 87
-c3
+33
+8e
+f6
+aa
+83
+c9
+75
 67
-ec
-c3
+ed
+4e
 a5
-f5
-94
-dd
+fa
+3d
+55
+49
+f3
+8a
+ce
+14
+c7
+a5
+81
+e6
+a8
+4e
+24
+3e
+ba
+d7
+4a
+09
+e4
+dc
+7b
+de
+03
+ae
+c1
+13
+42
+d9
+bb
+ca
+87
+03
+b6
+1d
+6d
+ae
+12
+e5
+4e
+5b
+97
+af
+c0
+38
+9f
 d2
-04
-2d
-f9
-3a
-84
-26
-4f
-58
 02
-28
+22
+ef
 02
-2a
-ba
-d6
-c7
-6e
-ab
-7c
-90
-18
-19
-9d
-c2
-aa
-f5
-f9
-33
-55
-3f
-65
-b6
-c7
-91
-6f
-5c
-51
-fe
-9b
-51
-9e
-20
-18
-d4
-64
-3d
-82
-13
-53
-f5
+e2
+6c
+0f
+cb
+5b
+a1
+24
+32
 c2
-7d
-ec
-eb
-ee
-92
-8f
-6d
-4c
+ac
+90
+49
+da
+46
+f3
 e1
-d2
-9d
-86
-0a
-42
 97
-26
-5d
+2e
+cc
 61
-35
-aa
-60
-04
-39
-e6
+7a
+6a
+a5
+89
+d9
+a7
+cf
+b0
+ff
+14
+44
+a8
+51
+50
+9a
+bf
+66
+5d
+67
+08
 4f
-a3
-90
-ba
-0e
-af
-46
-fe
-e9
-98
-c9
-bd
-17
-be
-e8
-90
-5f
-ee
+71
+92
+e7
 89
-3b
-d0
-0e
+34
+26
+0b
 95
-cc
-ea
-94
-ce
-1b
-03
-12
-75
+8c
+e9
+3c
+9e
+1a
+41
+bf
+25
+ca
+d9
+7b
+ef
+d5
+ff
+47
+83
+83
+d6
+29
+74
+53
+27
+d5
+66
+fa
+be
+f3
+c6
+91
+e0
 e4
-6d
-73
-c7
-9b
-28
-72
-c4
-42
-90
-79
-34
-15
-39
-01
-21
-79
+47
 7b
-09
+fe
+88
 3f
-b1
-b3
-13
-4b
-01
-a0
-8d
-28
-42
-dc
-8b
-e3
-1d
-fa
-2f
+bb
+b0
+36
+0d
+c4
+78
+2c
 8b
-3d
-f3
-db
-f1
-a3
-51
-8a
+9d
+9d
+66
+99
+65
+ad
+06
 d2
-c5
-6d
-a7
+f2
+6e
+6a
 71
-cb
-fa
-5e
+ab
+b4
+bb
 69
-99
-b5
-04
-a9
-21
-4e
-13
+f9
+35
+f2
+50
+61
+16
+cf
 6a
 43
-2f
-6f
+21
+d6
 c3
 85
-36
-c4
-7c
-04
-b2
-c9
-48
-21
-83
-11
-14
-fa
-07
-66
-3d
-93
-55
 0b
-f2
-b4
-0e
-f6
+c5
+d5
+4f
+97
+9a
+07
+e2
+af
+77
+2b
+19
+4c
+5e
+35
+87
+93
+59
+fd
+7b
+d3
+02
 50
 99
-43
-d4
-a4
-a2
-e8
-41
-8e
-03
-37
-95
-c6
+99
+0b
 f4
-c8
-22
-98
+c9
+a3
+6d
+c6
+0b
+f5
+25
+c6
 f4
-cf
-8c
-63
-8a
-9b
-88
-a1
-9a
-70
-42
-d4
-7b
-86
-68
-a4
-ee
-77
-3a
-96
-d3
-51
-fe
-eb
+a5
+31
+d0
+fc
+0a
+33
 2c
-ab
-35
-38
-e1
-ba
-0f
-b2
-68
-96
-52
-55
-85
-4f
-d9
+2b
+b3
+d5
+59
+9a
+8f
+1a
+6c
+7d
+ae
+91
+ec
+84
+32
+80
 d6
-98
-16
-a7
+da
+78
+7f
+a3
+24
+31
+e2
+77
 21
-f7
-4a
+1c
+a1
+ba
+6a
+10
+99
+ed
+e5
+ed
 55
-1d
-cc
-45
-b9
-87
-57
+91
+3a
+3a
+b6
+6e
+53
+0e
+b5
+12
+63
+b8
+5f
 cc
-0f
-0a
-d3
-bb
-a4
+f7
+e0
+00
+53
+b3
+29
+61
 ef
 71
-bc
-86
-6a
-a6
-36
-34
-b2
-a3
-7a
-f5
-7b
-fa
-16
-0e
-17
-bd
-7c
-f0
-61
-04
-a1
-87
-ce
-b7
-0f
-2d
+c2
+01
+6e
+d3
+c9
+7f
+ea
+9a
+3e
+93
+7f
+3e
+14
+0d
+50
+3f
+3c
+41
+31
+62
+e3
+ac
+81
+37
+c4
+32
 b1
-08
+72
 1d
-71
-76
-3a
-a7
-30
+56
+0e
+1a
+fb
+20
 eb
-f0
+90
 f2
-b6
-fd
-ab
-14
-a6
-49
+96
+bd
+8f
+0e
+dd
+fe
+72
+d6
+ef
+de
+02
+3a
+83
+a3
+1c
 52
+07
+c2
+f1
+55
 90
-f9
-c7
-a2
+bd
 7a
-4f
-43
-5c
-ad
-71
-da
-30
-d6
-ba
-bd
-5a
-1e
-dd
+62
+54
 5a
-3d
-17
-1b
+2e
+d1
+f3
 65
-97
-2c
-4b
-73
-01
-c4
-d2
-a1
-61
-69
-de
-c1
-83
-a7
-f2
 94
-88
-30
-e3
-62
-16
-72
-ee
-0c
-b8
-42
-38
-f6
-fb
-2c
 ad
-6f
-d9
-fe
-da
-9d
-99
-40
-01
-1b
+b2
+04
+a0
+a6
+bc
+19
+a2
+2b
+09
+3b
+c3
+a7
+e4
+21
+0b
+f7
+db
+32
+2c
+b1
+f8
+8c
+bb
+84
+52
+3e
+9b
+af
+42
+98
+7b
+c5
+c9
+79
+ba
+c4
+07
+24
 53
-f0
-76
+70
+67
+6a
 7d
-e4
-35
-f9
-bf
-5d
-1b
-68
-dc
-f1
-da
+e8
+fd
+85
+3d
+bd
+60
+e6
+d1
+78
+d4
+f7
 c2
-15
-e2
-5c
-bb
-25
-a9
+04
 18
-2b
-0c
-83
+50
+0b
+9c
+19
+ed
+79
 f0
 40
-be
-12
-90
-bc
-63
-bb
-ae
-4d
-02
-6c
-b8
+f9
+b2
+32
+dc
 2c
-23
-76
+18
+c4
+40
+45
+af
 9a
-1b
+4f
+23
+74
+16
+a1
 e6
-5b
-27
+db
+60
+f2
+4a
+c1
+c1
+69
+39
 6d
-0d
-a0
-bf
-6a
-f1
-14
-d7
-0e
-75
-49
-d2
-e2
+53
+1b
+cd
+2f
+9b
+83
 62
-eb
-80
-f1
+89
+69
+e7
+8c
+e8
+96
+a7
+14
+a3
+5f
+37
+34
+26
 b4
-68
-2c
-f1
-f2
-8f
-6e
-a0
-30
-71
-01
-99
-d4
-bf
-38
-05
+1f
+2e
+df
+48
+0c
 3f
 96
-90
-3f
-16
-40
-b6
-dc
-53
-9c
-53
-3b
-3b
-6b
-17
+93
+24
+29
+9a
+4d
+1b
+23
+91
 e8
-68
-ff
-72
-9b
-60
-32
-11
-97
-60
-54
-06
-4f
-ef
-76
-1e
-c3
+fa
+c9
+01
 f0
-ad
+67
+9f
+59
+8e
+a9
+a7
+f0
+15
 99
-3e
-3a
-6a
-27
-d2
+81
+ee
 33
-5d
-aa
-4c
-0f
-90
-06
-b8
-2e
-f0
-e7
-92
-bb
-41
-60
-ae
-fe
-f3
-c0
-97
-80
-27
-97
+21
+ef
+72
 9f
+b6
+f2
+35
+7d
+53
+da
+4b
+16
+b3
+7c
+dd
+6f
+af
+40
+49
+35
+e2
+26
+f2
+e4
+1a
+cb
+42
+dc
 74
+fe
+f1
+c3
+19
+8f
+a8
+69
+96
+74
+5b
 58
-9c
-b2
-3d
-5c
-02
-bc
-29
-39
-1e
-58
-5f
-fc
-87
-49
+28
+9a
+bd
+c0
+e2
+66
+fa
+69
+0e
+18
+3f
+74
+7b
 58
-e7
-29
-ce
+a7
+1b
+52
 b9
 88
-bf
-01
-6b
-09
-4f
-78
-39
+ef
+6f
+3b
+02
+6e
+35
+41
+cf
+81
 8f
-9e
-ad
-07
-34
-c1
-7c
-db
-c0
-f1
-0a
-31
-fb
-28
+40
+95
+e3
+53
 a3
+80
+90
+9b
+76
+5a
+0a
+fc
 7a
 db
-36
-bd
-4f
-24
-0f
-45
-39
+50
+7f
+00
+80
+7d
 67
-d2
-ae
-b6
-a2
-49
-ec
+da
+ad
+0d
+73
+e6
+a5
+f0
+56
 fd
-ab
-71
-ac
-c8
-04
-cd
-bb
-70
-a8
-de
-29
-6e
-96
+8b
+75
+e4
+87
+a6
+8c
+0f
+38
+a2
+c0
 3d
-be
+d6
+90
+1a
+15
 7e
-0c
-d9
-66
+6e
+06
+b2
+5a
+1e
+16
 15
-bc
-08
-99
 2e
-09
-92
-ef
+33
+c9
+0e
 53
-d5
-09
-e4
-dc
-c1
-ff
-1f
-3d
-d2
-78
-08
-25
-0a
-90
-ef
-8f
-79
-4f
-29
-46
-98
-b7
-c5
-cd
-55
-48
-dd
+b5
+56
+10
+93
+61
+60
+cc
+39
+e8
+23
+f3
+6a
+ab
+d0
+5e
+6c
+bc
+99
+9f
+0c
+f9
+ae
+3b
 cd
-5d
-bb
-51
-78
-bb
-9e
-9e
-72
-4e
-31
-d9
+35
+21
+6c
+77
+75
+36
+35
+cd
+1b
+58
+30
+97
+7d
+77
+70
 de
 db
+7d
+93
+00
+f3
+74
 73
-c5
-59
-35
-88
-73
-1c
+e2
+08
+a6
+58
+19
+7c
+4a
 49
-eb
-46
-ac
-dc
-88
-22
-ad
-d8
-11
-b8
-79
-de
-d6
-ec
-c4
-21
+92
+1e
+2f
+5a
+2d
+b7
+a9
+bc
+db
+8a
+b6
+2c
+c0
+09
+33
+ef
+0e
+9f
+2e
+e7
 55
-f5
-20
-29
-37
+46
+04
+1c
+1d
+12
+26
 1b
-41
-1f
-e5
-a6
-1a
-dc
-c2
+c7
+32
+7e
+fe
 3a
+eb
+b7
+fa
+6e
+3f
+aa
+5c
+f9
+7f
 af
-3a
-ab
-7e
-85
-34
-02
-74
-3e
-a9
+61
+2b
+f9
+ea
+15
+00
+ae
+57
+c8
 75
-1a
-c4
 19
-c6
-59
-4b
-77
+f4
+b6
 33
-aa
+e4
+c1
+4c
+9f
+ea
+4e
+01
+2b
 64
-39
-6e
-dd
-1f
-dd
-14
-ec
-c0
-b9
-36
-c6
-8b
-82
-ff
-ac
-d4
-6b
-87
-6a
-23
 64
+d4
 62
-31
-d2
-89
-40
-22
-fd
-b3
-f8
-fb
-1c
-7b
-e5
-9a
+ce
+0a
+34
+c2
+33
+07
+04
+61
+f9
+5d
+bf
 0e
-37
+16
 89
-5a
+43
 e9
+42
+4a
+a5
+3d
+e8
+cd
+a5
+71
+28
 48
-79
-d4
-dd
-d1
-fe
-dc
-c1
-70
-6a
-8e
-76
-ef
-d5
-4e
-7b
-d6
-7a
-20
-fd
-96
-b2
-9c
-18
-6d
-23
-d2
+19
+d9
+13
 97
+c3
+7b
+ca
+fa
+e4
+22
+7c
+48
+f5
+5f
+ad
+bf
+34
+0f
 c9
-09
-dc
-a4
-87
-6d
-8e
+be
+d7
+03
+64
+25
+ff
 85
-11
-40
-31
+1b
+41
+3e
 1f
-a0
-6d
-86
-45
-98
-63
-78
-c7
-9e
-30
-34
-44
-7c
-27
-f7
-1d
+e0
+37
+56
+5a
 39
-d9
-af
-f1
-7a
-c6
-d0
-81
-df
+e5
+ee
+27
+fe
+b4
+44
+6c
+34
+01
+d6
+5a
+f8
+98
 25
-95
-4e
-70
-2f
-c4
-31
-ac
-aa
-0d
-60
-70
-77
-74
-ae
-86
-68
+89
+3a
+fe
+14
+96
+76
+24
+6a
+01
+b0
+b0
+2b
 72
-ac
-7d
+79
+c6
+12
+77
+89
+af
+82
+f6
+bf
+20
+76
+a8
+87
 52
 6a
 54
-40
+8a
+1b
+7c
+8d
+10
+5c
 9f
-0e
-dd
-0f
-dd
-fb
 9f
-26
-4d
-41
-48
-15
-3e
-40
-54
-4b
-19
-ff
-a0
-f3
-b1
-84
-dc
-22
-da
+66
+6d
+42
+30
+55
+3d
+93
+13
+eb
+8b
+24
+e7
+33
+1b
+85
+f4
+69
+f8
 b8
-26
-26
-51
-53
-d1
-7e
-06
-5f
-9b
-8e
-2e
-e5
+31
+8c
+33
+c6
+ce
+da
+d0
+84
+24
+2d
+65
+cb
 29
 44
 4e
 c5
-16
-4d
-90
-24
-2d
+fb
+2f
+ea
+b6
+d5
 6f
-f4
+2b
+5b
+6d
+5f
+b7
+da
+5c
+06
+4a
+bd
+e9
 54
-2d
-36
-a1
-25
-1c
-0f
-0d
-f9
-b9
-53
-45
-73
-6b
-28
-8a
-42
-fa
+83
 e2
-26
-1b
-9e
-40
-6b
-a0
+3b
+21
+d8
+da
 b5
-51
-9b
-df
-ef
-d4
+43
+49
+5e
+66
+40
+9a
+8e
+42
+f6
+a4
+30
+0d
+75
 e8
-bd
-a9
-70
-d8
-28
-f3
 ae
+0b
+b9
+dc
+5a
+f3
+ce
 56
-f8
+7e
 11
-c1
-41
-f0
-a4
-a7
-09
-ca
-15
-97
-07
-9b
-ed
-de
-2d
-81
-f0
-e9
-0b
-6c
-8d
-38
-d4
-96
-69
-a4
-41
-a0
-53
-f4
-7a
-6d
-ac
-e0
-2c
-6d
-64
+c0
+cb
+be
+01
 c7
+8d
+50
 5a
+57
+93
+54
+d2
+7f
+3f
+3e
+bf
+4d
+17
+5e
+62
+56
+fe
+36
+22
+04
+61
+44
+57
+8e
+c2
+05
+ac
 80
-f8
-9c
-86
-aa
-f0
+25
+c6
+2b
+05
+43
+8f
 f0
-6e
-c4
+9e
+05
+24
+88
+f4
+54
+56
 bd
-86
-94
-5c
+a7
 a1
-2b
-4b
-b9
-91
 06
-02
-d8
+f1
+2d
+71
+b2
+91
+26
+63
+56
 13
 e1
-f0
-f1
-72
-2b
-7e
-eb
-b9
-15
-ce
-6b
-7c
-7e
-ee
+ae
+23
+22
+4c
+5f
+7b
+e9
+10
+36
+ca
+2c
+1b
+56
+02
+ca
+44
+40
+90
+d8
+ad
+68
+d1
+a7
+ea
 9e
-d5
-ef
-c6
-fc
+af
+c3
 76
-4f
-2d
-39
-0f
-a0
-5f
-ed
-9b
-31
-ff
-62
+87
+c9
 50
-3f
-85
+3d
+05
 92
-d4
-7a
-08
-e2
-b2
-88
-17
-ae
-5f
-09
-25
-09
-35
-ac
-2a
-20
+9b
+d9
+4a
+21
+f5
+4b
+36
+fa
+10
+aa
+67
+cc
+22
+04
+28
+f1
 ff
-5a
-ac
-69
+1a
+cc
+ed
 49
-37
-51
-1c
+34
+dd
+6e
 03
-72
-9e
-f8
-84
-7b
-5f
-38
+71
+1e
+af
+cb
+b8
+79
+55
 29
-d6
+b6
 09
-d8
+da
 19
-5f
-9f
-8b
-a9
-35
-18
+5b
+10
+e2
+ac
+34
+98
 7f
-6c
+db
 d2
-fa
-2b
-9c
-8f
+3c
+29
+98
+f5
 35
-49
-14
-34
-e4
-54
-1e
-c6
-e0
-ed
-2a
-0f
-8b
-92
-74
-2d
-fc
-e7
-53
-cd
-d2
-7f
-52
-b6
+bf
+5b
+94
+25
 00
-d9
-2a
-39
-a5
-fc
-fc
-1f
-48
-20
-ba
-f2
-35
-2a
-05
-1b
-40
-1e
-ab
-0a
-7e
-bb
-2c
-a5
+fe
 84
-26
-da
-b1
-80
-19
+60
+e9
+ca
+2f
+53
+89
 db
+cc
+f8
+12
+b2
+77
+b2
+2a
 5a
-43
-8d
-3e
-d2
-7f
-51
-78
-86
-fe
-fa
-6d
-fd
-bf
-2c
-ce
-d6
-31
-98
-de
+b2
+8e
 90
-aa
-b3
-63
-c5
+87
+45
+a0
+38
+59
 64
-08
-0a
-41
-53
-79
-32
-01
-8e
-16
-51
-29
-1c
-8a
-d9
-d7
-2f
-fc
-df
-65
-08
-98
-8e
-4e
-c0
+05
+c7
+f5
 31
-22
-f7
-bf
-49
-49
-cf
-9f
-56
-a6
-b0
-9a
-92
-46
-b7
-34
-1d
-08
-02
 9c
-b9
-34
-d8
+12
+b2
+3a
+43
+af
+13
+cb
+3b
+66
+b4
+a3
 e6
+25
+62
+d7
+c9
+2d
+94
+9c
+d8
+f7
+e5
+0d
+93
+0f
 d5
-03
+66
+3d
+5f
+8d
+9d
+5f
+75
+34
+b6
+17
+e7
+c1
+36
+0a
+d4
+5c
+05
+cf
+66
+7a
+4a
+ea
+67
+6b
+3e
+4c
+4f
+fc
+40
+7c
+e1
+fc
+be
+cf
+b4
+3e
+df
+0c
+24
+8e
+4a
+41
+44
+20
 68
-5e
+3f
+48
+e6
+2e
 5d
-87
-ba
-8f
-0d
-36
-7d
-78
-5b
-51
-e8
-42
-af
-a1
-2d
+e5
+46
+d0
 9e
-0d
-0e
-8c
-9a
-35
+4e
+09
+74
+61
 f4
-99
 4f
-64
-37
+a1
+8e
+7d
+7b
+0f
+a0
+d6
+14
+cd
+7e
+33
+c8
+3b
+c8
+2c
+3e
+7f
+3c
+fd
+46
+4e
+e6
+db
+ee
+ee
+e9
+e2
+06
+8f
+1a
+28
+14
+f9
+2f
+03
+37
 05
-59
-92
+06
+38
 f1
-e4
-5e
-43
-41
-a4
-ed
-e7
-62
-f5
-c8
-c4
+84
+3b
+ca
+0e
+00
+ff
+c9
+81
+bd
+49
+fe
 30
 46
 96
-92
+b6
 6f
 63
-7b
-06
+4e
+b4
 b3
-3a
-48
-a7
-19
-af
-08
-72
-f7
-c6
-f0
+4e
+1a
+4e
+56
+0b
+7a
 50
+15
+1e
+ab
+5e
 ed
-9c
-d7
+fc
+b3
+c7
+3e
+44
+50
 16
-71
-e4
-95
-a2
-68
-9f
-62
-7c
+2f
+3f
+ac
+86
 e3
-41
-da
-29
+61
+81
+b2
 bd
 74
-13
-0c
+2a
+a9
 91
 4d
-13
-c1
+30
+a5
 1e
 6f
-b5
-5f
-b9
-66
-23
-c8
-80
-03
+ea
 62
-77
-5f
-c7
-fe
-20
+e9
+6d
+5a
+28
+80
+63
+67
 f8
+10
+63
+e2
+d7
+1c
+f6
+7f
+5d
+49
+9d
+b7
+44
+57
+b4
+5e
+be
 a2
-24
-a6
-06
-3d
-74
-08
-b6
-8b
-88
-08
-58
-56
-c7
-13
-ad
-9e
-b9
+36
+9b
+1d
+fd
+f7
+92
 6b
-8c
-41
-38
-e0
-61
+3e
+69
+b5
+e9
+9b
 0d
-29
-70
-b4
-47
-92
-03
+2c
+fb
+f3
+87
+19
+97
 ec
 24
-9b
-2b
-07
-1a
-5e
+95
+05
+06
+e5
+5b
+a9
+e6
+03
+5c
+d2
+f9
+34
+12
+c5
+22
+1d
+ca
+44
+2a
+c6
+09
+0b
+82
+e3
+f2
+d0
+8c
+94
+de
+ea
+6e
+bc
 a0
-1c
+eb
 23
-4d
-70
-39
-56
-68
-3f
-c0
-bf
-5e
-44
-7a
-ce
-76
-f5
-9d
-48
-1f
-55
-6d
-b4
-de
-7a
-71
-14
-11
-aa
-23
-24
-54
-6f
-2a
-74
+7e
+02
 85
-0f
-45
-3b
+9f
+f4
+06
+37
+5e
+fb
 d4
-88
-75
-d6
-d2
-07
-21
-e0
-4b
-50
-d0
-18
+02
+3a
+16
+5b
 c2
-6b
+3b
+ff
+84
+52
+ca
+0d
+9d
+81
 79
-19
-ea
-22
-7c
-3f
-5c
-7c
-f4
-a6
-77
-7c
-2a
-19
-3a
-e1
-62
+59
+a8
+c2
+d6
+14
+3e
+57
+0e
+c6
+72
+f9
+7a
+72
 5d
-25
-7f
-40
-4a
-a1
-33
-7b
-4e
-6f
-b9
+ef
+2d
+9d
+ec
+84
+4f
+e2
+a7
+ba
+2b
+49
+47
+0f
 9b
-82
-73
-fb
-08
-05
-98
-e0
-c7
-fa
+c2
+77
+03
+7d
 83
-96
-15
-6e
-10
-a4
-26
-68
-44
-b4
-54
-76
-2b
-1b
-b0
-2c
-98
+a1
+f3
+c5
+4f
+50
+6a
+ba
+84
+5c
+f7
+f9
+93
+67
+ad
+fb
+88
+e8
 0b
-e6
-e5
-f8
 b0
-c9
-82
-a5
-6f
+4f
+98
+4d
+06
+d8
+ab
+25
+66
+68
+66
+33
 7f
-5e
-a4
-d2
-9c
-f9
-54
-81
 3e
-4a
-6a
-44
-6d
-bd
-70
-d0
-46
 a7
-af
-43
-58
-d2
-72
-f7
-d5
-d6
-00
 57
+ac
+b1
+92
+c8
+79
+88
+20
+f1
+07
+94
+4e
+da
+01
+67
+3c
+eb
+28
+d1
+4b
 62
-54
-e7
-35
+0a
+34
+a1
+4a
+0a
+5e
+85
+21
 59
-d5
-c1
-68
-c8
+b5
+aa
+80
+f2
+d7
+0c
+74
+61
+18
+ea
+b7
+b9
+c5
+79
+ce
+58
+a8
+f3
+7f
+5a
+c6
 f5
 52
-9b
-31
-10
-fb
-03
-cc
-47
-b2
-6f
-1f
-08
-52
-3b
+74
+ce
+7f
+13
+b5
+c1
+8c
+f6
+25
+82
 07
-c6
-0b
-a4
-3b
-6e
-ec
-2a
-b1
-9b
-d5
-df
-75
-88
-35
-b1
-95
-f2
-e8
-0f
+04
+c1
+cc
+ed
+11
 53
-e8
-f8
-e0
-43
-36
-dc
-72
-93
-2f
-07
-c2
 c8
-0c
-9d
-52
-34
-bc
+ce
+5e
+3b
+76
+d9
+5b
+d4
+ef
+fb
+dd
+f7
+ec
+57
+57
+0b
+58
 03
-75
+63
 61
-2c
-08
-84
-3a
-fe
-a7
+2f
+4f
+5a
+6a
+d9
+33
 67
-45
-6c
+ed
+6a
 f1
-df
+d9
 31
-b7
-79
-44
-09
-04
-29
-ee
-a4
-92
-7e
-c6
-f1
-2d
-7e
-1c
-3b
-63
-df
-80
-68
-7c
-3f
+b3
+f8
+af
+b2
+b6
+52
 df
-9c
-38
-f5
-0c
-a4
-d2
-cc
-a1
-11
-e8
-e4
-7c
-7e
-75
+1b
+32
+b8
+39
+b1
+24
+0a
+88
+04
+d5
+62
+aa
 7f
-92
+d9
+b8
+70
+b4
+71
 a3
-c6
-11
-d1
-47
-5f
-63
-dc
+0c
+e3
+71
+2d
+2c
+56
+48
+79
+05
+61
+d3
+03
+7c
+41
+05
+cd
+07
+a5
+ff
+43
+0b
 9e
-8a
-36
-68
-de
-d0
-b2
-c9
-d8
-5f
-3f
-97
+ea
+30
+e0
+91
+71
+f4
+0f
+3a
+9f
+2b
+c2
 78
 56
-c0
-70
-35
+ce
+7e
+0a
+bc
+51
+71
+c7
+b0
+c5
+73
+09
 1d
-76
-31
-8f
-b8
+a4
+4f
+73
+8b
+f5
 58
-08
-e9
-dc
-25
-4d
-3c
-2b
-5b
-e7
-16
-86
-7b
-aa
+12
+fc
+2c
+2a
 f3
 66
 7a
-f9
+d6
 1e
-e4
-c4
-7f
-26
-9f
-46
-d0
-7d
-97
-3d
-a4
-b1
-3f
-57
+e6
+4a
+d4
+61
+07
 03
+38
+3a
+55
+06
+8f
+57
+ec
+62
+59
 f5
 0c
-ec
-d2
+e6
+d8
 a0
 ab
-70
-99
-88
-f4
-b8
+14
+53
+8c
 c0
-30
-6c
-25
-63
+e2
+b3
+2f
+cb
+9f
+1f
 2a
-25
-e7
+27
+67
 fe
-ad
-96
+f9
+89
+da
+f3
+fe
+cc
+45
+0e
+02
+97
+31
 3d
-ae
-e1
-63
-42
-17
-ae
-7e
-71
-87
-40
-9e
-1b
-f0
-79
-e9
-e8
-ac
+47
+34
+97
+78
+c5
+95
+f4
+1a
 f5
-6b
-e8
-ee
+49
+6d
+ba
 90
-7d
-8d
-05
-27
-0d
-20
-8f
-72
-32
-75
-25
-95
-80
+1d
 e8
-78
+ff
+68
+cd
+86
+94
+93
+8d
+f0
+7d
+8a
+2b
+6f
+0f
 ca
-d2
-7a
-38
-27
+88
+1a
+bc
+57
 c7
-b2
-5e
+87
+a6
 88
 ed
-f1
-15
-d0
-dc
-bd
-57
-3a
-ad
-c8
-06
-62
-2f
+f7
+29
+a8
+fc
+dd
+41
+7d
+0f
+85
+19
+2d
 ef
-13
-20
-9a
-1c
-18
-2b
-f4
-61
-cd
-91
-6d
-9d
-e2
+7d
+1a
+c1
+da
+9c
+9f
+64
+54
+a2
+e4
+95
+77
+c1
+5f
 aa
-ad
-15
-c6
-7c
-db
 a9
-d4
-15
-c3
+97
+37
+78
+cc
+2c
+b9
+16
+dc
 96
-a1
-10
-fd
-e5
-e3
+a9
+f0
+bc
+65
+f8
 6e
-3c
-b3
-77
-e2
-7d
-98
 5c
-7d
-90
-ca
-94
-85
-24
-b9
-02
+d6
+4b
+e5
+d1
+19
+15
+9f
+4f
+a1
+0e
+2f
+f4
+7a
+31
 80
 b7
-51
-69
-19
-af
-bb
-7e
-4c
-99
-ad
-3f
-af
-2b
-bc
-8c
-f2
-95
-39
-6e
-c2
-60
-ad
-1e
-fe
-a3
 64
-ef
-af
-f7
-9b
-cf
-54
-56
-f3
-35
+be
+1e
+06
+38
 f2
-93
-b8
-da
-72
-46
-e6
+0b
+38
+86
+07
+fb
 4e
-98
-e7
+80
+4b
+f2
+95
 52
-4a
-26
-87
-87
-7b
-b5
-32
-e2
-10
-12
-ac
-50
-56
-50
-b8
-8b
-79
-94
+e4
+8d
+c4
+ef
+68
+1d
+fc
+5a
+0d
+a8
+5f
+9a
+8e
+b4
+16
+7d
+9b
+ba
+9b
+1e
+98
+22
+20
+d5
 fe
-05
-63
-92
-67
-87
-de
-02
-76
-4d
-3d
-df
-80
 d7
-ab
-96
-59
-15
-c2
+27
+cf
+57
+69
+19
+c0
+68
+69
+cf
+a0
+49
+cf
+c3
+cc
 04
-61
-2a
-a5
-17
+b6
+10
+be
+fd
+94
 9e
-4e
-4f
-1e
-21
-ba
-c5
-1a
-cd
-e8
-7d
-a0
-71
-f5
-5d
-1f
-de
-0f
-a5
-a6
-2f
-21
-43
-c0
-bb
-24
+55
+dc
+dd
+c3
+95
 23
+da
+cb
+4c
+43
+a8
 20
-72
-0d
-81
-46
-df
-4d
-e4
-00
-7c
-e0
-70
-ad
-9b
-53
-6e
-62
-e4
-dc
-0f
-1a
-1d
-55
-56
-29
-35
-64
-7b
-fb
-fa
-72
-85
-4a
-25
+95
+cc
+36
+11
 d7
-76
-9c
 ec
-50
-c9
-df
-8d
-fb
-99
-20
-c7
-10
-53
-52
-8c
-cc
-a8
+fc
 e1
+39
+9d
+17
 9e
-c4
-80
-9c
-84
-51
-76
-c6
-56
-2b
-27
-ec
-36
-cb
-8e
-05
-36
-43
+4f
+30
+5e
+5d
+7c
+29
 b2
+2b
+cd
+16
+ef
+b0
+e7
+af
+58
+7f
+13
+23
+16
+72
+c6
+cd
+20
+83
+c8
+d1
 8f
-37
-2d
-4b
-e4
+be
+ce
 60
-d7
-65
-3d
-91
-54
-d7
+a6
+ff
+74
+d1
+00
+7c
+e3
+3f
+e2
+5b
+9e
+45
+cd
+2b
+1e
+8f
+19
+39
+30
+f0
+29
+55
+5c
+b1
+ab
+f3
+71
+22
+b0
+71
+fd
+1a
+d3
+28
+4e
+4f
+72
 f5
+36
+43
+1f
+06
+0e
+80
+fd
+0c
+08
+7f
+a6
+5e
 57
-75
-13
-67
-fb
+d8
+cc
+ad
+06
+7b
+3c
+76
+64
+18
+ec
+56
+f0
+15
+7d
+76
+3b
+51
+8f
+37
+41
+32
+54
+7b
+2c
+08
+3d
+91
+53
+7b
+ba
+f3
+65
+28
+83
+9b
 79
 2f
 da
 64
-ce
-0a
-12
-b2
-5b
-86
-16
+c1
+14
+13
+cb
+5e
+19
+ec
 e8
-d3
-8e
-ea
-60
-6f
-b6
-2e
-8a
-c8
-35
-6c
+85
+74
+f5
+c9
+de
+23
+59
+22
+f0
+7d
+53
+26
+88
+0d
+ce
+be
+4c
+d0
+49
+4a
+01
+2a
 80
-f1
-b3
-8d
-1f
-f8
-6e
-06
-8a
-90
-7f
-2f
-2e
-72
-67
-75
+b1
+3e
+87
+94
+1c
+ec
+2b
 5a
-34
-f4
-81
-77
-bb
+54
+45
 a8
-8a
-ff
-31
-7d
+68
+5d
+b0
+a3
 d8
 ff
 09
-41
-05
-a9
-a4
-cf
-14
-85
-26
-f8
+48
+1a
+02
+49
+1f
 f5
-eb
-5b
-e9
 c5
-b2
-7c
-22
-56
-7e
-bc
-22
-1a
-a6
-cb
-1e
-8e
-6d
-55
-d5
-da
-a6
-53
-2c
-ff
-07
-43
-86
-ed
+26
+75
+a5
+e3
+40
+d3
+8a
+72
+e3
+9f
+f9
+98
 a3
-d1
+dd
+1b
+20
+ce
+ae
+c1
+ad
+c9
+b9
+75
+39
+10
+09
+ff
 52
-ec
-76
-f7
+11
 5a
+0d
+c3
+06
+20
+5c
+3c
+85
+74
 ad
 bc
-4a
-33
-9e
-39
-0b
-5e
-12
+1d
+d1
+81
+92
 ea
+90
+f3
+4a
 77
-7b
-25
-97
+eb
+22
+3f
+63
 6c
-72
-75
-27
-a3
-10
+95
+62
+73
+1f
 ff
 c7
-18
-b4
-3d
-2d
-fe
-bb
-dc
-93
-92
-9d
-39
-77
-f1
+44
+ea
+72
 89
-9b
-69
+e3
+c5
+71
+e6
+82
+1a
+96
+e8
+bd
+3d
+ec
+c3
+09
+ff
+5e
+71
+9e
+82
 e9
-a6
-11
-d1
-36
-30
-0d
-c4
-37
-53
+db
+32
+92
+01
 79
-59
-1c
-d0
-3d
-cd
-06
-7f
-e7
-35
+4a
+1e
+72
+6d
+a9
+d3
+07
+d9
 f1
-34
-00
-1b
 27
-33
-67
-92
-1d
-0d
-68
-49
-df
-61
-9c
-ae
+48
+73
+bb
+55
+3f
 e6
-50
-d3
-23
-89
+64
+c8
+1d
+cb
+67
+99
+38
+ce
+2f
+28
+94
+c0
+77
 be
-0d
-e3
+75
+e2
+b3
+72
+9d
+0e
+9a
 df
-35
-a5
-0c
-b9
-6a
-f7
+8f
+0f
+d2
+da
+8b
+15
 4f
-bc
-a4
-b1
-37
-22
-20
+c4
 a6
 e4
-6f
-c8
-51
-e6
-27
-7a
+6d
+3e
+6b
+c4
+75
+68
 7a
 f0
-51
-33
-bb
-3f
-96
-9e
-55
-f6
-45
-b6
-25
-f8
-97
-ac
-07
-27
-43
-be
+69
+c2
+e6
+5f
+37
+42
+1a
+56
+d4
+cd
+1a
+39
+b0
+9a
+40
+87
+bd
+4c
 4b
-ad
-6c
-cb
-ba
-7e
-b7
-5a
+ed
+69
+1c
+ea
+75
+a2
+e5
 75
 ce
-0c
-9b
+56
+6a
 21
 88
-a9
-66
-10
-99
-d4
-7d
-4c
-40
-c4
-a1
-25
-3d
-6f
-08
+c3
+76
+38
 d2
-67
-de
+f7
+7d
+0b
+84
+9b
+80
+2d
+3f
+a6
+41
+33
+02
+5e
 05
-4b
-6a
-c6
-53
-ba
-f0
-cf
-6a
-85
-90
-12
+1b
+0c
+99
+74
+f5
+50
+51
+de
+93
+4f
+25
+db
+08
+99
+a7
+b0
+14
+83
+a9
+c1
+25
+1a
+06
+3c
+1f
+97
+55
+d4
+6e
 5c
-4b
-43
-39
-28
-5b
-23
-56
-04
-5e
-df
-a1
-9c
 58
-35
-48
-f3
-16
-1c
-5d
-b7
-b2
-a2
+52
+f5
+01
+03
+85
+f7
+75
+be
+18
+65
+0e
+a0
+eb
+4f
+0a
 ce
-33
-b0
-b5
-2f
-b7
-0f
-6b
+0e
+9d
 e1
-ea
-ad
-cb
-92
-0f
-d2
-21
-86
-8a
+2f
+e0
 93
-90
-37
-24
-38
-ed
-1c
-18
-7a
-7b
-0a
-12
-60
-56
-58
-6f
-d3
-2c
-8d
-81
-5c
-ee
-61
-07
-bb
-d3
-c3
-00
-a7
-00
-44
+aa
+6d
+b6
 68
-d5
-d6
-96
-ba
-a0
-98
-85
-9e
-46
-a3
 e6
-37
-f3
-b6
-40
+58
+cf
+2a
+70
+1e
 a5
-34
-63
-c9
-3d
-96
-c3
-4c
-0a
-f3
+2f
+d6
+9e
+22
+9c
+8c
 1f
-94
-8a
-34
-b2
-a4
-61
 83
-8c
-28
-fa
-96
-ea
-8b
-31
-11
-41
-1e
-d2
-a5
-fa
-43
-57
-1e
-b8
-6a
-24
-e6
-c7
-f9
-89
-04
-9f
-de
-78
-b8
-16
+10
+dc
+a7
+5d
 eb
-6d
-0e
-b5
-86
+d8
+d7
+aa
+a7
 20
-d0
-3f
-1c
-b0
-4a
-2e
-40
-8c
-c5
-b0
-01
-0c
-d9
-f7
 25
-b3
+72
+85
+df
+ec
+6c
+f0
+f1
+ab
+7c
+59
+0a
+56
+13
+cc
+2e
 64
-44
-a2
-e8
+a5
+7c
+0b
 72
+c3
+3f
+b0
+8a
+4d
+4b
+19
+be
+8b
 34
+d0
 27
-fc
-69
-fe
-5b
-75
-e4
-d7
-7c
-03
+91
+c8
+18
+ee
+b2
 61
-09
-85
-2a
-00
-46
-aa
+4c
+30
+4d
+41
+24
+e4
+da
+e9
+e8
+83
+19
+1e
+bc
+eb
+70
+bd
+8a
+83
+89
+4b
+5d
+91
+05
+bc
+6c
+dc
+20
+0e
+b5
+86
+34
+d0
+3f
+2b
+f7
+4d
+86
+40
+90
+6b
+af
+47
+44
+2e
+51
+9e
+ce
+64
+1c
+75
 3e
+4d
+94
 8f
-17
-4e
-83
+ec
+2e
+3e
+9a
+1a
+d4
+9f
+ba
+46
+69
+0b
+0b
+2a
+b8
+20
+8c
+4d
+8f
+75
+c8
+0a
 37
 3d
-0f
-09
+0c
+c6
 a6
 4d
-16
-65
-79
-47
-c2
-51
+13
+99
+36
 e3
-c1
-9d
-11
+83
+5a
+07
+94
+9b
+05
+26
+4b
 c5
-74
-14
-8f
+71
 66
 d6
 fa
-46
+4f
 93
 fc
 fc
-ef
-b2
-0a
-67
-44
-8c
-53
-ec
-87
-3c
-57
-de
-ba
-18
-44
-5d
-d0
+e2
+fa
+62
+f6
+fb
+b6
+52
+fc
+66
 74
-75
-b0
+3f
+4f
+13
+22
+25
+76
+6f
+3c
+1d
+21
+6f
+f0
+f0
+8f
+37
+7c
+d8
 c3
-ca
-f1
-9f
+f0
+e7
+6b
+8d
+3d
+8f
+21
+9e
 c0
-78
-d8
-4a
-cb
-dd
-0a
-ad
-91
+11
+82
+32
+d2
+46
+63
+e8
+d1
+1d
+12
+1f
+f2
+cc
+c3
+c6
+2b
+72
+bc
+c9
+6b
+f7
+2b
+ea
+61
 8f
-41
-cf
-2c
-e7
-37
-6c
+81
 69
-2e
-2b
-2e
-8b
-3d
-52
-71
-05
-a4
-8b
-00
-71
+fb
+04
+12
 aa
-55
-40
-00
-00
-40
-05
-00
-73
-07
-a0
-00
-00
-00
-00
-00
-00
-00
-00
-d7
-18
-be
-f2
-4c
-e9
-00
-00
-00
-00
-00
-20
-00
-60
-04
-00
-00
-00
-00
-00
-00
-10
-04
+33
+16
+a9
+19
+64
+57
+f3
+4f
+b2
+96
+0e
+4e
+a3
 70
-00
-00
-06
-00
-30
-00
-00
-00
-00
-00
-00
-00
-00
-65
-a4
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-aa
-55
-08
-00
-13
-47
-04
-49
-4a
-00
-02
+ba
+71
+eb
+70
+6b
+6f
+ae
+01
+60
+7f
+ca
 22
-c1
+53
+71
+b1
+cc
+bb
+94
+96
+f3
+f4
+04
+59
+a1
+11
+6f
+98
+43
+a8
+5a
+3b
+9f
+d5
+d5
+dd
 1b
-aa
-55
-1e
-00
-44
+ee
+8d
+35
+5a
+27
+81
+c5
 46
+5a
+e0
+6d
+5a
 07
-01
-02
-07
-01
+a0
+a2
+b9
+72
 02
-0a
-0b
-14
-15
-ff
-00
-00
-00
-ff
-ff
+77
+c3
+bb
+8e
+cf
+98
+c5
+8a
+a8
+3f
+f0
+f0
+1b
+c0
+36
+81
+9e
+6e
+31
+f8
+9c
+06
+3f
+73
+5a
+fc
+d8
+83
+c7
+3d
+18
+1c
+1d
+09
+84
+ba
+82
+6b
+a7
+b1
+41
+fd
+2f
+f9
+5b
+2d
+ea
+4f
+06
 08
-0c
-ff
-ff
-ff
-ff
-ff
-05
-ff
-ff
-ff
-ff
-86
+cd
+0f
+7a
+c2
+bb
+34
+96
+cc
+10
+9b
+2c
+57
+c0
+23
+0f
+16
+69
+1c
+35
+0b
+16
 ff
-aa
-55
+48
+ad
+0e
+31
+d0
+d6
+f9
+91
+27
+a7
+be
+bf
+f0
+4a
+d1
+0a
+fc
+52
+65
+d7
+90
+b8
+d3
+32
+b4
+f1
+06
+b2
+f6
+0e
+5c
 02
-00
-26
-4b
-01
-00
+f8
+56
+5b
+93
+9a
+fa
+fb
+61
+88
+2c
+e5
+3e
+ce
+db
+ad
+80
+7a
+47
+96
+b7
 aa
-55
-01
-00
-42
+f9
+9e
+96
+26
+72
+c1
+15
+c8
+0f
+6e
+20
+b2
+37
+ee
+be
+2b
+24
+c0
+31
+1a
+bf
+7d
+5c
+d5
+4f
+48
+6b
+62
+89
+16
+4a
 4b
-1e
-aa
-55
-01
+22
+4f
+b7
+ba
+72
+da
+0f
+8f
+75
+c6
+3a
 00
+08
+93
+e7
+76
+c4
+ca
+dd
+d1
+fa
+27
+75
+ee
+73
+1d
+cb
+f0
+dd
+be
+7d
+d6
+ac
+95
+89
+f3
+28
+cf
+f4
+33
+d4
+69
+80
+34
+29
+9f
+58
+2d
+71
+ec
+59
+32
+62
+3b
+b7
+19
+e8
+b9
+20
+78
+25
+8e
 29
+15
+24
+4a
 47
-01
-aa
-55
-02
-00
+38
+62
+0f
+91
+b7
+cc
+59
+ce
+8c
+d5
+f0
+a2
+2a
+9c
+43
+6c
+a2
+64
+c5
 ff
-46
-00
-14
-aa
-55
-03
-00
-02
-47
-05
-02
+61
+48
+59
+61
+c4
+90
+1d
+e2
+d3
+cb
+15
+4d
+5d
+44
+f4
+a3
+fc
+bd
 05
-aa
-55
-01
-00
-07
-47
 14
-aa
-55
-01
-00
-05
-47
-02
-aa
-55
-02
-00
-0a
-47
-02
-06
-aa
-55
-01
-00
-0d
-47
-0a
-aa
-55
-01
-00
-12
-47
-0a
-aa
-55
-02
-00
-0f
+44
+cd
+8f
+f9
+d7
+f5
+87
+a6
+ad
+25
+ff
+87
+3f
+8e
+a0
+ff
+44
 47
-58
-02
-aa
-55
-02
-00
-3a
-46
-58
-02
-aa
-55
-01
-00
-3d
-46
-64
-aa
-55
-02
-00
-21
-47
-05
-00
-aa
-55
-01
-00
-3c
-46
+4c
+a6
+7d
+f9
+81
+80
+0b
+b1
+ff
+b3
+74
+3d
+d7
+e5
+f9
+a3
+10
+03
+1c
+99
 64
-aa
-55
-02
-00
-38
-46
-b0
-04
-aa
-55
-01
-00
-1e
-47
-0a
-aa
-55
-02
-00
-25
-47
-70
-17
-aa
-55
-01
-00
-cb
-43
-08
-aa
+5b
+a7
+f4
+ef
+e9
+30
+eb
+bf
+57
+5e
+62
+b4
+8a
+4d
+ec
+ec
+94
+85
+9f
+91
+61
+e6
+b2
+fd
+7b
+ef
+b4
+6f
+26
+31
+93
+57
+83
+cd
+e8
+4e
+45
+6c
+85
+4b
+32
+37
+e2
+24
+3f
+84
+0b
+8c
+a7
+69
+7d
+9b
+c3
+c3
+bd
+8d
 55
-01
-00
-1b
-47
 03
-aa
-55
-01
-00
+fa
+a7
+b0
 94
+db
+b7
+42
+17
+6d
+a7
+5b
+3e
+45
+d3
+ed
+1c
+b1
+83
+e9
+db
 40
-01
-aa
-55
-01
-00
-c0
-40
-20
-aa
-55
-01
-00
-6b
-49
-20
-aa
-55
-03
-00
-3c
-47
-00
-00
-00
-aa
-55
-08
-00
-66
-46
-00
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
-00
-74
-46
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
-00
 81
-46
-34
-ff
-ff
-ff
-ff
-ff
+d8
+d0
+52
+09
+44
+58
+9a
+d9
+b1
 ff
-aa
-55
-01
-00
-28
-47
+9c
 03
-aa
-55
-01
-00
-27
-47
-07
-aa
-55
-01
-00
-21
-4b
-ff
-aa
-55
-06
-00
-e6
-46
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-06
-00
-f1
+c1
 44
-02
-21
-26
-55
-51
-61
-aa
-55
-01
-00
-89
+d8
+72
+14
+91
+b7
+0a
+8d
+f4
+74
+ff
+1f
+3f
+c6
+9c
+e5
+33
+6f
+79
+d6
+6b
+7a
+2b
+1b
+58
+6d
+06
+23
+83
+17
+98
+b0
+2e
+ab
+b9
+43
+98
+af
+0c
+cf
+06
+7c
+67
+a4
 45
-01
-aa
-55
+12
+5b
+5e
+07
+1a
+d0
+f6
+d3
+20
+f5
+7d
+64
+cd
+49
+67
+b9
+41
+40
+81
+f7
+ee
+14
+96
+ea
+43
+dc
+3f
+1c
+58
+43
+ff
+c3
+e9
+87
+11
+36
+94
+d0
+57
+85
+b8
 05
-00
-e3
-45
-01
-0f
-0f
-0f
-0f
+58
+68
+b8
+2b
+ba
+58
+5f
+bf
+93
+f3
+90
+57
+7c
+59
+1f
+a3
+70
+85
+15
+5f
+22
+34
+1c
+43
+b6
+15
+21
+9b
+95
+99
+90
+9f
+87
+c7
+67
+c8
+4d
+48
+70
 aa
-55
-01
-00
-b9
+61
 45
+80
+79
+11
+2a
+fc
+ff
+07
+91
+b4
+25
+95
+37
+81
+5f
 00
+74
+3d
+86
+13
+03
+a7
+e5
 aa
-55
-01
-00
-40
+9e
+f1
+ea
+78
+20
+9c
 47
+08
+f1
+02
+09
+ae
+b5
+33
+97
+ef
+ee
+64
+69
+b5
+c0
+15
+88
+8b
+c3
+5e
+b6
+21
+fc
+e4
+43
+59
+75
+29
 02
+39
+dc
+1c
+a9
+7d
+48
+51
+13
+8b
+44
+d6
+5b
+0d
+13
+8b
+5c
+e8
+d9
+b5
+90
+c1
+05
 aa
 55
-01
+40
 00
-ca
-45
 00
-aa
-55
-01
+40
+05
 00
-7b
-47
+73
+07
+a0
 00
-aa
-55
-02
 00
-8b
-45
-c0
-12
-aa
-55
-07
 00
-43
-47
-d0
-52
 00
-80
-bb
 00
-05
-aa
-55
+00
+00
+00
+d7
+18
+be
+f2
+4c
+e9
+00
+00
+00
+00
+00
+20
+00
+60
 04
 00
-55
-47
-80
-bb
+00
+00
+00
+00
+00
+10
+04
+70
+00
+00
+06
+00
+30
+00
+00
+00
+00
+00
+00
+00
+00
+65
+a4
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
 00
 00
 aa
 55
-07
+08
 00
-4a
+13
 47
-70
-11
-01
+04
+49
+4a
 00
-77
+02
+22
+c1
+1b
+aa
+55
+1e
+00
+44
+46
+07
+01
+02
+07
 01
+02
+0a
 0b
+14
+15
+ff
+00
+00
+00
+ff
+ff
+08
+0c
+ff
+ff
+ff
+ff
+ff
+05
+ff
+ff
+ff
+ff
+86
+ff
 aa
 55
-04
-00
-59
-47
+02
 00
-77
+26
+4b
 01
 00
 aa
 55
-03
-00
-af
-45
+01
 00
-48
-60
+42
+4b
+1e
 aa
 55
-02
+01
 00
-1d
-46
-2c
+29
+47
 01
 aa
 55
 02
 00
-1b
+ff
 46
-50
 00
+14
 aa
 55
-02
+03
 00
-23
+02
 47
-64
-00
+05
+02
+05
 aa
 55
 01
 00
-f4
-46
-01
+07
+47
+14
 aa
 55
-06
+01
 00
-db
-42
-51
-81
-91
-a1
-b3
-c1
+05
+47
+02
 aa
 55
-01
+02
 00
-93
-43
-07
+0a
+47
+02
+06
 aa
 55
-08
-00
-c0
-43
-fb
-00
-48
-08
-fb
+01
 00
-48
-08
+0d
+47
+0a
 aa
 55
-02
+01
 00
-be
+12
 47
-96
-00
+0a
 aa
 55
 02
 00
-b5
+0f
 47
-15
-00
+58
+02
 aa
 55
 02
 00
-9b
-43
-19
+3a
+46
+58
+02
+aa
+55
+01
 00
+3d
+46
+64
 aa
 55
-04
+02
 00
-b7
+21
 47
-1d
+05
 00
-21
+aa
+55
+01
 00
+3c
+46
+64
 aa
 55
 02
 00
-32
-43
-2d
+38
+46
+b0
+04
+aa
+55
+01
 00
+1e
+47
+0a
 aa
 55
 02
 00
-bb
+25
 47
-30
-00
+70
+17
 aa
 55
-0c
+01
 00
-48
+cb
 43
-1f
-02
-01
-05
-03
-03
-12
-18
-03
-19
-c2
-03
+08
 aa
 55
-14
+01
 00
-a0
+1b
 47
-06
-ff
-06
-00
 03
-00
-80
-0c
-09
-42
-54
-35
-2e
-32
-20
-4d
-6f
-75
-73
-65
 aa
 55
-0e
+01
 00
-68
-43
-1f
-0c
-09
-42
-54
-35
-2e
-32
-20
-4d
-6f
-75
-73
-65
+94
+40
+01
 aa
 55
-0c
+01
 00
-6b
-42
-0b
-42
-54
-35
-2e
-32
+c0
+40
 20
-4d
-6f
-75
-73
-65
 aa
 55
-0c
+01
 00
-8c
+6b
 49
-0b
-42
-54
-35
-2e
-32
 20
-4d
-6f
-75
-73
-65
 aa
 55
-08
+03
 00
-d3
-42
-06
+3c
+47
 00
-09
 00
-20
 00
-2c
-01
 aa
 55
-06
-00
-9a
-47
-03
-12
-18
-ff
+08
 00
+66
+46
 00
+34
+ff
+ff
+ff
+ff
+ff
+ff
 aa
 55
-03
+07
 00
-ec
+74
 46
+34
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+07
 00
-50
-00
+81
+46
+34
+ff
+ff
+ff
+ff
+ff
+ff
 aa
 55
-02
+01
 00
-eb
-43
-80
-1f
+28
+47
+03
 aa
 55
 01
 00
-f4
-43
-80
+27
+47
+07
 aa
 55
 01
 00
-ec
-44
+21
+4b
 ff
 aa
 55
-01
+06
 00
-eb
+e6
+46
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+06
+00
+f1
 44
-1e
+02
+21
+26
+55
+51
+61
 aa
 55
 01
 00
-ee
-44
+89
+45
+01
+aa
+55
+05
 00
+e3
+45
+01
+0f
+0f
+0f
+0f
 aa
 55
 01
 00
-41
-41
-03
+b9
+45
+00
 aa
 55
 01
 00
-3e
-46
-94
+40
+47
+02
 aa
 55
 01
 00
-d2
+ca
 45
-07
+00
 aa
 55
-02
+01
 00
-f0
-45
-83
+7b
 47
+00
 aa
 55
 02
 00
-3f
-46
-85
-90
+8b
+45
+c0
+12
 aa
 55
-02
+07
+00
+43
+47
+d0
+52
 00
-42
-46
-75
 80
+bb
+00
+05
 aa
 55
-01
+04
 00
-41
-46
-63
-aa
 55
-01
+47
+80
+bb
+00
 00
-27
-46
-7d
 aa
 55
-01
+07
 00
-37
-44
+4a
+47
+70
+11
+01
 00
+77
+01
+0b
 aa
 55
-03
+04
 00
-08
-4a
+59
+47
 00
-03
-25
-aa
-55
+77
 01
 00
-6c
-08
-ff
 aa
 55
-11
+03
+00
+af
+45
 00
-68
 48
-03
-04
+60
+aa
+55
+02
+00
+1d
+46
+2c
 01
+aa
+55
 02
-20
-2a
-3f
-15
-14
+00
 1b
-11
-0e
-8a
-8b
-83
-84
-88
+46
+50
+00
 aa
 55
-08
+02
 00
-4e
-49
-09
-a5
-0b
-f3
-09
+23
+47
+64
 00
-ff
-ff
 aa
 55
-08
+01
 00
+f4
 46
-49
-09
-5a
-0b
-f3
-09
+01
+aa
+55
+06
 00
-ff
-ff
+db
+42
+51
+81
+91
+a1
+b3
+c1
 aa
 55
-0c
+01
+00
+93
+43
+07
+aa
+55
+08
 00
-21
-4c
-09
-a5
-46
-34
-6a
 c0
-69
-24
-09
+43
+fb
 00
-ff
-ff
+48
+08
+fb
+00
+48
+08
 aa
 55
-14
+02
 00
-0b
-4a
-09
-a5
-46
-34
-19
-04
-60
-07
-69
-04
-68
-c3
-7d
-20
-7e
+be
+47
+96
 00
-09
+aa
+55
+02
+00
+b5
+47
+15
 00
-ff
-ff
 aa
 55
-0a
+02
 00
-7c
-48
-09
-5a
-26
-34
+9b
+43
 19
-04
-09
 00
-ff
-ff
 aa
 55
-0a
+04
 00
-90
-48
-09
-5a
-0d
-10
+b7
+47
 1d
-ed
-7d
-80
-ff
-ff
+00
+21
+00
 aa
 55
-54
+02
 00
-d6
-48
-09
-5a
-ff
-27
-ab
-40
-b3
-56
-9b
-e6
-a8
-12
-a9
-c0
-be
-e6
-a5
-af
-a0
-21
-a1
+32
+43
+2d
+00
+aa
+55
 02
-b8
-10
-b9
-0b
-a7
-ff
-b5
-d0
-b6
 00
-ff
+bb
+47
+30
 00
-09
+aa
+55
+02
 00
-ff
-ff
-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
-09
-5a
-06
-02
-09
-69
-0d
-48
-0e
-9f
-0f
-ba
+43
+4b
+36
+00
+aa
+55
 09
 00
-ff
-ff
-aa
-55
-01
+a8
+4e
+08
 00
-07
-44
-01
-aa
-55
-01
+15
+08
 00
-09
-44
-0a
-aa
-55
-01
+2c
 00
-08
-44
 00
+28
 aa
 55
-01
+1c
 00
-48
-41
-0c
+69
+4e
+1b
+68
+74
+74
+70
+3a
+2f
+2f
+79
+6c
+62
+2e
+71
+64
+2d
+64
+61
+74
+61
+2e
+63
+6f
+6d
+2f
+67
+7a
+67
+61
 aa
 55
-06
+16
 00
-c3
+91
+4e
+15
+7e
+21
 40
-35
-3f
-64
-db
+23
+24
+25
+5e
+26
+2a
+28
+29
+5f
+2b
 7b
-3b
+7d
+7c
+22
+3a
+3e
+3f
+3c
 aa
 55
-01
+0c
 00
-a7
-40
-20
+48
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c2
+03
 aa
 55
-03
+14
 00
-c9
-40
+a0
+47
+06
+ff
+06
 00
-08
-b4
+03
+00
+80
+0c
+09
+42
+54
+35
+2e
+32
+20
+4d
+6f
+75
+73
+65
 aa
 55
-01
+0e
 00
-99
-40
-18
+68
+43
+1f
+0c
+09
+42
+54
+35
+2e
+32
+20
+4d
+6f
+75
+73
+65
 aa
 55
-01
+0c
 00
-1c
-41
-3e
+6b
+42
+0b
+42
+54
+35
+2e
+32
+20
+4d
+6f
+75
+73
+65
 aa
 55
 0c
 00
-16
+8c
+49
+0b
+42
+54
+35
+2e
+32
+20
+4d
+6f
+75
+73
+65
+aa
+55
+08
 00
+d3
+42
+06
 00
+09
 00
 20
 00
+2c
+01
+aa
+55
+06
 00
+9a
+47
+03
+12
+18
+ff
 00
 00
+aa
+55
+03
 00
+ec
+46
 00
+50
 00
+aa
+55
+02
 00
+eb
+43
 00
+25
 aa
 55
-05
+01
 00
-5e
-41
-08
-0e
-05
-03
+f4
+43
+80
+aa
+55
+01
 00
+ec
+44
+ff
 aa
 55
 01
 00
-68
-41
-20
+eb
+44
+1e
 aa
 55
-02
+01
 00
-9a
-40
+ee
+44
 00
-0c
 aa
 55
-05
+01
 00
-43
 41
-ff
-04
-00
-00
-08
+41
+03
 aa
 55
 01
 00
-1c
-02
-5a
+3e
+46
+94
 aa
 55
 01
 00
-38
-44
-a0
+d2
+45
+07
 aa
 55
 02
 00
-3b
-44
-bc
-02
+f0
+45
+83
+47
 aa
 55
 02
 00
-39
-44
+3f
+46
+85
 90
-01
 aa
 55
 02
 00
-3d
-44
-03
-09
+42
+46
+75
+80
 aa
 55
 01
 00
-49
 41
-ff
+46
+63
 aa
 55
-02
+01
 00
-9c
-40
-49
-41
+27
+46
+7d
+aa
 55
+01
+00
+37
+44
+00
 aa
+55
+03
+00
+08
+4a
+00
+03
+25
 aa
 55
-e3
-65
-74
-06
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+01
+00
+6c
+08
 ff
+aa
+55
+11
+00
+68
+48
+03
+04
+01
+02
+20
+2a
+3f
+15
+14
+1b
+11
+0e
+8a
+8b
+83
+84
+88
+aa
+55
+08
+00
+4e
+49
+09
+a5
+0b
+f3
+09
+00
 ff
 ff
+aa
+55
+08
+00
+46
+49
+09
+5a
+0b
+f3
+09
+00
 ff
 ff
+aa
+55
+0c
+00
+a6
+4f
+09
+a5
+46
+34
+6a
+c0
+69
+24
+09
+00
 ff
 ff
+aa
+55
+14
+00
+0b
+4a
+09
+a5
+46
+34
+19
+04
+60
+07
+69
+04
+68
+c3
+7d
+20
+7e
+00
+09
+00
 ff
 ff
+aa
+55
+0a
+00
+7c
+48
+09
+5a
+26
+34
+19
+04
+09
+00
 ff
 ff
+aa
+55
+0a
+00
+90
+48
+09
+5a
+0d
+10
+1d
+ed
+7d
+80
 ff
 ff
+aa
+55
+54
+00
+d6
+48
+09
+5a
 ff
+27
+ab
+40
+b3
+56
+9b
+e6
+a8
+12
+a9
+c0
+be
+e6
+a5
+af
+a0
+21
+a1
+02
+b8
+10
+b9
+0b
+a7
 ff
+b5
+d0
+b6
+00
 ff
+00
+09
+00
 ff
 ff
+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
+09
+5a
+06
+02
+09
+69
+0d
+48
+0e
+9f
+0f
+ba
+09
+00
 ff
 ff
+aa
+55
+01
+00
+07
+44
+01
+aa
+55
+01
+00
+09
+44
+0a
+aa
+55
+01
+00
+08
+44
+00
+aa
+55
+02
+00
+f7
+42
+45
+4b
+aa
+55
+cb
+02
+45
+4b
+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
+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
+bd
+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
+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
+19
+00
+2a
 ff
+03
+15
+00
+26
 ff
+03
+95
+01
+75
+10
+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
+29
+00
+02
+03
+28
+01
+1a
+2a
+00
+02
+00
+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
+34
+00
+02
+00
+28
+02
+00
 ff
+35
+00
+02
+03
+28
+01
+12
+36
+00
+02
+01
 ff
+14
+01
+12
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+37
+00
+02
+02
+29
+02
+00
+00
+38
+00
+02
+00
+28
+02
+01
 ff
+39
+00
+02
+03
+28
+01
+06
+3a
+00
+02
+01
 ff
+14
+01
+12
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+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
+20
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+05
+00
+5e
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+68
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+0c
+aa
+55
+05
+00
+43
+41
 ff
+04
+00
+00
+08
+aa
+55
+01
+00
+1c
+02
+5a
+aa
+55
+01
+00
+38
+44
+a0
+aa
+55
+02
+00
+3b
+44
+bc
+02
+aa
+55
+02
+00
+39
+44
+90
+01
+aa
+55
+02
+00
+3d
+44
+03
+09
+aa
+55
+01
+00
+49
+41
 ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+5b
+cd
+e8
+be
 ff
-9b
-3b
+1e
+f0
Index: output/memmap.format
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/output/memmap.format	(revision 4836)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/output/memmap.format	(working copy)
@@ -1983,91 +1983,106 @@
 0x4b40 mem_mouse_delay_send_info_timer
 0x4b41 mem_mouse_m_key_press_flag
 0x4b42 mem_mouse_m_key_press_count
-0x4b43 mem_24g_txpayload_buf
-0x4b53 mem_release_data_from_receiver_enable
-0x4b54 mem_release_data_from_transmiter_enable
-0x4b55 mem_flippen_key0_gpio
-0x4b56 mem_flippen_key1_gpio
-0x4b57 mem_flippen_key2_gpio
-0x4b58 mem_flippen_key3_gpio
-0x4b59 mem_flippen_key4_gpio
-0x4b5a mem_flippen_key5_gpio
-0x4b5b mem_flippen_key6_gpio
-0x4b5c mem_flippen_key7_gpio
-0x4b5d mem_flippen_key0_press_status
-0x4b5e mem_flippen_key1_press_status
-0x4b5f mem_flippen_key2_press_status
-0x4b60 mem_flippen_key3_press_status
-0x4b61 mem_flippen_key4_press_status
-0x4b62 mem_flippen_key5_press_status
-0x4b63 mem_flippen_key6_press_status
-0x4b64 mem_flippen_key7_press_status
-0x4b65 mem_key_press_data
-0x4b65 mem_key_pageup_data
-0x4b6e mem_key_pagedown_data
-0x4b77 mem_key_shift_f5_data
-0x4b80 mem_key_esc_data
-0x4b89 mem_key_b_data
-0x4b92 mem_key_tab
-0x4b9b mem_key_enter
-0x4ba4 mem_key_alt_tab
-0x4bad mem_key_alt_f4
-0x4bb6 mem_key_play_pause
-0x4bbf mem_key_vol_up
-0x4bc8 mem_key_vol_down
-0x4bd1 mem_standard_key_release
-0x4bda mem_system_ctrl_key_release
-0x4be3 mem_media_key_release
-0x4bec mem_key0_long_press_flag
-0x4bed mem_key1_long_press_flag
-0x4bee mem_key2_long_press_flag
-0x4bef mem_key3_long_press_flag
-0x4bf0 mem_key4_long_press_flag
-0x4bf1 mem_key0_long_press_event
-0x4bf2 mem_key1_long_press_event
-0x4bf3 mem_key2_long_press_event
-0x4bf4 mem_key3_long_press_event
-0x4bf5 mem_key4_long_press_event
-0x4bf6 mem_key0_short_press_flag
-0x4bf7 mem_key1_short_press_flag
-0x4bf8 mem_key2_short_press_flag
-0x4bf9 mem_key3_short_press_flag
-0x4bfa mem_key4_short_press_flag
-0x4bfb mem_key0_press_timer_count
-0x4bfc mem_key1_press_timer_count
-0x4bfd mem_key2_press_timer_count
-0x4bfe mem_key3_press_timer_count
-0x4bff mem_key4_press_timer_count
-0x4c00 mem_combination_key_down_flag
-0x4c01 mem_combination_key_longpress_flag
-0x4c02 mem_key_disable_timer
-0x4c03 mem_24g_calculate_package_id_disable
-0x4c04 mem_24g_package_id_abandon_flag
-0x4c05 mem_24g_package_id
-0x4c06 mem_key_state
-0x4c07 mem_key_press_state
-0x4c08 mem_poweron_first_blank_data_enable
-0x4c09 mem_flippen_no_data_timeout
-0x4c0b mem_flippen_start_pair_no_data_timeout
-0x4c0d mem_key_longpress_timer_init
-0x4c0f mem_key_longpress_timer
-0x4c11 mem_low_voltage_led_blink_flag
-0x4c12 mem_low_voltage_led_blink_start_timer
-0x4c13 mem_poweron_led_blink_flag
-0x4c14 mem_24g_pair_enable_flag
-0x4c15 mem_24g_ch_work
-0x4c16 mem_24g_pair_key_down_flag
-0x4c17 mem_24g_pairing_stop_flag
-0x4c18 mem_longpress_24g_enter_hibernate_flag
-0x4c19 mem_g24_connected_state
-0x4c1a mem_g24_pairing_stop_flag
-0x4c1b mem_send_package_before_check
-0x4c1c mem_le_conn_rcv_new
-0x4c1d mem_le_conn_first_rcv
-0x4c1e mem_le_check_retransmit_flag
-0x4c1f mem_le_retransmit_cnt
-0x4c20 mem_le_check_retransmit_discon_flag
-0x4c21 mem_sensor_ka5857_init
+0x4b43 mem_le_info_tx_handle
+0x4b45 mem_mouse_ble_att_list
+0x4e65 mem_mouse_website_control_mode
+0x4e66 mem_mouse_website_step
+0x4e67 mem_mouse_website_ptr
+0x4e69 mem_mouse_website_info
+0x4e91 mem_mouse_website_info_sign
+0x4ea7 mem_mouse_website_wait_count
+0x4ea8 mem_usb_win_cmd
+0x4eab mem_usb_mac_cmd
+0x4eae mem_usb_kb_enter
+0x4eb1 mem_mouse_website_shift_flag
+0x4eb2 mem_mouse_website_release_flag
+0x4eb3 mem_computer_system
+0x4eb4 mem_device_info_tx_buf
+0x4ec8 mem_24g_txpayload_buf
+0x4ed8 mem_release_data_from_receiver_enable
+0x4ed9 mem_release_data_from_transmiter_enable
+0x4eda mem_flippen_key0_gpio
+0x4edb mem_flippen_key1_gpio
+0x4edc mem_flippen_key2_gpio
+0x4edd mem_flippen_key3_gpio
+0x4ede mem_flippen_key4_gpio
+0x4edf mem_flippen_key5_gpio
+0x4ee0 mem_flippen_key6_gpio
+0x4ee1 mem_flippen_key7_gpio
+0x4ee2 mem_flippen_key0_press_status
+0x4ee3 mem_flippen_key1_press_status
+0x4ee4 mem_flippen_key2_press_status
+0x4ee5 mem_flippen_key3_press_status
+0x4ee6 mem_flippen_key4_press_status
+0x4ee7 mem_flippen_key5_press_status
+0x4ee8 mem_flippen_key6_press_status
+0x4ee9 mem_flippen_key7_press_status
+0x4eea mem_key_press_data
+0x4eea mem_key_pageup_data
+0x4ef3 mem_key_pagedown_data
+0x4efc mem_key_shift_f5_data
+0x4f05 mem_key_esc_data
+0x4f0e mem_key_b_data
+0x4f17 mem_key_tab
+0x4f20 mem_key_enter
+0x4f29 mem_key_alt_tab
+0x4f32 mem_key_alt_f4
+0x4f3b mem_key_play_pause
+0x4f44 mem_key_vol_up
+0x4f4d mem_key_vol_down
+0x4f56 mem_standard_key_release
+0x4f5f mem_system_ctrl_key_release
+0x4f68 mem_media_key_release
+0x4f71 mem_key0_long_press_flag
+0x4f72 mem_key1_long_press_flag
+0x4f73 mem_key2_long_press_flag
+0x4f74 mem_key3_long_press_flag
+0x4f75 mem_key4_long_press_flag
+0x4f76 mem_key0_long_press_event
+0x4f77 mem_key1_long_press_event
+0x4f78 mem_key2_long_press_event
+0x4f79 mem_key3_long_press_event
+0x4f7a mem_key4_long_press_event
+0x4f7b mem_key0_short_press_flag
+0x4f7c mem_key1_short_press_flag
+0x4f7d mem_key2_short_press_flag
+0x4f7e mem_key3_short_press_flag
+0x4f7f mem_key4_short_press_flag
+0x4f80 mem_key0_press_timer_count
+0x4f81 mem_key1_press_timer_count
+0x4f82 mem_key2_press_timer_count
+0x4f83 mem_key3_press_timer_count
+0x4f84 mem_key4_press_timer_count
+0x4f85 mem_combination_key_down_flag
+0x4f86 mem_combination_key_longpress_flag
+0x4f87 mem_key_disable_timer
+0x4f88 mem_24g_calculate_package_id_disable
+0x4f89 mem_24g_package_id_abandon_flag
+0x4f8a mem_24g_package_id
+0x4f8b mem_key_state
+0x4f8c mem_key_press_state
+0x4f8d mem_poweron_first_blank_data_enable
+0x4f8e mem_flippen_no_data_timeout
+0x4f90 mem_flippen_start_pair_no_data_timeout
+0x4f92 mem_key_longpress_timer_init
+0x4f94 mem_key_longpress_timer
+0x4f96 mem_low_voltage_led_blink_flag
+0x4f97 mem_low_voltage_led_blink_start_timer
+0x4f98 mem_poweron_led_blink_flag
+0x4f99 mem_24g_pair_enable_flag
+0x4f9a mem_24g_ch_work
+0x4f9b mem_24g_pair_key_down_flag
+0x4f9c mem_24g_pairing_stop_flag
+0x4f9d mem_longpress_24g_enter_hibernate_flag
+0x4f9e mem_g24_connected_state
+0x4f9f mem_g24_pairing_stop_flag
+0x4fa0 mem_send_package_before_check
+0x4fa1 mem_le_conn_rcv_new
+0x4fa2 mem_le_conn_first_rcv
+0x4fa3 mem_le_check_retransmit_flag
+0x4fa4 mem_le_retransmit_cnt
+0x4fa5 mem_le_check_retransmit_discon_flag
+0x4fa6 mem_sensor_ka5857_init
 0x462d mem_remote_car_hard_soft_switch
 0x462e mem_remote_car_queue_each_size
 0x462f mem_remote_car_queue_length
Index: output/program.lis
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/output/program.lis	(revision 4836)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/output/program.lis	(working copy)
@@ -1,7 +1,7 @@
               include "bt_format "
               org 0x0000
 0000 c284002d bbit1 8 ,pf_patch_ext 
-0001 c00003c6 beq patch00_0 ,p_soft_reset 
+0001 c0000473 beq patch00_0 ,p_soft_reset 
 0002 c0010120 beq patch00_2 ,p_main_loop 
 0003 c0080129 beq patch02_0 ,p_shutdown_radio 
 0004 c008812b beq patch02_1 ,p_set_sync_on 
@@ -11,38 +11,38 @@
 0008 c00c01fe beq patch03_0 ,p_txon 
 0009 c00c8205 beq patch03_1 ,p_set_tx_power 
 000a c00d0143 beq patch03_2 ,p_initialize_radio_cont 
-000b c0128335 beq patch04_5 ,p_lpm_sleep 
+000b c01283e2 beq patch04_5 ,p_lpm_sleep 
 000c c01382c9 beq patch04_7 ,p_lpm_adjust_clk 
-000d c03403c1 beq patch0d_0 ,p_mouse_cb_fuction 
-000e c03483d8 beq patch0d_1 ,p_mouse_load_device_info_check 
-000f c03503d0 beq patch0d_2 ,p_mouse_default_init 
-0010 c0360380 beq patch0d_4 ,p_mouse_param_init 
-0011 c03704cc beq patch0d_6 ,p_mouse_start_work 
+000d c034046e beq patch0d_0 ,p_mouse_cb_fuction 
+000e c0348485 beq patch0d_1 ,p_mouse_load_device_info_check 
+000f c035047d beq patch0d_2 ,p_mouse_default_init 
+0010 c036042d beq patch0d_4 ,p_mouse_param_init 
+0011 c0370579 beq patch0d_6 ,p_mouse_start_work 
 0012 c037d4b6 beq patch0d_7 ,mouse4_0_check_reconn_target 
-0013 c039853a beq patch0e_3 ,p_mouse_setgpio_hibernate 
-0014 c03a0329 beq patch0e_4 ,p_mouse_lpm_before_common 
-0015 c03c8573 beq patch0f_1 ,p_mouse_le_name_modify 
-0016 c03d05c4 beq patch0f_2 ,p_mouse_motion 
-0017 c03d859a beq patch0f_3 ,p_mouse_dpi_process 
-0018 c03e05a8 beq patch0f_4 ,p_mouse_setting_dpi 
-0019 c03e85ac beq patch0f_5 ,p_mouse_setting_sensor_type 
-001a c03f8517 beq patch0f_7 ,p_mouse_3io6key_check 
-001b c0408582 beq patch10_1 ,p_mouse_init_sensor 
-001c c04203f2 beq patch10_4 ,p_mouse_buletooth_fast_conn_end 
-001d c042845f beq patch10_5 ,p_mouse_priority_bb_event 
+0013 c03985e8 beq patch0e_3 ,p_mouse_setgpio_hibernate 
+0014 c03a03d6 beq patch0e_4 ,p_mouse_lpm_before_common 
+0015 c03c8621 beq patch0f_1 ,p_mouse_le_name_modify 
+0016 c03d0672 beq patch0f_2 ,p_mouse_motion 
+0017 c03d8648 beq patch0f_3 ,p_mouse_dpi_process 
+0018 c03e0656 beq patch0f_4 ,p_mouse_setting_dpi 
+0019 c03e865a beq patch0f_5 ,p_mouse_setting_sensor_type 
+001a c03f85c5 beq patch0f_7 ,p_mouse_3io6key_check 
+001b c0408630 beq patch10_1 ,p_mouse_init_sensor 
+001c c042049f beq patch10_4 ,p_mouse_buletooth_fast_conn_end 
+001d c042850c beq patch10_5 ,p_mouse_priority_bb_event 
 001e c04302fe beq patch10_6 ,p_mouse_le 
-001f c043842d beq patch10_7 ,p_mouse_bb_event_timer 
-0020 c0450402 beq patch11_2 ,p_mouse_store_remote_bdaddr 
-0021 c04583da beq patch11_3 ,p_mouse_app_initflag_check 
-0022 c04704e7 beq patch11_6 ,p_mouse_idle 
-0023 c0480560 beq patch12_0 ,p_mouse_check_select_device_by_switch 
-0024 c04985d9 beq patch12_3 ,p_mouse_drawing_optima 
-0025 c04a852d beq patch12_5 ,p_mouse_24g_hibernate_set 
-0026 c04b0547 beq patch12_6 ,p_mouse_24g_package_data 
+001f c04384da beq patch10_7 ,p_mouse_bb_event_timer 
+0020 c04504af beq patch11_2 ,p_mouse_store_remote_bdaddr 
+0021 c0458487 beq patch11_3 ,p_mouse_app_initflag_check 
+0022 c0470594 beq patch11_6 ,p_mouse_idle 
+0023 c048060e beq patch12_0 ,p_mouse_check_select_device_by_switch 
+0024 c0498687 beq patch12_3 ,p_mouse_drawing_optima 
+0025 c04a85db beq patch12_5 ,p_mouse_24g_hibernate_set 
+0026 c04b05f5 beq patch12_6 ,p_mouse_24g_package_data 
 0027 c04b803f beq patch12_7 ,p_mouse_24g_search_dongle_loop 
-0028 c062835e beq patch18_5 ,p_otp_read_data 
-0029 c06a831d beq patch1a_5 ,p_gpio_set_wake_by_current_state 
-002a c06b0316 beq patch1a_6 ,p_gpio_set_wake 
+0028 c062840b beq patch18_5 ,p_otp_read_data 
+0029 c06a83ca beq patch1a_5 ,p_gpio_set_wake_by_current_state 
+002a c06b03c3 beq patch1a_6 ,p_gpio_set_wake 
 002b c06d016c beq patch1b_2 ,p_sadc_calibration 
 002c 2020235a branch assert 
 
@@ -56,13 +56,13 @@
 0033 c01d02d8 beq patch27_2 ,p_le_parse_l2cap 
 0034 c02602d4 beq patch29_4 ,p_le_adv_not_match 
 0035 c02682a0 beq patch29_5 ,p_le_init_adv 
-0036 c0480361 beq patch32_0 ,p_g24_reconn_dispatch 
-0037 c0490375 beq patch32_2 ,p_g24_reconn_device_fail 
+0036 c048040e beq patch32_0 ,p_g24_reconn_dispatch 
+0037 c0490422 beq patch32_2 ,p_g24_reconn_device_fail 
 0038 c04a804d beq patch32_5 ,p_g24_transmit_no_interrupt 
-0039 c04b0524 beq patch32_6 ,p_g24_short_sleep 
+0039 c04b05d2 beq patch32_6 ,p_g24_short_sleep 
 003a c04d01db beq patch33_2 ,p_mouse_g24_retransmit 
 003b c04e81f3 beq patch33_5 ,p_g24_transmit_hop_process 
-003c c04f8392 beq patch33_7 ,p_power_ctrl_start 
+003c c04f843f beq patch33_7 ,p_power_ctrl_start 
 003d c17f8000 rtneq patch3f_7 
 003e 2020235a branch assert 
 
@@ -81,7 +81,7 @@
 004a 202060d9 branch mouse_24g_search_dongle_loop_end 
 
 p_mouse_24g_search_dongle_success:
-004b 20400087 call p_g24_send_device_info_enable 
+004b 20400087 call p_mouse_send_device_info_enable 
 004c 202060e9 branch mouse_24g_search_dongle_success 
 
 p_g24_transmit_no_interrupt:
@@ -166,25 +166,25 @@
 0085 704b400a jam 10 ,mem_mouse_delay_send_info_timer 
 0086 20206001 branch mouse_wakeup_24g_from_long_sleep 
 
-p_g24_send_device_info_enable:
+p_mouse_send_device_info_enable:
 0087 6fe0cb24 fetch 1 ,mem_device_tx_device_info_flag 
 0088 79207e06 set1 data_device_info ,pdata 
-0089 2020011e branch p_g24_store_device_tx_flag 
+0089 2020011e branch p_mouse_store_device_tx_flag 
 
-p_g24_send_http_info_enable:
+p_mouse_send_http_info_enable:
 008a 6fe0cb24 fetch 1 ,mem_device_tx_device_info_flag 
 008b 79207e04 set1 data_http ,pdata 
-008c 2020011e branch p_g24_store_device_tx_flag 
+008c 2020011e branch p_mouse_store_device_tx_flag 
 
-p_g24_send_dpi_info_enable:
+p_mouse_send_dpi_info_enable:
 008d 6fe0cb24 fetch 1 ,mem_device_tx_device_info_flag 
 008e 79207e05 set1 data_dpi ,pdata 
-008f 2020011e branch p_g24_store_device_tx_flag 
+008f 2020011e branch p_mouse_store_device_tx_flag 
 
-p_g24_send_app_info_enable:
+p_mouse_send_app_info_enable:
 0090 6fe0cb24 fetch 1 ,mem_device_tx_device_info_flag 
 0091 79207e03 set1 data_app ,pdata 
-0092 2020011e branch p_g24_store_device_tx_flag 
+0092 2020011e branch p_mouse_store_device_tx_flag 
 
 p_g24_send_device_info_check:
 0093 6fe0cb23 fetch 1 ,mem_24g_rf_data_flag 
@@ -347,33 +347,35 @@
 010c 20600000 rtn 
 
 p_g24_receive_no_ack_data:
+
+p_mouse_le_clr_info_flag:
 010d 6fe0cb24 fetch 1 ,mem_device_tx_device_info_flag 
 010e 2feffe06 isolate1 data_device_info ,pdata 
-010f 20408117 call p_g24_clr_device_info_flag ,true 
+010f 20408117 call p_mouse_clr_device_info_flag ,true 
 0110 2feffe04 isolate1 data_http ,pdata 
-0111 20408119 call p_g24_clr_http_info_flag ,true 
+0111 20408119 call p_mouse_clr_http_info_flag ,true 
 0112 2feffe05 isolate1 data_dpi ,pdata 
-0113 2040811b call p_g24_clr_dpi_info_flag ,true 
+0113 2040811b call p_mouse_clr_dpi_info_flag ,true 
 0114 2feffe03 isolate1 data_app ,pdata 
-0115 2040811d call p_g24_clr_app_info_flag ,true 
+0115 2040811d call p_mouse_clr_app_info_flag ,true 
 0116 20600000 rtn 
 
-p_g24_clr_device_info_flag:
+p_mouse_clr_device_info_flag:
 0117 793ffe06 set0 data_device_info ,pdata 
-0118 2020011e branch p_g24_store_device_tx_flag 
+0118 2020011e branch p_mouse_store_device_tx_flag 
 
-p_g24_clr_http_info_flag:
+p_mouse_clr_http_info_flag:
 0119 793ffe04 set0 data_http ,pdata 
-011a 2020011e branch p_g24_store_device_tx_flag 
+011a 2020011e branch p_mouse_store_device_tx_flag 
 
-p_g24_clr_dpi_info_flag:
+p_mouse_clr_dpi_info_flag:
 011b 793ffe05 set0 data_dpi ,pdata 
-011c 2020011e branch p_g24_store_device_tx_flag 
+011c 2020011e branch p_mouse_store_device_tx_flag 
 
-p_g24_clr_app_info_flag:
+p_mouse_clr_app_info_flag:
 011d 793ffe03 set0 data_app ,pdata 
 
-p_g24_store_device_tx_flag:
+p_mouse_store_device_tx_flag:
 011e 67e0cb24 store 1 ,mem_device_tx_device_info_flag 
 011f 20600000 rtn 
 
@@ -631,7 +633,7 @@
 01ee d8e0000c arg 12 ,queue 
 01ef 20407cef call timer_check 
 01f0 247a0000 nrtn blank 
-01f1 204004ec call p_mouse_dpi_check_retransmit 
+01f1 2040059a call p_mouse_dpi_check_retransmit 
 01f2 20206102 branch mouse_g24_retransmit_event_set 
 
 p_g24_transmit_hop_process:
@@ -646,7 +648,7 @@
 01f9 684a45e4 fetcht 4 ,mem_24g_fast_conn_addr 
 01fa 98467c00 isub temp ,null 
 01fb 2022b222 branch g24_ch ,zero 
-01fc 204003b7 call p_power_ctrl_txpower_incrs 
+01fc 20400464 call p_power_ctrl_txpower_incrs 
 01fd 2020369b branch g24_tx_fast_hop + 1 
 
 p_txon:
@@ -770,7 +772,7 @@
 0259 20200245 branch p_set_lemode_2m 
 
 p_le_check_retransmit_timesout:
-025a 6fe0cc1c fetch 1 ,mem_le_conn_rcv_new 
+025a 6fe0cfa1 fetch 1 ,mem_le_conn_rcv_new 
 025b da600100 arg 256 ,regc 
 025c 9a60fe00 iadd regc ,pdata 
 025d 20600000 rtn 
@@ -780,25 +782,25 @@
 025f 20202563 branch le_slave_match + 1 
 
 p_le_check_retransmit:
-0260 6fe0cc1d fetch 1 ,mem_le_conn_first_rcv 
+0260 6fe0cfa2 fetch 1 ,mem_le_conn_first_rcv 
 0261 207a0000 rtn blank 
-0262 6fe0cc1e fetch 1 ,mem_le_check_retransmit_flag 
+0262 6fe0cfa3 fetch 1 ,mem_le_check_retransmit_flag 
 0263 247a0000 nrtn blank 
-0264 6848cc1d fetcht 1 ,mem_le_conn_first_rcv 
-0265 6fe0cc1c fetch 1 ,mem_le_conn_rcv_new 
+0264 6848cfa2 fetcht 1 ,mem_le_conn_first_rcv 
+0265 6fe0cfa1 fetch 1 ,mem_le_conn_rcv_new 
 0266 98467c00 isub temp ,null 
 0267 2441025a ncall p_le_check_retransmit_timesout ,positive 
 0268 98467e00 isub temp ,pdata 
 0269 1fe67c64 sub pdata ,100 ,null 
 026a 20210272 branch p_le_check_retransmit_count ,positive 
-026b 6fe0cc1f fetch 1 ,mem_le_retransmit_cnt 
+026b 6fe0cfa4 fetch 1 ,mem_le_retransmit_cnt 
 026c 1fe67c14 sub pdata ,20 ,null 
 026d 24410270 ncall p_app_ble_disconnect ,positive 
-026e 704c1e01 jam 1 ,mem_le_check_retransmit_flag 
+026e 704fa301 jam 1 ,mem_le_check_retransmit_flag 
 026f 20600000 rtn 
 
 p_app_ble_disconnect:
-0270 704c2001 jam 1 ,mem_le_check_retransmit_discon_flag 
+0270 704fa501 jam 1 ,mem_le_check_retransmit_discon_flag 
 0271 2020431f branch app_ble_disconnect 
 
 p_le_check_retransmit_count:
@@ -808,10 +810,10 @@
 0275 9842fe00 ixor temp ,pdata 
 0276 2feffe02 isolate1 nesn ,pdata 
 0277 58000000 setarg 0 
-0278 6848cc1f fetcht 1 ,mem_le_retransmit_cnt 
+0278 6848cfa4 fetcht 1 ,mem_le_retransmit_cnt 
 0279 7920fe00 setflag true ,0 ,pdata 
 027a 98408400 iadd temp ,temp 
-027b 6048cc1f storet 1 ,mem_le_retransmit_cnt 
+027b 6048cfa4 storet 1 ,mem_le_retransmit_cnt 
 027c 20600000 rtn 
 
 p_le_got_first_packet_new:
@@ -819,9 +821,9 @@
 027e 1fe0fe01 increase 1 ,pdata 
 027f 67e08005 store 1 ,mem_le_conn_rcv 
 0280 24368284 nbranch p_le_got_first_packet_new + 7 ,match 
-0281 6fe0cc1c fetch 1 ,mem_le_conn_rcv_new 
+0281 6fe0cfa1 fetch 1 ,mem_le_conn_rcv_new 
 0282 1fe0fe01 increase 1 ,pdata 
-0283 67e0cc1c store 1 ,mem_le_conn_rcv_new 
+0283 67e0cfa1 store 1 ,mem_le_conn_rcv_new 
 0284 2020259b branch le_got_first_packet + 4 
 
 p_le_rx_dec:
@@ -985,9 +987,9 @@
 0302 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
 0303 1fe17e03 and pdata ,0x03 ,pdata 
 0304 c1818000 rtnne 0x03 
-0305 6fe0cc1e fetch 1 ,mem_le_check_retransmit_flag 
+0305 6fe0cfa3 fetch 1 ,mem_le_check_retransmit_flag 
 0306 207a0000 rtn blank 
-0307 6fe0cc20 fetch 1 ,mem_le_check_retransmit_discon_flag 
+0307 6fe0cfa5 fetch 1 ,mem_le_check_retransmit_discon_flag 
 0308 247a0000 nrtn blank 
 
 p_mouse_le_next:
@@ -999,1091 +1001,1339 @@
 030e c282db5b bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
 030f c2835b5b bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_le_send_empty_packet 
 0310 20405601 call mouse_motion 
-0311 20405ab2 call mouse_check_125hz 
-0312 24740000 nrtn user 
-0313 20405abc call mouse_current_mult_update 
-0314 20400554 call p_mouse_data_xy_release 
-0315 20205b37 branch mouse_le_next + 12 
+0311 204005f2 call p_mouse_tx_device_info_check 
+0312 20405ab2 call mouse_check_125hz 
+0313 24740000 nrtn user 
+0314 20405abc call mouse_current_mult_update 
+0315 20400602 call p_mouse_data_xy_release 
+0316 6fe0cb24 fetch 1 ,mem_device_tx_device_info_flag 
+0317 704b2400 jam 0 ,mem_device_tx_device_info_flag 
+0318 c2820327 bbit1 data_http ,p_mouse_send_website_data 
+0319 c28183bf bbit1 data_app ,p_le_send_app_info_check 
+031a c283039f bbit1 data_device_info ,p_mouse_send_device_info_check 
+031b c28283b1 bbit1 data_dpi ,p_le_send_dpi_info_data 
+031c c28383b8 bbit1 data_battery ,p_le_send_battery_info_check 
+031d 20205b37 branch mouse_le_next + 12 
+
+p_mouse_send_http_data_timer:
+031e d8e0000c arg 12 ,queue 
+031f 20407cef call timer_check 
+0320 247a0000 nrtn blank 
+0321 6fe0ce66 fetch 1 ,mem_mouse_website_step 
+0322 203a0324 branch p_mouse_send_http_timer_init ,blank 
+0323 2040008a call p_mouse_send_http_info_enable 
+
+p_mouse_send_http_timer_init:
+0324 d8e0000c arg 12 ,queue 
+0325 58000014 setarg 20 
+0326 20207ce1 branch timer_init 
+
+p_mouse_send_website_data:
+0327 58000000 setarg 0 
+0328 67e40670 store 8 ,mem_pdatatemp 
+0329 6fe0ce66 fetch 1 ,mem_mouse_website_step 
+032a c0000334 beq release_ms_data ,p_mouse_le_send_empty_packet 
+032b c0008336 beq website_win ,p_mouse_website_winr_data 
+032c c001034d beq website_win_release ,p_mouse_website_win_release_data 
+032d c0018398 beq website_wait ,p_mouse_website_wait_tx_data 
+032e c0020347 beq website_data ,p_mouse_website_data 
+032f c0028341 beq website_enter_1 ,p_mouse_website_enter_data1 
+0330 c0030350 beq website_enter_release_1 ,p_mouse_webstie_release_data1 
+0331 c0038343 beq website_enter_2 ,p_mouse_website_enter_data2 
+0332 c004034b beq website_enter_release_2 ,p_mouse_website_enter_release_data 
+0333 20600000 rtn 
+
+p_mouse_le_send_empty_packet:
+0334 704e6601 jam website_win ,mem_mouse_website_step 
+0335 20205b5b branch mouse_le_send_empty_packet 
+
+p_mouse_website_winr_data:
+0336 704e6602 jam website_win_release ,mem_mouse_website_step 
+0337 dfe04e6a arg mem_mouse_website_info + 1 ,pdata 
+0338 67e14e67 store 2 ,mem_mouse_website_ptr 
+0339 6fe0ceb3 fetch 1 ,mem_computer_system 
+033a c001833e beq system_os_mac ,p_mouse_macos_winr_data 
+
+p_mouse_winos_winr_data:
+033b 6fe1cea8 fetch 3 ,mem_usb_win_cmd 
+033c 67e18670 store 3 ,mem_pdatatemp 
+033d 20205b44 branch mouse_le_send_keyboard_package_data_next 
+
+p_mouse_macos_winr_data:
+033e 6fe1ceab fetch 3 ,mem_usb_mac_cmd 
+033f 67e18670 store 3 ,mem_pdatatemp 
+0340 20205b44 branch mouse_le_send_keyboard_package_data_next 
+
+p_mouse_website_enter_data1:
+0341 704e6606 jam website_enter_release_1 ,mem_mouse_website_step 
+0342 20200344 branch p_mouse_website_enter_data 
+
+p_mouse_website_enter_data2:
+0343 704e6608 jam website_enter_release_2 ,mem_mouse_website_step 
+
+p_mouse_website_enter_data:
+0344 6fe1ceae fetch 3 ,mem_usb_kb_enter 
+0345 67e18670 store 3 ,mem_pdatatemp 
+0346 20205b44 branch mouse_le_send_keyboard_package_data_next 
+
+p_mouse_website_data:
+0347 6fe0ceb2 fetch 1 ,mem_mouse_website_release_flag 
+0348 c000834e beq 1 ,p_mouse_website_release_data 
+0349 c0000354 beq 0 ,p_mouse_website_info_data 
+034a 20600000 rtn 
+
+p_mouse_website_enter_release_data:
+034b 704e6600 jam website_done ,mem_mouse_website_step 
+034c 2020034e branch p_mouse_website_release_data 
+
+p_mouse_website_win_release_data:
+034d 704e6603 jam website_wait ,mem_mouse_website_step 
+
+p_mouse_website_release_data:
+034e 704eb200 jam 0 ,mem_mouse_website_release_flag 
+034f 20205b4d branch mouse_le_release_keyboard_data 
+
+p_mouse_webstie_release_data1:
+0350 704e6607 jam website_enter_2 ,mem_mouse_website_step 
+0351 2020034e branch p_mouse_website_release_data 
+
+p_usb_webstie_info_data_done:
+0352 704e6605 jam website_enter_1 ,mem_mouse_website_step 
+0353 20600000 rtn 
+
+p_mouse_website_info_data:
+0354 d8404e6a arg mem_mouse_website_info + 1 ,temp 
+0355 6fe0ce69 fetch 1 ,mem_mouse_website_info 
+0356 98408400 iadd temp ,temp 
+0357 6fe14e67 fetch 2 ,mem_mouse_website_ptr 
+0358 98467c00 isub temp ,null 
+0359 20228352 branch p_usb_webstie_info_data_done ,zero 
+035a 20400364 call p_mouse_website_acii2hidkey 
+035b 2040038b call p_mouse_website_need_shift 
+035c 6fe0ceb1 fetch 1 ,mem_mouse_website_shift_flag 
+035d 67e08670 store 1 ,mem_pdatatemp 
+035e 62208672 storer rega ,1 ,mem_pdatatemp + 2 
+035f 6fe14e67 fetch 2 ,mem_mouse_website_ptr 
+0360 1fe0fe01 increase 1 ,pdata 
+0361 67e14e67 store 2 ,mem_mouse_website_ptr 
+0362 704eb201 jam 1 ,mem_mouse_website_release_flag 
+0363 20205b44 branch mouse_le_send_keyboard_package_data_next 
+
+p_mouse_website_acii2hidkey:
+0364 68494e67 fetcht 2 ,mem_mouse_website_ptr 
+0365 efe08002 ifetch 1 ,temp 
+0366 1fe67c7a sub pdata ,0x7a ,null 
+0367 2421036b nbranch p_mouse_website_acii2hidkey1 ,positive 
+0368 da400061 arg 0x61 ,regb 
+0369 9a462200 isub regb ,rega 
+036a 20210385 branch p_mouse_website_acii2keycode_a2z ,positive 
+
+p_mouse_website_acii2hidkey1:
+036b efe08002 ifetch 1 ,temp 
+036c 1fe67c39 sub pdata ,0x39 ,null 
+036d 24210374 nbranch p_mouse_website_acii2keycode_sign ,positive 
+036e da400031 arg 0x31 ,regb 
+036f 9a462200 isub regb ,rega 
+0370 20210387 branch p_mouse_website_acii2keycode_1to9 ,positive 
+0371 da400030 arg 0x30 ,regb 
+0372 9a462200 isub regb ,rega 
+0373 20228389 branch p_mouse_website_acii2keycode_0 ,zero 
+
+p_mouse_website_acii2keycode_sign:
+0374 1fe67c3a sub pdata ,0x3a ,null 
+0375 2022837d branch p_mouse_website_acii2keycode_sign_3a ,zero 
+0376 1fe67c2f sub pdata ,0x2f ,null 
+0377 2022837f branch p_mouse_website_acii2keycode_sign_2f ,zero 
+0378 1fe67c2e sub pdata ,0x2e ,null 
+0379 20228381 branch p_mouse_website_acii2keycode_sign_2e ,zero 
+037a 1fe67c2d sub pdata ,0x2d ,null 
+037b 20228383 branch p_mouse_website_acii2keycode_sign_2d ,zero 
+037c 20600000 rtn 
+
+p_mouse_website_acii2keycode_sign_3a:
+037d da200033 arg 0x33 ,rega 
+037e 20600000 rtn 
+
+p_mouse_website_acii2keycode_sign_2f:
+037f da200038 arg 0x38 ,rega 
+0380 20600000 rtn 
+
+p_mouse_website_acii2keycode_sign_2e:
+0381 da200037 arg 0x37 ,rega 
+0382 20600000 rtn 
+
+p_mouse_website_acii2keycode_sign_2d:
+0383 da20002d arg 0x2d ,rega 
+0384 20600000 rtn 
+
+p_mouse_website_acii2keycode_a2z:
+0385 1a20a204 add rega ,4 ,rega 
+0386 20600000 rtn 
+
+p_mouse_website_acii2keycode_1to9:
+0387 1a20a21e add rega ,0x1e ,rega 
+0388 20600000 rtn 
+
+p_mouse_website_acii2keycode_0:
+0389 1a20a227 add rega ,0x27 ,rega 
+038a 20600000 rtn 
+
+p_mouse_website_need_shift:
+038b 704eb100 jam 0 ,mem_mouse_website_shift_flag 
+038c 6fe14e67 fetch 2 ,mem_mouse_website_ptr 
+038d efe0803f ifetch 1 ,pdata 
+038e d8c04e92 arg mem_mouse_website_info_sign + 1 ,contr 
+038f 6848ce91 fetcht 1 ,mem_mouse_website_info_sign 
+0390 18427200 copy temp ,loopcnt 
+
+p_mouse_website_need_shift_check_loop:
+0391 e8408006 ifetcht 1 ,contr 
+0392 98467c00 isub temp ,null 
+0393 20228396 branch p_mouse_website_need_shift_setflag ,zero 
+0394 c2000391 loop p_mouse_website_need_shift_check_loop 
+0395 20600000 rtn 
+
+p_mouse_website_need_shift_setflag:
+0396 704eb102 jam 2 ,mem_mouse_website_shift_flag 
+0397 20600000 rtn 
+
+p_mouse_website_wait_tx_data:
+0398 6fe0cea7 fetch 1 ,mem_mouse_website_wait_count 
+0399 1fe0fe01 increase 1 ,pdata 
+039a 67e0cea7 store 1 ,mem_mouse_website_wait_count 
+039b c18f0000 rtnne website_wait_count 
+039c 704ea700 jam 0 ,mem_mouse_website_wait_count 
+039d 704e6604 jam website_data ,mem_mouse_website_step 
+039e 20600000 rtn 
+
+p_mouse_send_device_info_check:
+039f 204003ae call p_le_info_tx_buf_clr 
+03a0 704eb401 jam hci_event_device_info_rep ,mem_device_info_tx_buf 
+03a1 704eb50c jam 0x0c ,mem_device_info_tx_buf + 1 
+03a2 6fe34b28 fetch 6 ,mem_mouse_sn_mac 
+03a3 67e34eb6 store 6 ,mem_device_info_tx_buf + 2 
+03a4 6fe14b26 fetch 2 ,mem_mouse_version 
+03a5 67e14ebc store 2 ,mem_device_info_tx_buf + 8 
+03a6 6fe14b2e fetch 2 ,mem_mouse_code 
+03a7 67e14ebe store 2 ,mem_device_info_tx_buf + 10 
+
+p_le_info_tx_data_fill:
+03a8 da200014 arg 20 ,rega 
+03a9 68494b43 fetcht 2 ,mem_le_info_tx_handle 
+03aa 20402dee call le_att_malloc_tx_notify 
+03ab df200014 arg 20 ,loopcnt 
+03ac d8c04eb4 arg mem_device_info_tx_buf ,contr 
+03ad 20207cda branch memcpy 
+
+p_le_info_tx_buf_clr:
+03ae d8a04eb4 arg mem_device_info_tx_buf ,contw 
+03af df200014 arg 20 ,loopcnt 
+03b0 20207ca3 branch memset0 
+
+p_le_send_dpi_info_data:
+03b1 204003ae call p_le_info_tx_buf_clr 
+03b2 704eb402 jam hci_event_dpi_rsp ,mem_device_info_tx_buf 
+03b3 704eb502 jam 0x02 ,mem_device_info_tx_buf + 1 
+03b4 6fe0c690 fetch 1 ,mem_mouse_dpi 
+03b5 67e0ceb6 store 1 ,mem_device_info_tx_buf + 2 
+03b6 704eb700 jam 0x00 ,mem_device_info_tx_buf + 3 
+03b7 202003a8 branch p_le_info_tx_data_fill 
+
+p_le_send_battery_info_check:
+03b8 204003ae call p_le_info_tx_buf_clr 
+03b9 704eb406 jam hci_event_battery_rep ,mem_device_info_tx_buf 
+03ba 704eb502 jam 0x02 ,mem_device_info_tx_buf + 1 
+03bb 6fe0c7bd fetch 1 ,mem_le_battery_level_percentage 
+03bc 67e0ceb6 store 1 ,mem_device_info_tx_buf + 2 
+03bd 704eb700 jam 0x00 ,mem_device_info_tx_buf + 3 
+03be 202003a8 branch p_le_info_tx_data_fill 
+
+p_le_send_app_info_check:
+03bf 204003ae call p_le_info_tx_buf_clr 
+03c0 704eb408 jam hci_event_open_app_rep ,mem_device_info_tx_buf 
+03c1 704eb500 jam 0x00 ,mem_device_info_tx_buf + 1 
+03c2 202003a8 branch p_le_info_tx_data_fill 
 
 p_gpio_set_wake:
-0316 18467cff sub temp ,ui_button_gpio_disable ,null 
-0317 20628000 rtn zero 
-0318 d9000004 arg 4 ,debug 
-0319 284ffe07 isolate1 gpio_active_bit ,temp 
-031a 2020eebd branch gpio_set_wake_high ,true 
-031b d9000003 arg 3 ,debug 
-031c 20206ebd branch gpio_set_wake_high 
+03c3 18467cff sub temp ,ui_button_gpio_disable ,null 
+03c4 20628000 rtn zero 
+03c5 d9000004 arg 4 ,debug 
+03c6 284ffe07 isolate1 gpio_active_bit ,temp 
+03c7 2020eebd branch gpio_set_wake_high ,true 
+03c8 d9000003 arg 3 ,debug 
+03c9 20206ebd branch gpio_set_wake_high 
 
 p_gpio_set_wake_by_current_state:
-031d 18467cff sub temp ,gpio_disable ,null 
-031e 20628000 rtn zero 
-031f 20406ee6 call gpio_get_bit 
-0320 20208323 branch p_gpio_set_qdec_mode ,true 
+03ca 18467cff sub temp ,gpio_disable ,null 
+03cb 20628000 rtn zero 
+03cc 20406ee6 call gpio_get_bit 
+03cd 202083d0 branch p_gpio_set_qdec_mode ,true 
 
 p_gpio_set_low_wake:
-0321 d9000003 arg 3 ,debug 
-0322 20206ebd branch gpio_set_wake_high 
+03ce d9000003 arg 3 ,debug 
+03cf 20206ebd branch gpio_set_wake_high 
 
 p_gpio_set_qdec_mode:
-0323 704b1f01 jam 1 ,mem_mouse_qdec_set_flag 
+03d0 704b1f01 jam 1 ,mem_mouse_qdec_set_flag 
 
 p_mouse_qdec_lpm_cfg:
-0324 d9000006 arg 6 ,debug 
-0325 20206ebd branch gpio_set_wake_high 
+03d1 d9000006 arg 6 ,debug 
+03d2 20206ebd branch gpio_set_wake_high 
 
 p_mouse_puchk_disable:
-0326 58000010 setarg 0x10 
+03d3 58000010 setarg 0x10 
 
 p_mouse_puchk_set:
-0327 67f08141 store 1 ,core_puwakeup 
-0328 202023e2 branch lpm_write_wait 
+03d4 67f08141 store 1 ,core_puwakeup 
+03d5 202023e2 branch lpm_write_wait 
 
 p_mouse_lpm_before_common:
-0329 20400529 call p_clear_wake 
-032a 704b1f00 jam 0 ,mem_mouse_qdec_set_flag 
-032b 6848c654 fetcht 1 ,mem_matrix_public_gpio 
-032c 20406ef7 call gpio_out_active 
-032d 6848c654 fetcht 1 ,mem_matrix_public_gpio 
-032e 20406ed3 call gpio_clr_wake 
-032f 2040550d call mouse_lpm_before_common + 1 
-0330 204054f9 call mouse_gpio_pd_idle 
+03d6 204005d7 call p_clear_wake 
+03d7 704b1f00 jam 0 ,mem_mouse_qdec_set_flag 
+03d8 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+03d9 20406ef7 call gpio_out_active 
+03da 6848c654 fetcht 1 ,mem_matrix_public_gpio 
+03db 20406ed3 call gpio_clr_wake 
+03dc 2040550d call mouse_lpm_before_common + 1 
+03dd 204054f9 call mouse_gpio_pd_idle 
 
 p_mouse_wheel_set_impedance:
-0331 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
-0332 20406f0f call gpio_set_high_impedance 
-0333 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
-0334 20206f0f branch gpio_set_high_impedance 
+03de 6848c64a fetcht 1 ,mem_whee_a_data_gpio 
+03df 20406f0f call gpio_set_high_impedance 
+03e0 6848c64b fetcht 1 ,mem_whee_b_data_gpio 
+03e1 20206f0f branch gpio_set_high_impedance 
 
 p_lpm_sleep:
 
 p_lpm_sleep_skip_cb_function:
-0335 6fe240ad fetch 4 ,mem_sleep_counter_all 
-0336 9840fe00 iadd temp ,pdata 
-0337 67e240ad store 4 ,mem_sleep_counter_all 
-0338 20400346 call p_lpm_save_context 
-0339 20400342 call p_mouse_puchk_set_check 
-033a 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
-033b 79207e04 set1 lpm_doze_en_bit ,pdata 
-033c 204023e1 call lpm_write_sel_hv 
-033d 2455a3cb ncall lpm_preon_counter ,wake 
-033e 37d98200 until null ,lpo_edge 
-033f 1b227e00 copy clkn ,pdata 
-0340 67e340b1 store 6 ,mem_sleep_clkn 
-0341 2020242b branch lpm_sleep_skip_cb_function + 10 
+03e2 6fe240ad fetch 4 ,mem_sleep_counter_all 
+03e3 9840fe00 iadd temp ,pdata 
+03e4 67e240ad store 4 ,mem_sleep_counter_all 
+03e5 204003f3 call p_lpm_save_context 
+03e6 204003ef call p_mouse_puchk_set_check 
+03e7 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
+03e8 79207e04 set1 lpm_doze_en_bit ,pdata 
+03e9 204023e1 call lpm_write_sel_hv 
+03ea 2455a3cb ncall lpm_preon_counter ,wake 
+03eb 37d98200 until null ,lpo_edge 
+03ec 1b227e00 copy clkn ,pdata 
+03ed 67e340b1 store 6 ,mem_sleep_clkn 
+03ee 2020242b branch lpm_sleep_skip_cb_function + 10 
 
 p_mouse_puchk_set_check:
-0342 6fe0cb1f fetch 1 ,mem_mouse_qdec_set_flag 
-0343 203a0326 branch p_mouse_puchk_disable ,blank 
+03ef 6fe0cb1f fetch 1 ,mem_mouse_qdec_set_flag 
+03f0 203a03d3 branch p_mouse_puchk_disable ,blank 
 
 p_mouse_puchk_enable:
-0344 58000080 setarg 0x80 
-0345 20200327 branch p_mouse_puchk_set 
+03f1 58000080 setarg 0x80 
+03f2 202003d4 branch p_mouse_puchk_set 
 
 p_lpm_save_context:
-0346 600440e7 storer mark ,8 ,mem_saved_mark 
-0347 d8c08070 arg core_gpio_conf ,contr 
-0348 d8a040cc arg mem_saved_gpio ,contw 
-0349 20407c8f call memcpy16 
-034a d8c080d4 arg core_gpio_conf_hi ,contr 
-034b 20407c89 call memcpy8 
-034c 6ff08080 fetch 1 ,core_spid_ctrl 
-034d 67e0c0ef store 1 ,mem_saved_spidctrl 
-034e 18422400 copy temp ,regb 
+03f3 600440e7 storer mark ,8 ,mem_saved_mark 
+03f4 d8c08070 arg core_gpio_conf ,contr 
+03f5 d8a040cc arg mem_saved_gpio ,contw 
+03f6 20407c8f call memcpy16 
+03f7 d8c080d4 arg core_gpio_conf_hi ,contr 
+03f8 20407c89 call memcpy8 
+03f9 6ff08080 fetch 1 ,core_spid_ctrl 
+03fa 67e0c0ef store 1 ,mem_saved_spidctrl 
+03fb 18422400 copy temp ,regb 
 
 p_lpm_write_gpio_wakeup:
-034f df20000c arg 12 ,loopcnt 
-0350 da200016 arg mem_gpio_wakeup_cfg ,rega 
-0351 da60814d arg core_gpio_wakeup_cfg ,regc 
-0352 37d98200 until null ,lpo_edge 
+03fc df20000c arg 12 ,loopcnt 
+03fd da200016 arg mem_gpio_wakeup_cfg ,rega 
+03fe da60814d arg core_gpio_wakeup_cfg ,regc 
+03ff 37d98200 until null ,lpo_edge 
 
 p_lpm_write_gpio_loop:
-0353 efe08011 ifetch 1 ,rega 
-0354 e8408013 ifetcht 1 ,regc 
-0355 98467c00 isub temp ,null 
-0356 20228359 branch p_lpm_write_gpio_loop_next ,zero 
-0357 e7e08013 istore 1 ,regc 
-0358 37d98200 until null ,lpo_edge 
+0400 efe08011 ifetch 1 ,rega 
+0401 e8408013 ifetcht 1 ,regc 
+0402 98467c00 isub temp ,null 
+0403 20228406 branch p_lpm_write_gpio_loop_next ,zero 
+0404 e7e08013 istore 1 ,regc 
+0405 37d98200 until null ,lpo_edge 
 
 p_lpm_write_gpio_loop_next:
-0359 1a20a201 increase 1 ,rega 
-035a 1a60a601 increase 1 ,regc 
-035b c2000353 loop p_lpm_write_gpio_loop 
-035c 1a420400 copy regb ,temp 
-035d 20600000 rtn 
+0406 1a20a201 increase 1 ,rega 
+0407 1a60a601 increase 1 ,regc 
+0408 c2000400 loop p_lpm_write_gpio_loop 
+0409 1a420400 copy regb ,temp 
+040a 20600000 rtn 
 
 p_otp_read_data:
-035e 20406b3a call enable_otp_read 
-035f 20406b75 call otp_read_data + 1 
-0360 20206b38 branch otp_disable_chgpump 
+040b 20406b3a call enable_otp_read 
+040c 20406b75 call otp_read_data + 1 
+040d 20206b38 branch otp_disable_chgpump 
 
 p_g24_reconn_dispatch:
-0361 6fe145e0 fetch 2 ,mem_24g_reconn_count 
-0362 d84001f8 arg 0x01f8 ,temp 
-0363 98417e00 iand temp ,pdata 
-0364 203a0366 branch p_g24_reconn_dispatch_next ,blank 
-0365 20203561 branch g24_reconn_dispatch + 5 
+040e 6fe145e0 fetch 2 ,mem_24g_reconn_count 
+040f d84001f8 arg 0x01f8 ,temp 
+0410 98417e00 iand temp ,pdata 
+0411 203a0413 branch p_g24_reconn_dispatch_next ,blank 
+0412 20203561 branch g24_reconn_dispatch + 5 
 
 p_g24_reconn_dispatch_next:
-0366 2040357f call g24_reconn_data_prep 
-0367 20403651 call g24_transmit_receive_ack 
-0368 242c3586 nbranch g24_reconn_device_fail ,sync 
-0369 2437b586 nbranch g24_reconn_device_fail ,user3 
-036a 2040366e call g24_ackpayload_parse 
-036b 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-036c 203a038b branch p_recv_addr_zero_skip ,blank 
+0413 2040357f call g24_reconn_data_prep 
+0414 20403651 call g24_transmit_receive_ack 
+0415 242c3586 nbranch g24_reconn_device_fail ,sync 
+0416 2437b586 nbranch g24_reconn_device_fail ,user3 
+0417 2040366e call g24_ackpayload_parse 
+0418 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0419 203a0438 branch p_recv_addr_zero_skip ,blank 
 
 p_g24_reconn_dispatch_next_2:
-036d 6fe245cc fetch 4 ,mem_24g_pair_addr 
-036e 684a458f fetcht 4 ,mem_24g_addr 
-036f 98467c00 isub temp ,null 
-0370 20228372 branch p_g24_reconn_mode_judge ,zero 
-0371 2020356e branch g24_reconn_dispatch_next + 9 
+041a 6fe245cc fetch 4 ,mem_24g_pair_addr 
+041b 684a458f fetcht 4 ,mem_24g_addr 
+041c 98467c00 isub temp ,null 
+041d 2022841f branch p_g24_reconn_mode_judge ,zero 
+041e 2020356e branch g24_reconn_dispatch_next + 9 
 
 p_g24_reconn_mode_judge:
-0372 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-0373 c298604e bbit1 mouse_enable_auto_24g_paring ,mouse_24g_pair_mode_check 
-0374 20203549 branch g24_reconn_receiver_addr 
+041f 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+0420 c298604e bbit1 mouse_enable_auto_24g_paring ,mouse_24g_pair_mode_check 
+0421 20203549 branch g24_reconn_receiver_addr 
 
 p_g24_reconn_device_fail:
-0375 6fe0c5e3 fetch 1 ,mem_24g_fast_conn_enable 
-0376 203a3222 branch g24_ch ,blank 
-0377 6fe145e0 fetch 2 ,mem_24g_reconn_count 
-0378 1fe0fe01 increase 1 ,pdata 
-0379 67e145e0 store 2 ,mem_24g_reconn_count 
-037a 2feffe09 isolate1 9 ,pdata 
-037b 6fe0c5e2 fetch 1 ,mem_24g_reconn_type 
-037c c002837e beq pair_and_receiver ,p_g24_reconn_pair_and_receiver 
-037d 2020358d branch g24_reconn_device_fail + 7 
+0422 6fe0c5e3 fetch 1 ,mem_24g_fast_conn_enable 
+0423 203a3222 branch g24_ch ,blank 
+0424 6fe145e0 fetch 2 ,mem_24g_reconn_count 
+0425 1fe0fe01 increase 1 ,pdata 
+0426 67e145e0 store 2 ,mem_24g_reconn_count 
+0427 2feffe09 isolate1 9 ,pdata 
+0428 6fe0c5e2 fetch 1 ,mem_24g_reconn_type 
+0429 c002842b beq pair_and_receiver ,p_g24_reconn_pair_and_receiver 
+042a 2020358d branch g24_reconn_device_fail + 7 
 
 p_g24_reconn_pair_and_receiver:
-037e 2020b549 branch g24_reconn_receiver_addr ,true 
-037f 2020329c branch g24_pair_init_param 
+042b 2020b549 branch g24_reconn_receiver_addr ,true 
+042c 2020329c branch g24_pair_init_param 
 
 p_mouse_param_init:
-0380 2040543b call mouse_param_common_init 
-0381 704b4000 jam 0 ,mem_mouse_delay_send_info_timer 
-0382 58004a1f setarg mem_le_tx_buffer0_omemalloc_new 
-0383 67e1433f store 2 ,mem_ble_l2cap_tx_buff0_ptr 
-0384 58000020 setarg mouse_ble_l2cap_txbuff_size_new 
-0385 67e14341 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
-0386 2040544c call mouse_param_init + 2 
-0387 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-0388 c38a8000 rtnbit1 mouse_enable_adc 
-0389 7047bdff jam 0xff ,mem_le_battery_level_percentage 
-038a 20600000 rtn 
+042d 2040543b call mouse_param_common_init 
+042e 704b4000 jam 0 ,mem_mouse_delay_send_info_timer 
+042f 58004a1f setarg mem_le_tx_buffer0_omemalloc_new 
+0430 67e1433f store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0431 58000020 setarg mouse_ble_l2cap_txbuff_size_new 
+0432 67e14341 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0433 2040544c call mouse_param_init + 2 
+0434 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+0435 c38a8000 rtnbit1 mouse_enable_adc 
+0436 7047bdff jam 0xff ,mem_le_battery_level_percentage 
+0437 20600000 rtn 
 
 p_recv_addr_zero_skip:
-038b 6fe245e4 fetch 4 ,mem_24g_fast_conn_addr 
-038c 684a458f fetcht 4 ,mem_24g_addr 
-038d 98467c00 isub temp ,null 
-038e 2022836d branch p_g24_reconn_dispatch_next_2 ,zero 
-038f 6fe2455f fetch 4 ,mem_24g_rxpayload + 2 
-0390 207a0000 rtn blank 
-0391 2020036d branch p_g24_reconn_dispatch_next_2 
+0438 6fe245e4 fetch 4 ,mem_24g_fast_conn_addr 
+0439 684a458f fetcht 4 ,mem_24g_addr 
+043a 98467c00 isub temp ,null 
+043b 2022841a branch p_g24_reconn_dispatch_next_2 ,zero 
+043c 6fe2455f fetch 4 ,mem_24g_rxpayload + 2 
+043d 207a0000 rtn blank 
+043e 2020041a branch p_g24_reconn_dispatch_next_2 
 
 p_power_ctrl_start:
-0392 6fe0c437 fetch 1 ,mem_power_ctrl_disable 
-0393 247a0000 nrtn blank 
-0394 6fe144e9 fetch 2 ,mem_ui_state_map 
-0395 c3858000 rtnbit1 ui_state_ble_adv 
-0396 6a2145f0 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
-0397 204035b4 call rssi_average 
-0398 6048c624 storet 1 ,mem_rssi_avg_received 
-0399 6fe0c629 fetch 1 ,mem_rssi_dis_max_24g 
-039a c513039c bmark1 mark_24g ,p_power_ctrl_start_next 
-039b 6fe0c62c fetch 1 ,mem_rssi_dis_max_ble 
+043f 6fe0c437 fetch 1 ,mem_power_ctrl_disable 
+0440 247a0000 nrtn blank 
+0441 6fe144e9 fetch 2 ,mem_ui_state_map 
+0442 c3858000 rtnbit1 ui_state_ble_adv 
+0443 6a2145f0 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+0444 204035b4 call rssi_average 
+0445 6048c624 storet 1 ,mem_rssi_avg_received 
+0446 6fe0c629 fetch 1 ,mem_rssi_dis_max_24g 
+0447 c5130449 bmark1 mark_24g ,p_power_ctrl_start_next 
+0448 6fe0c62c fetch 1 ,mem_rssi_dis_max_ble 
 
 p_power_ctrl_start_next:
-039c 98467c00 isub temp ,null 
-039d 242103b6 nbranch p_power_ctrl_txpower_incrs_force ,positive 
-039e 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-039f 1fe67c02 sub pdata ,2 ,null 
-03a0 242103a4 nbranch p_power_ctrl_txpower_decrs_check ,positive 
-03a1 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-03a2 c00003b7 beq 0 ,p_power_ctrl_txpower_incrs 
-03a3 20600000 rtn 
+0449 98467c00 isub temp ,null 
+044a 24210463 nbranch p_power_ctrl_txpower_incrs_force ,positive 
+044b 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+044c 1fe67c02 sub pdata ,2 ,null 
+044d 24210451 nbranch p_power_ctrl_txpower_decrs_check ,positive 
+044e 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+044f c0000464 beq 0 ,p_power_ctrl_txpower_incrs 
+0450 20600000 rtn 
 
 p_power_ctrl_txpower_decrs_check:
-03a4 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-03a5 6848c627 fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
-03a6 98467c00 isub temp ,null 
-03a7 24628000 nrtn zero 
-03a8 70462600 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0451 6fe0c626 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0452 6848c627 fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+0453 98467c00 isub temp ,null 
+0454 24628000 nrtn zero 
+0455 70462600 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 p_power_ctrl_txpower_decrs:
-03a9 6848c624 fetcht 1 ,mem_rssi_avg_received 
-03aa 6fe0c628 fetch 1 ,mem_rssi_dis_min_24g 
-03ab c51303ad bmark1 mark_24g ,p_power_ctrl_txpower_decrs_next 
-03ac 6fe0c62b fetch 1 ,mem_rssi_dis_min_ble 
+0456 6848c624 fetcht 1 ,mem_rssi_avg_received 
+0457 6fe0c628 fetch 1 ,mem_rssi_dis_min_24g 
+0458 c513045a bmark1 mark_24g ,p_power_ctrl_txpower_decrs_next 
+0459 6fe0c62b fetch 1 ,mem_rssi_dis_min_ble 
 
 p_power_ctrl_txpower_decrs_next:
-03ad 98467c00 isub temp ,null 
-03ae 24610000 nrtn positive 
-03af 6fe0c625 fetch 1 ,mem_power_ctrl_level 
-03b0 c0003715 beq 0 ,power_ctrl_decrs_level0 
-03b1 1fe0ffff increase -1 ,pdata 
-03b2 67e0c625 store 1 ,mem_power_ctrl_level 
-03b3 c00103bf beq 2 ,p_power_ctrl_decrs_level2 
-03b4 c000b70b beq 1 ,power_ctrl_decrs_level1 
-03b5 20203715 branch power_ctrl_decrs_level0 
+045a 98467c00 isub temp ,null 
+045b 24610000 nrtn positive 
+045c 6fe0c625 fetch 1 ,mem_power_ctrl_level 
+045d c0003715 beq 0 ,power_ctrl_decrs_level0 
+045e 1fe0ffff increase -1 ,pdata 
+045f 67e0c625 store 1 ,mem_power_ctrl_level 
+0460 c001046c beq 2 ,p_power_ctrl_decrs_level2 
+0461 c000b70b beq 1 ,power_ctrl_decrs_level1 
+0462 20203715 branch power_ctrl_decrs_level0 
 
 p_power_ctrl_txpower_incrs_force:
-03b6 70462600 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0463 70462600 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 p_power_ctrl_txpower_incrs:
-03b7 6fe0c625 fetch 1 ,mem_power_ctrl_level 
-03b8 c00183bd beq 3 ,p_power_ctrl_incrs_level3 
-03b9 1fe0fe01 increase 1 ,pdata 
-03ba 67e0c625 store 1 ,mem_power_ctrl_level 
-03bb c000b70b beq 1 ,power_ctrl_incrs_level1 
-03bc c00103bf beq 2 ,p_power_ctrl_incrs_level2 
+0464 6fe0c625 fetch 1 ,mem_power_ctrl_level 
+0465 c001846a beq 3 ,p_power_ctrl_incrs_level3 
+0466 1fe0fe01 increase 1 ,pdata 
+0467 67e0c625 store 1 ,mem_power_ctrl_level 
+0468 c000b70b beq 1 ,power_ctrl_incrs_level1 
+0469 c001046c beq 2 ,p_power_ctrl_incrs_level2 
 
 p_power_ctrl_incrs_level3:
-03bd 70414105 jam tx_power_5db ,mem_tx_power 
-03be 20600000 rtn 
+046a 70414105 jam tx_power_5db ,mem_tx_power 
+046b 20600000 rtn 
 
 p_power_ctrl_decrs_level2:
 
 p_power_ctrl_incrs_level2:
-03bf 70414103 jam tx_power_3db ,mem_tx_power 
-03c0 20600000 rtn 
+046c 70414103 jam tx_power_3db ,mem_tx_power 
+046d 20600000 rtn 
 
 p_mouse_cb_fuction:
-03c1 58006235 setarg mouse_24g_short_sleep 
-03c2 67e145f8 store 2 ,mem_cb_24g_transmit_short_sleep 
-03c3 5800622b setarg mouse_24g_long_sleep 
-03c4 67e145fa store 2 ,mem_cb_24g_transmit_long_sleep 
-03c5 202053f3 branch mouse_cb_fuction + 7 
+046e 58006235 setarg mouse_24g_short_sleep 
+046f 67e145f8 store 2 ,mem_cb_24g_transmit_short_sleep 
+0470 5800622b setarg mouse_24g_long_sleep 
+0471 67e145fa store 2 ,mem_cb_24g_transmit_long_sleep 
+0472 202053f3 branch mouse_cb_fuction + 7 
 
 p_soft_reset:
-03c6 2435a002 nbranch soft_reset + 1 ,wake 
-03c7 37d98200 until null ,lpo_edge 
-03c8 37d98200 until null ,lpo_edge 
-03c9 20800000 clear_stack 
-03ca 70808073 jam 0x73 ,core_spid_ctrl 
-03cb 205583cd call p_mouse_wheel_init_set ,wake 
-03cc 20202003 branch soft_reset + 2 
+0473 2435a002 nbranch soft_reset + 1 ,wake 
+0474 37d98200 until null ,lpo_edge 
+0475 37d98200 until null ,lpo_edge 
+0476 20800000 clear_stack 
+0477 70808073 jam 0x73 ,core_spid_ctrl 
+0478 2055847a call p_mouse_wheel_init_set ,wake 
+0479 20202003 branch soft_reset + 2 
 
 p_mouse_wheel_init_set:
-03cd 20400326 call p_mouse_puchk_disable 
-03ce 204058df call mouse_matrix_public_gpio_reset 
-03cf 20206004 branch mouse_wheel_gpio_init 
+047a 204003d3 call p_mouse_puchk_disable 
+047b 204058df call mouse_matrix_public_gpio_reset 
+047c 20206004 branch mouse_wheel_gpio_init 
 
 p_mouse_default_init:
-03d0 704b2200 jam 0 ,mem_mouse_switch_flag 
-03d1 704b2555 jam release ,mem_mouse_tx_dpi_state 
-03d2 6fe342db fetch 6 ,mem_le_lap 
-03d3 67e34b28 store 6 ,mem_mouse_sn_mac 
-03d4 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-03d5 2feffe16 isolate1 mouse_enable_keyboard ,pdata 
-03d6 2040df08 call mouse_customer_key_enable ,true 
-03d7 2020542c branch mouse_default_parm_init 
+047d 704b2200 jam 0 ,mem_mouse_switch_flag 
+047e 704b2555 jam release ,mem_mouse_tx_dpi_state 
+047f 6fe342db fetch 6 ,mem_le_lap 
+0480 67e34b28 store 6 ,mem_mouse_sn_mac 
+0481 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+0482 2feffe16 isolate1 mouse_enable_keyboard ,pdata 
+0483 2040df08 call mouse_customer_key_enable ,true 
+0484 2020542c branch mouse_default_parm_init 
 
 p_mouse_load_device_info_check:
-03d8 204004e4 call p_mouse_store_normal_tx_power 
-03d9 204003e4 call p_mouse_load_eeprom_info_check 
+0485 20400591 call p_mouse_store_normal_tx_power 
+0486 20400491 call p_mouse_load_eeprom_info_check 
 
 p_mouse_app_initflag_check:
-03da 204003eb call p_mouse_load_device_flag_check 
-03db 6fe1468e fetch 2 ,mem_store_flag 
-03dc d840aa55 arg eeprom_init_flag ,temp 
-03dd 98467c00 isub temp ,null 
-03de 202283f0 branch p_mouse_load_device_info ,zero 
-03df 6049468e storet 2 ,mem_store_flag 
-03e0 20405c9c call mouse_ble_init_address 
-03e1 6fe0c9a1 fetch 1 ,mem_device_flag_temp 
-03e2 67e0c666 store 1 ,mem_device_flag 
-03e3 20205c8c branch mouse_load_default_dpi 
+0487 20400498 call p_mouse_load_device_flag_check 
+0488 6fe1468e fetch 2 ,mem_store_flag 
+0489 d840aa55 arg eeprom_init_flag ,temp 
+048a 98467c00 isub temp ,null 
+048b 2022849d branch p_mouse_load_device_info ,zero 
+048c 6049468e storet 2 ,mem_store_flag 
+048d 20405c9c call mouse_ble_init_address 
+048e 6fe0c9a1 fetch 1 ,mem_device_flag_temp 
+048f 67e0c666 store 1 ,mem_device_flag 
+0490 20205c8c branch mouse_load_default_dpi 
 
 p_mouse_load_eeprom_info_check:
-03e4 20406cbc call iicd_read_init_pin 
-03e5 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-03e6 2feffe09 isolate1 mouse_enable_2k_eeprom ,pdata 
-03e7 2440ecc4 ncall clear_eeprom_size_2k ,true 
-03e8 2040ecc1 call set_eeprom_size_2k ,true 
-03e9 20405d66 call mouse_eeprom_load_recon_info 
-03ea 20205c80 branch mouse_app_initflag_check 
+0491 20406cbc call iicd_read_init_pin 
+0492 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+0493 2feffe09 isolate1 mouse_enable_2k_eeprom ,pdata 
+0494 2440ecc4 ncall clear_eeprom_size_2k ,true 
+0495 2040ecc1 call set_eeprom_size_2k ,true 
+0496 20405d66 call mouse_eeprom_load_recon_info 
+0497 20205c80 branch mouse_app_initflag_check 
 
 p_mouse_load_device_flag_check:
-03eb 6fe0c666 fetch 1 ,mem_device_flag 
-03ec 1fe67c03 sub pdata ,3 ,null 
-03ed 20610000 rtn positive 
-03ee 70466600 jam mode_24g_device ,mem_device_flag 
-03ef 20600000 rtn 
+0498 6fe0c666 fetch 1 ,mem_device_flag 
+0499 1fe67c03 sub pdata ,3 ,null 
+049a 20610000 rtn positive 
+049b 70466600 jam mode_24g_device ,mem_device_flag 
+049c 20600000 rtn 
 
 p_mouse_load_device_info:
-03f0 204003f4 call p_mouse_select_reconn_device 
-03f1 20205c90 branch mouse_load_device_info + 1 
+049d 204004a1 call p_mouse_select_reconn_device 
+049e 20205c90 branch mouse_load_device_info + 1 
 
 p_mouse_buletooth_fast_conn_end:
-03f2 204003f4 call p_mouse_select_reconn_device 
-03f3 20205a9c branch mouse_buletooth_fast_conn_end + 2 
+049f 204004a1 call p_mouse_select_reconn_device 
+04a0 20205a9c branch mouse_buletooth_fast_conn_end + 2 
 
 p_mouse_select_reconn_device:
-03f4 6fe0c666 fetch 1 ,mem_device_flag 
-03f5 c1000000 rtneq mode_24g_device 
-03f6 c00083f9 beq mode_bt_device1 ,p_mouse_load_le_device1 
-03f7 c00103fe beq mode_bt_device2 ,p_mouse_load_le_device2 
-03f8 20600000 rtn 
+04a1 6fe0c666 fetch 1 ,mem_device_flag 
+04a2 c1000000 rtneq mode_24g_device 
+04a3 c00084a6 beq mode_bt_device1 ,p_mouse_load_le_device1 
+04a4 c00104ab beq mode_bt_device2 ,p_mouse_load_le_device2 
+04a5 20600000 rtn 
 
 p_mouse_load_le_device1:
-03f9 6fe34668 fetch 6 ,mem_device1_addr 
-03fa 67e34116 store 6 ,mem_hci_plap 
-03fb 6fe3466e fetch 6 ,mem_device1_locall_addr 
+04a6 6fe34668 fetch 6 ,mem_device1_addr 
+04a7 67e34116 store 6 ,mem_hci_plap 
+04a8 6fe3466e fetch 6 ,mem_device1_locall_addr 
 
 p_mouse_le_lap_store:
-03fc 67e342db store 6 ,mem_le_lap 
-03fd 20600000 rtn 
+04a9 67e342db store 6 ,mem_le_lap 
+04aa 20600000 rtn 
 
 p_mouse_load_le_device2:
-03fe 6fe34675 fetch 6 ,mem_device2_addr 
-03ff 67e34116 store 6 ,mem_hci_plap 
-0400 6fe3467b fetch 6 ,mem_device2_locall_addr 
-0401 202003fc branch p_mouse_le_lap_store 
+04ab 6fe34675 fetch 6 ,mem_device2_addr 
+04ac 67e34116 store 6 ,mem_hci_plap 
+04ad 6fe3467b fetch 6 ,mem_device2_locall_addr 
+04ae 202004a9 branch p_mouse_le_lap_store 
 
 p_mouse_store_remote_bdaddr:
-0402 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-0403 c4010000 rtnbit0 mouse_store_eeprom_flag 
-0404 d8e00002 arg mouse_store_eeprom_flag ,queue 
-0405 20405f04 call mouse_disable_function_flag 
-0406 20400409 call p_mouse_check_device_addr 
-0407 20400417 call p_mouse_before_store_reconn_info 
-0408 20205ca3 branch mouse_store_device_info_delay 
+04af 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+04b0 c4010000 rtnbit0 mouse_store_eeprom_flag 
+04b1 d8e00002 arg mouse_store_eeprom_flag ,queue 
+04b2 20405f04 call mouse_disable_function_flag 
+04b3 204004b6 call p_mouse_check_device_addr 
+04b4 204004c4 call p_mouse_before_store_reconn_info 
+04b5 20205ca3 branch mouse_store_device_info_delay 
 
 p_mouse_check_device_addr:
-0409 6fe08032 fetch 1 ,mem_record_bt_mode 
-040a c19a0000 rtnne rec_4_mode 
-040b 67e0c95a store 1 ,mem_device_addr_temp 
-040c 6fe30178 fetch 6 ,mem_le_plap 
-040d 67e3495b store 6 ,mem_device_addr_temp + 1 
-040e 6fe3c95a fetch 7 ,mem_device_addr_temp 
-040f d8c04667 arg mem_device1_type ,contr 
-0410 df200003 arg 3 ,loopcnt 
+04b6 6fe08032 fetch 1 ,mem_record_bt_mode 
+04b7 c19a0000 rtnne rec_4_mode 
+04b8 67e0c95a store 1 ,mem_device_addr_temp 
+04b9 6fe30178 fetch 6 ,mem_le_plap 
+04ba 67e3495b store 6 ,mem_device_addr_temp + 1 
+04bb 6fe3c95a fetch 7 ,mem_device_addr_temp 
+04bc d8c04667 arg mem_device1_type ,contr 
+04bd df200003 arg 3 ,loopcnt 
 
 p_mouse_check_device_addr_end:
-0411 e8438006 ifetcht 7 ,contr 
-0412 98467c00 isub temp ,null 
-0413 2022dc69 branch mouse_clean_addr ,zero 
-0414 18c08c07 increase 7 ,contr 
-0415 c2000411 loop p_mouse_check_device_addr_end 
-0416 20600000 rtn 
+04be e8438006 ifetcht 7 ,contr 
+04bf 98467c00 isub temp ,null 
+04c0 2022dc69 branch mouse_clean_addr ,zero 
+04c1 18c08c07 increase 7 ,contr 
+04c2 c20004be loop p_mouse_check_device_addr_end 
+04c3 20600000 rtn 
 
 p_mouse_before_store_reconn_info:
-0417 da204667 arg mem_device1_type ,rega 
-0418 6fe0c666 fetch 1 ,mem_device_flag 
-0419 1fe0ffff increase -1 ,pdata 
-041a 1feffe0d mul32 pdata ,13 ,pdata 
-041b 9a20a200 iadd rega ,rega 
-041c 6fe08032 fetch 1 ,mem_record_bt_mode 
-041d e7e08011 istore 1 ,rega 
-041e c19a0000 rtnne rec_4_mode 
-041f 6fe0c666 fetch 1 ,mem_device_flag 
-0420 c0008423 beq mode_bt_device1 ,p_mouse_store_le_device1 
-0421 c0010428 beq mode_bt_device2 ,p_mouse_store_le_device2 
-0422 20600000 rtn 
+04c4 da204667 arg mem_device1_type ,rega 
+04c5 6fe0c666 fetch 1 ,mem_device_flag 
+04c6 1fe0ffff increase -1 ,pdata 
+04c7 1feffe0d mul32 pdata ,13 ,pdata 
+04c8 9a20a200 iadd rega ,rega 
+04c9 6fe08032 fetch 1 ,mem_record_bt_mode 
+04ca e7e08011 istore 1 ,rega 
+04cb c19a0000 rtnne rec_4_mode 
+04cc 6fe0c666 fetch 1 ,mem_device_flag 
+04cd c00084d0 beq mode_bt_device1 ,p_mouse_store_le_device1 
+04ce c00104d5 beq mode_bt_device2 ,p_mouse_store_le_device2 
+04cf 20600000 rtn 
 
 p_mouse_store_le_device1:
-0423 6fe30178 fetch 6 ,mem_le_plap 
-0424 67e34668 store 6 ,mem_device1_addr 
-0425 6fe342db fetch 6 ,mem_le_lap 
-0426 67e3466e store 6 ,mem_device1_locall_addr 
-0427 20600000 rtn 
+04d0 6fe30178 fetch 6 ,mem_le_plap 
+04d1 67e34668 store 6 ,mem_device1_addr 
+04d2 6fe342db fetch 6 ,mem_le_lap 
+04d3 67e3466e store 6 ,mem_device1_locall_addr 
+04d4 20600000 rtn 
 
 p_mouse_store_le_device2:
-0428 6fe30178 fetch 6 ,mem_le_plap 
-0429 67e34675 store 6 ,mem_device2_addr 
-042a 6fe342db fetch 6 ,mem_le_lap 
-042b 67e3467b store 6 ,mem_device2_locall_addr 
-042c 20600000 rtn 
+04d5 6fe30178 fetch 6 ,mem_le_plap 
+04d6 67e34675 store 6 ,mem_device2_addr 
+04d7 6fe342db fetch 6 ,mem_le_lap 
+04d8 67e3467b store 6 ,mem_device2_locall_addr 
+04d9 20600000 rtn 
 
 p_mouse_bb_event_timer:
-042d 20400455 call p_mouse_le_send_conn_param_update_timer 
-042e 2040614d call mouse_low_voltage_led_timer 
-042f 2040553d call mouse_adc_read 
-0430 20406110 call mouse_logo_led_on_timer 
-0431 204061b1 call mouse_led_multi_timer 
-0432 2040611e call mouse_dpi_led_blink_delay_timer 
-0433 2040328e call g24_pair_timeout_timer 
-0434 20403531 call g24_reconn_timeout_timer 
-0435 20405fdd call mouse_24g_long_sleep_param_update_timer 
-0436 20400445 call p_mouse_send_device_info_timer 
-0437 20400448 call p_mouse_dpi_key_check_long_press 
-0438 20400450 call p_mouse_m_key_long_press_timer 
-0439 20405b9b call mouse_bt_discovery_check 
-043a 20405bab call mouse_commbination_key_process 
-043b 20405bce call mouse_check_discovery_timeout_timer 
-043c 20405bd3 call mouse_check_direct_timeout_timer 
-043d 20405be1 call mouse_le_enable_att_list_timer 
-043e 20405bee call mouse_le_battery_updata_timer 
-043f 20405be4 call mouse_le_send_smp_security_request_timer 
-0440 20405bfb call mouse_check_reconnect_delay_long_sleep 
-0441 20400458 call p_mouse_current_mult_update_timer 
-0442 204056b6 call mouse_wheel_trigger_timer 
-0443 20405c0e call mouse_store_information_delay_timer 
-0444 20205c05 branch mouse_check_no_data_timeout_timer 
+04da 20400502 call p_mouse_le_send_conn_param_update_timer 
+04db 2040614d call mouse_low_voltage_led_timer 
+04dc 2040553d call mouse_adc_read 
+04dd 20406110 call mouse_logo_led_on_timer 
+04de 204061b1 call mouse_led_multi_timer 
+04df 2040611e call mouse_dpi_led_blink_delay_timer 
+04e0 2040328e call g24_pair_timeout_timer 
+04e1 20403531 call g24_reconn_timeout_timer 
+04e2 20405fdd call mouse_24g_long_sleep_param_update_timer 
+04e3 204004f2 call p_mouse_send_device_info_timer 
+04e4 204004f5 call p_mouse_dpi_key_check_long_press 
+04e5 204004fd call p_mouse_m_key_long_press_timer 
+04e6 20405b9b call mouse_bt_discovery_check 
+04e7 20405bab call mouse_commbination_key_process 
+04e8 20405bce call mouse_check_discovery_timeout_timer 
+04e9 20405bd3 call mouse_check_direct_timeout_timer 
+04ea 20405be1 call mouse_le_enable_att_list_timer 
+04eb 20405bee call mouse_le_battery_updata_timer 
+04ec 20405be4 call mouse_le_send_smp_security_request_timer 
+04ed 20405bfb call mouse_check_reconnect_delay_long_sleep 
+04ee 20400505 call p_mouse_current_mult_update_timer 
+04ef 204056b6 call mouse_wheel_trigger_timer 
+04f0 20405c0e call mouse_store_information_delay_timer 
+04f1 20205c05 branch mouse_check_no_data_timeout_timer 
 
 p_mouse_send_device_info_timer:
-0445 da604b40 arg mem_mouse_delay_send_info_timer ,regc 
-0446 da400087 arg p_g24_send_device_info_enable ,regb 
-0447 202042e0 branch timer_single_step 
+04f2 da604b40 arg mem_mouse_delay_send_info_timer ,regc 
+04f3 da400087 arg p_mouse_send_device_info_enable ,regb 
+04f4 202042e0 branch timer_single_step 
 
 p_mouse_dpi_key_check_long_press:
-0448 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
-0449 c1808000 rtnne dpi_button_state_down 
-044a da60497d arg mem_select_device_count ,regc 
-044b da40044d arg p_mouse_dpi_long_press_set ,regb 
-044c 202042e0 branch timer_single_step 
+04f5 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
+04f6 c1808000 rtnne dpi_button_state_down 
+04f7 da60497d arg mem_select_device_count ,regc 
+04f8 da4004fa arg p_mouse_dpi_long_press_set ,regb 
+04f9 202042e0 branch timer_single_step 
 
 p_mouse_dpi_long_press_set:
-044d 70487b01 jam 1 ,mem_mouse_dpi_long_press_flag 
-044e 704b25ff jam long_press ,mem_mouse_tx_dpi_state 
-044f 20200090 branch p_g24_send_app_info_enable 
+04fa 70487b01 jam 1 ,mem_mouse_dpi_long_press_flag 
+04fb 704b25ff jam long_press ,mem_mouse_tx_dpi_state 
+04fc 20200090 branch p_mouse_send_app_info_enable 
 
 p_mouse_m_key_long_press_timer:
-0450 6fe0cb41 fetch 1 ,mem_mouse_m_key_press_flag 
-0451 207a0000 rtn blank 
-0452 da604b42 arg mem_mouse_m_key_press_count ,regc 
-0453 da40008a arg p_g24_send_http_info_enable ,regb 
-0454 202042e0 branch timer_single_step 
+04fd 6fe0cb41 fetch 1 ,mem_mouse_m_key_press_flag 
+04fe 207a0000 rtn blank 
+04ff da604b42 arg mem_mouse_m_key_press_count ,regc 
+0500 da40008a arg p_mouse_send_http_info_enable ,regb 
+0501 202042e0 branch timer_single_step 
 
 p_mouse_le_send_conn_param_update_timer:
-0455 da604a05 arg mem_mouse_le_send_conn_param_update_timer ,regc 
-0456 da405aef arg mouse_updata_le_param ,regb 
-0457 202042e0 branch timer_single_step 
+0502 da604a05 arg mem_mouse_le_send_conn_param_update_timer ,regc 
+0503 da405aef arg mouse_updata_le_param ,regb 
+0504 202042e0 branch timer_single_step 
 
 p_mouse_current_mult_update_timer:
-0458 da60477e arg mem_mouse_current_mult_timer ,regc 
-0459 da40045b arg p_mouse_current_mult_reinit ,regb 
-045a 202042e0 branch timer_single_step 
+0505 da60477e arg mem_mouse_current_mult_timer ,regc 
+0506 da400508 arg p_mouse_current_mult_reinit ,regb 
+0507 202042e0 branch timer_single_step 
 
 p_mouse_current_mult_reinit:
-045b 6fe0c96b fetch 1 ,mem_lpm_mult_init 
-045c 67e0c0c0 store 1 ,mem_lpm_mult 
-045d 70477d03 jam 3 ,mem_mouse_long_mult_flag 
-045e 20600000 rtn 
+0508 6fe0c96b fetch 1 ,mem_lpm_mult_init 
+0509 67e0c0c0 store 1 ,mem_lpm_mult 
+050a 70477d03 jam 3 ,mem_mouse_long_mult_flag 
+050b 20600000 rtn 
 
 p_mouse_priority_bb_event:
-045f 1a627e00 copy regc ,pdata 
-0460 c0200475 beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
-0461 c00a847a beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-0462 c019046c beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-0463 c01e0497 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-0464 c01c84a8 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
-0465 c01d04ae beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-0466 c00a0468 beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
-0467 20205ac3 branch mouse_priority_bb_event + 2 
+050c 1a627e00 copy regc ,pdata 
+050d c0200522 beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
+050e c00a8527 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
+050f c0190519 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
+0510 c01e0544 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+0511 c01c8555 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+0512 c01d055b beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+0513 c00a0515 beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
+0514 20205ac3 branch mouse_priority_bb_event + 2 
 
 p_mouse_le_bb_event_connected:
-0468 58000000 setarg 0 
-0469 67e24c1d store 4 ,mem_le_conn_first_rcv 
-046a 704b400a jam 10 ,mem_mouse_delay_send_info_timer 
-046b 20205ad0 branch mouse_le_bb_event_connected 
+0515 58000000 setarg 0 
+0516 67e24fa2 store 4 ,mem_le_conn_first_rcv 
+0517 704b400a jam 10 ,mem_mouse_delay_send_info_timer 
+0518 20205ad0 branch mouse_le_bb_event_connected 
 
 p_mouse_le_ll_start_encryt:
-046c 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
-046d c0008470 beq 1 ,p_mouse_le_ll_reconn_start_encryt 
-046e 70484414 jam 20 ,mem_le_start_encrypt_timer 
-046f 20200472 branch p_mouse_le_ll_reconn_start_encryt_new 
+0519 6fe0c795 fetch 1 ,mem_mouse_le_reconnect_flag 
+051a c000851d beq 1 ,p_mouse_le_ll_reconn_start_encryt 
+051b 70484414 jam 20 ,mem_le_start_encrypt_timer 
+051c 2020051f branch p_mouse_le_ll_reconn_start_encryt_new 
 
 p_mouse_le_ll_reconn_start_encryt:
-0470 20405aef call mouse_updata_le_param 
-0471 70484405 jam 5 ,mem_le_start_encrypt_timer 
+051d 20405aef call mouse_updata_le_param 
+051e 70484405 jam 5 ,mem_le_start_encrypt_timer 
 
 p_mouse_le_ll_reconn_start_encryt_new:
-0472 6fe0cc1c fetch 1 ,mem_le_conn_rcv_new 
-0473 67e0cc1d store 1 ,mem_le_conn_first_rcv 
-0474 20205af6 branch mouse_le_ll_enable_start_enc_flag 
+051f 6fe0cfa1 fetch 1 ,mem_le_conn_rcv_new 
+0520 67e0cfa2 store 1 ,mem_le_conn_first_rcv 
+0521 20205af6 branch mouse_le_ll_enable_start_enc_flag 
 
 p_mouse_le_conn_param_update_rsp_recieved:
-0475 6fe0ca04 fetch 1 ,mem_mouse_le_send_conn_param_update 
-0476 247a0000 nrtn blank 
-0477 704a0401 jam 1 ,mem_mouse_le_send_conn_param_update 
-0478 704a051e jam 30 ,mem_mouse_le_send_conn_param_update_timer 
-0479 20600000 rtn 
+0522 6fe0ca04 fetch 1 ,mem_mouse_le_send_conn_param_update 
+0523 247a0000 nrtn blank 
+0524 704a0401 jam 1 ,mem_mouse_le_send_conn_param_update 
+0525 704a051e jam 30 ,mem_mouse_le_send_conn_param_update_timer 
+0526 20600000 rtn 
 
 p_mouse_le_bb_disconnected:
-047a 58000000 setarg 0 
-047b 67e0ca04 store 1 ,mem_mouse_le_send_conn_param_update 
-047c 67e0ca05 store 1 ,mem_mouse_le_send_conn_param_update_timer 
-047d 58000000 setarg 0 
-047e 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
-047f 70479400 jam 0 ,mem_mouse_le_bb_connected_flag 
-0480 d8400006 arg le_interval_7_5ms ,temp 
-0481 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-0482 c28d8484 bbit1 mouse_enable_bt_125hz ,p_mouse_le_bb_disconnected_next 
-0483 d8400007 arg le_interval_8_75ms ,temp 
+0527 58000000 setarg 0 
+0528 67e0ca04 store 1 ,mem_mouse_le_send_conn_param_update 
+0529 67e0ca05 store 1 ,mem_mouse_le_send_conn_param_update_timer 
+052a 58000000 setarg 0 
+052b 67e147c0 store 2 ,mem_le_battery_level_updata_timer 
+052c 70479400 jam 0 ,mem_mouse_le_bb_connected_flag 
+052d d8400006 arg le_interval_7_5ms ,temp 
+052e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+052f c28d8531 bbit1 mouse_enable_bt_125hz ,p_mouse_le_bb_disconnected_next 
+0530 d8400007 arg le_interval_8_75ms ,temp 
 
 p_mouse_le_bb_disconnected_next:
-0484 604942d3 storet 2 ,mem_le_interval_min 
-0485 604942d5 storet 2 ,mem_le_interval_min + 2 
-0486 7047c200 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
-0487 70495600 jam 0 ,mem_mouse_clear_sensor_data_flag 
-0488 204029cb call le_clr_config_more_data 
+0531 604942d3 storet 2 ,mem_le_interval_min 
+0532 604942d5 storet 2 ,mem_le_interval_min + 2 
+0533 7047c200 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+0534 70495600 jam 0 ,mem_mouse_clear_sensor_data_flag 
+0535 204029cb call le_clr_config_more_data 
 
 p_mouse_bb_disconnected:
-0489 20405b7b call mouse_bb_discon_clear_stack 
-048a 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
-048b c283848e bbit1 app_disc_ble ,p_mouse4_0_event_bb_disconn 
-048c c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
-048d 20205c1a branch mouse_start_discovery 
+0536 20405b7b call mouse_bb_discon_clear_stack 
+0537 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0538 c283853b bbit1 app_disc_ble ,p_mouse4_0_event_bb_disconn 
+0539 c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
+053a 20205c1a branch mouse_start_discovery 
 
 p_mouse4_0_event_bb_disconn:
-048e 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
-048f c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
-0490 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
-0491 1fe17e03 and pdata ,0x03 ,pdata 
-0492 20405b21 call mouse_le_clean_connect_flag 
-0493 c081d4a9 bne 0x03 ,mouse_start_reconnect 
-0494 6fe0cc20 fetch 1 ,mem_le_check_retransmit_discon_flag 
-0495 243a54a9 nbranch mouse_start_reconnect ,blank 
-0496 202054cd branch mouse_app_enter_hibernate 
+053b 6fe143ef fetch app_disc_rsn_size ,mem_app_disconn_reason 
+053c c28042fc bbit1 app_disc_by_button ,app_disconn_reason_clear 
+053d 6fe0c843 fetch 1 ,mem_le_connect_status_flag 
+053e 1fe17e03 and pdata ,0x03 ,pdata 
+053f 20405b21 call mouse_le_clean_connect_flag 
+0540 c081d4a9 bne 0x03 ,mouse_start_reconnect 
+0541 6fe0cfa5 fetch 1 ,mem_le_check_retransmit_discon_flag 
+0542 243a54a9 nbranch mouse_start_reconnect ,blank 
+0543 202054cd branch mouse_app_enter_hibernate 
 
 p_mouse_24g_attempt_success:
-0497 6fe2458f fetch 4 ,mem_24g_addr 
-0498 67e245e8 store 4 ,mem_24g_receiver_addr 
-0499 67e24691 store 4 ,mem_mouse_24g_addr 
-049a 2040355a call g24_ch_syncword_crc8_init 
-049b 20405c0b call mouse_no_data_timer_init 
-049c 2040618e call mouse_device_poweron_led_config 
-049d 20405a73 call mouse_init_sensor_reset 
-049e 70477d00 jam 0 ,mem_mouse_long_mult_flag 
-049f 7045fc00 jam 0 ,mem_24g_conn_sm 
-04a0 7045e200 jam 0 ,mem_24g_reconn_type 
-04a1 704b400a jam 10 ,mem_mouse_delay_send_info_timer 
-04a2 6fe245e8 fetch 4 ,mem_24g_receiver_addr 
-04a3 684a45e4 fetcht 4 ,mem_24g_fast_conn_addr 
-04a4 98467c00 isub temp ,null 
-04a5 20628000 rtn zero 
-04a6 204004ab call p_mouse_fetch_normal_tx_power 
-04a7 20206042 branch mouse_24g_first_store_reconn_info 
+0544 6fe2458f fetch 4 ,mem_24g_addr 
+0545 67e245e8 store 4 ,mem_24g_receiver_addr 
+0546 67e24691 store 4 ,mem_mouse_24g_addr 
+0547 2040355a call g24_ch_syncword_crc8_init 
+0548 20405c0b call mouse_no_data_timer_init 
+0549 2040618e call mouse_device_poweron_led_config 
+054a 20405a73 call mouse_init_sensor_reset 
+054b 70477d00 jam 0 ,mem_mouse_long_mult_flag 
+054c 7045fc00 jam 0 ,mem_24g_conn_sm 
+054d 7045e200 jam 0 ,mem_24g_reconn_type 
+054e 704b400a jam 10 ,mem_mouse_delay_send_info_timer 
+054f 6fe245e8 fetch 4 ,mem_24g_receiver_addr 
+0550 684a45e4 fetcht 4 ,mem_24g_fast_conn_addr 
+0551 98467c00 isub temp ,null 
+0552 20628000 rtn zero 
+0553 20400558 call p_mouse_fetch_normal_tx_power 
+0554 20206042 branch mouse_24g_first_store_reconn_info 
 
 p_mouse_24g_pairing_complete:
-04a8 204004ab call p_mouse_fetch_normal_tx_power 
-04a9 704b400a jam 10 ,mem_mouse_delay_send_info_timer 
-04aa 20206084 branch mouse_24g_pairing_complete 
+0555 20400558 call p_mouse_fetch_normal_tx_power 
+0556 704b400a jam 10 ,mem_mouse_delay_send_info_timer 
+0557 20206084 branch mouse_24g_pairing_complete 
 
 p_mouse_fetch_normal_tx_power:
-04ab 6fe0ca07 fetch 1 ,mem_normal_tx_power 
-04ac 67e0c141 store 1 ,mem_tx_power 
-04ad 20206016 branch mouse_soft_agc_disable 
+0558 6fe0ca07 fetch 1 ,mem_normal_tx_power 
+0559 67e0c141 store 1 ,mem_tx_power 
+055a 20206016 branch mouse_soft_agc_disable 
 
 p_mouse_24g_attempt_fail:
-04ae 204004ab call p_mouse_fetch_normal_tx_power 
-04af 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
-04b0 c1008000 rtneq dpi_button_state_down 
-04b1 6fe0c600 fetch 1 ,mem_24g_attempt_fail_flag 
-04b2 243a5ff2 nbranch mouse_24g_hibernate_set ,blank 
-04b3 6fe0c5e2 fetch 1 ,mem_24g_reconn_type 
-04b4 c00284c0 beq pair_and_receiver ,p_mouse_24g_auto_pair_attempt_fail 
-04b5 c00084b8 beq fast_conn_and_receiver ,p_mouse_24g_fast_conn_attempt_fail 
-04b6 c00184c7 beq receiver_and_3_0_addr ,p_mouse_reconn_dongle_attempt_fail 
-04b7 20206055 branch mouse_24g_attempt_fail + 2 
+055b 20400558 call p_mouse_fetch_normal_tx_power 
+055c 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
+055d c1008000 rtneq dpi_button_state_down 
+055e 6fe0c600 fetch 1 ,mem_24g_attempt_fail_flag 
+055f 243a5ff2 nbranch mouse_24g_hibernate_set ,blank 
+0560 6fe0c5e2 fetch 1 ,mem_24g_reconn_type 
+0561 c002856d beq pair_and_receiver ,p_mouse_24g_auto_pair_attempt_fail 
+0562 c0008565 beq fast_conn_and_receiver ,p_mouse_24g_fast_conn_attempt_fail 
+0563 c0018574 beq receiver_and_3_0_addr ,p_mouse_reconn_dongle_attempt_fail 
+0564 20206055 branch mouse_24g_attempt_fail + 2 
 
 p_mouse_24g_fast_conn_attempt_fail:
-04b8 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-04b9 c29f04bc bbit1 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_start_auto_pair 
-04ba c29804bc bbit1 mouse_enable_auto_24g_paring ,p_mouse_24g_start_auto_pair 
-04bb 20206062 branch mouse_24g_fast_conn_attempt_fail + 3 
+0565 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+0566 c29f0569 bbit1 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_start_auto_pair 
+0567 c2980569 bbit1 mouse_enable_auto_24g_paring ,p_mouse_24g_start_auto_pair 
+0568 20206062 branch mouse_24g_fast_conn_attempt_fail + 3 
 
 p_mouse_24g_start_auto_pair:
-04bc 6fe145d6 fetch 2 ,mem_24g_pair_timeout_init 
-04bd 67e145de store 2 ,mem_24g_reconn_timeout 
-04be 7045e205 jam pair_and_receiver ,mem_24g_reconn_type 
-04bf 20203534 branch g24_reconn_start 
+0569 6fe145d6 fetch 2 ,mem_24g_pair_timeout_init 
+056a 67e145de store 2 ,mem_24g_reconn_timeout 
+056b 7045e205 jam pair_and_receiver ,mem_24g_reconn_type 
+056c 20203534 branch g24_reconn_start 
 
 p_mouse_24g_auto_pair_attempt_fail:
-04c0 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-04c1 c31f6059 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
-04c2 6fe0c71b fetch 1 ,mem_device_number 
-04c3 c000e059 beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
+056d 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+056e c31f6059 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+056f 6fe0c71b fetch 1 ,mem_device_number 
+0570 c000e059 beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
 
 p_mouse_24g_first_bluetooth_reconnect:
-04c4 20406018 call mouse_24g_stop 
-04c5 70466601 jam mode_bt_device1 ,mem_device_flag 
-04c6 20205491 branch mouse_le_fast_conn_judge 
+0571 20406018 call mouse_24g_stop 
+0572 70466601 jam mode_bt_device1 ,mem_device_flag 
+0573 20205491 branch mouse_le_fast_conn_judge 
 
 p_mouse_reconn_dongle_attempt_fail:
-04c7 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-04c8 c31f6059 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
-04c9 c289e059 bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
-04ca c2896059 bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
-04cb 202004bc branch p_mouse_24g_start_auto_pair 
+0574 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+0575 c31f6059 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+0576 c289e059 bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
+0577 c2896059 bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
+0578 20200569 branch p_mouse_24g_start_auto_pair 
 
 p_mouse_start_work:
-04cc 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-04cd c29f04d1 bbit1 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_first_start_auto_pair_mode 
-04ce 6fe0c666 fetch 1 ,mem_device_flag 
-04cf c00004dc beq mode_24g_device ,p_mouse_24g_start_mode 
-04d0 20205491 branch mouse_le_fast_conn_judge 
+0579 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+057a c29f057e bbit1 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_first_start_auto_pair_mode 
+057b 6fe0c666 fetch 1 ,mem_device_flag 
+057c c0000589 beq mode_24g_device ,p_mouse_24g_start_mode 
+057d 20205491 branch mouse_le_fast_conn_judge 
 
 p_mouse_24g_first_start_auto_pair_mode:
-04d1 204054ac call mouse_wakeup_from_power_check 
-04d2 203404d8 branch p_mouse_24g_first_start_reconn ,user 
+057e 204054ac call mouse_wakeup_from_power_check 
+057f 20340585 branch p_mouse_24g_first_start_reconn ,user 
 
 p_mouse_24g_reconn_general_dongle:
-04d3 70466600 jam mode_24g_device ,mem_device_flag 
-04d4 6fe14721 fetch 2 ,mem_mouse_24g_power_on_fast_conn_timer 
-04d5 67e145de store 2 ,mem_24g_reconn_timeout 
-04d6 7045e201 jam fast_conn_and_receiver ,mem_24g_reconn_type 
-04d7 20203534 branch g24_reconn_start 
+0580 70466600 jam mode_24g_device ,mem_device_flag 
+0581 6fe14721 fetch 2 ,mem_mouse_24g_power_on_fast_conn_timer 
+0582 67e145de store 2 ,mem_24g_reconn_timeout 
+0583 7045e201 jam fast_conn_and_receiver ,mem_24g_reconn_type 
+0584 20203534 branch g24_reconn_start 
 
 p_mouse_24g_first_start_reconn:
-04d8 6fe0c666 fetch 1 ,mem_device_flag 
-04d9 c0006067 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
-04da 20405aa8 call mouse_bluetooth_fast_conn_disable 
-04db 202004c4 branch p_mouse_24g_first_bluetooth_reconnect 
+0585 6fe0c666 fetch 1 ,mem_device_flag 
+0586 c0006067 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
+0587 20405aa8 call mouse_bluetooth_fast_conn_disable 
+0588 20200571 branch p_mouse_24g_first_bluetooth_reconnect 
 
 p_mouse_24g_start_mode:
-04dc 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-04dd c308e02a bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
-04de 20406195 call mouse_device_24g_pair_led_config 
-04df 204054ac call mouse_wakeup_from_power_check 
-04e0 20346067 branch mouse_24g_reconn_dongle_start ,user 
-04e1 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-04e2 c29804d3 bbit1 mouse_enable_auto_24g_paring ,p_mouse_24g_reconn_general_dongle 
-04e3 20206023 branch mouse_24g_start_mode + 7 
+0589 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+058a c308e02a bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+058b 20406195 call mouse_device_24g_pair_led_config 
+058c 204054ac call mouse_wakeup_from_power_check 
+058d 20346067 branch mouse_24g_reconn_dongle_start ,user 
+058e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+058f c2980580 bbit1 mouse_enable_auto_24g_paring ,p_mouse_24g_reconn_general_dongle 
+0590 20206023 branch mouse_24g_start_mode + 7 
 
 p_mouse_store_normal_tx_power:
-04e4 6fe0c141 fetch 1 ,mem_tx_power 
-04e5 67e0ca07 store 1 ,mem_normal_tx_power 
-04e6 20600000 rtn 
+0591 6fe0c141 fetch 1 ,mem_tx_power 
+0592 67e0ca07 store 1 ,mem_normal_tx_power 
+0593 20600000 rtn 
 
 p_mouse_idle:
-04e7 2040620e call mouse_low_voltage_led_no_enter_lpm 
-04e8 204078aa call ui_check_paring_button 
-04e9 204004ee call p_mouse_dpi_check 
-04ea 704b2201 jam 1 ,mem_mouse_switch_flag 
-04eb 20205e61 branch mouse_idle + 4 
+0594 2040031e call p_mouse_send_http_data_timer 
+0595 2040620e call mouse_low_voltage_led_no_enter_lpm 
+0596 204078aa call ui_check_paring_button 
+0597 2040059c call p_mouse_dpi_check 
+0598 704b2201 jam 1 ,mem_mouse_switch_flag 
+0599 20205e61 branch mouse_idle + 4 
 
 p_mouse_dpi_check_retransmit:
-04ec 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-04ed c4140000 rtnbit0 mouse_enable_select_device_by_dpi_button 
+059a 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+059b c4140000 rtnbit0 mouse_enable_select_device_by_dpi_button 
 
 p_mouse_dpi_check:
-04ee 6fe0c649 fetch 1 ,mem_dpi_button_gpio 
-04ef c17f8000 rtneq gpio_disable 
-04f0 da200000 arg 0 ,rega 
-04f1 70497705 jam mouse_dpi_key ,mem_mouse_key_temp 
-04f2 6848c649 fetcht 1 ,mem_dpi_button_gpio 
-04f3 2040050c call p_mouse_dpi_key_check 
-04f4 67e0c974 store 1 ,mem_mouse_dpikey_press_status 
-04f5 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
-04f6 c07f8509 beq gpio_disable ,p_mouse_3io6key_dpi_check_end 
-04f7 204058df call mouse_matrix_public_gpio_reset 
+059c 6fe0c649 fetch 1 ,mem_dpi_button_gpio 
+059d c17f8000 rtneq gpio_disable 
+059e da200000 arg 0 ,rega 
+059f 70497705 jam mouse_dpi_key ,mem_mouse_key_temp 
+05a0 6848c649 fetcht 1 ,mem_dpi_button_gpio 
+05a1 204005ba call p_mouse_dpi_key_check 
+05a2 67e0c974 store 1 ,mem_mouse_dpikey_press_status 
+05a3 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+05a4 c07f85b7 beq gpio_disable ,p_mouse_3io6key_dpi_check_end 
+05a5 204058df call mouse_matrix_public_gpio_reset 
 
 p_mouse_dpi_check_exit:
-04f8 1a227e00 copy rega ,pdata 
-04f9 c282d6e0 bbit1 mouse_dpi_key ,mouse_dpi_down 
+05a6 1a227e00 copy rega ,pdata 
+05a7 c282d6e0 bbit1 mouse_dpi_key ,mouse_dpi_down 
 
 p_mouse_dpi_up:
-04fa 204004ff call p_mouse_dpi_state_check 
-04fb 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
-04fc c1000000 rtneq dpi_button_state_up 
-04fd 70487a00 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
-04fe 202056ea branch mouse_dpi_up + 3 
+05a8 204005ad call p_mouse_dpi_state_check 
+05a9 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
+05aa c1000000 rtneq dpi_button_state_up 
+05ab 70487a00 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+05ac 202056ea branch mouse_dpi_up + 3 
 
 p_mouse_dpi_state_check:
-04ff 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
-0500 c1800000 rtnne dpi_button_state_up 
-0501 6fe0cb25 fetch 1 ,mem_mouse_tx_dpi_state 
-0502 c07f8507 beq long_press ,p_g24_send_dpi_long_release_info 
-0503 c0550505 beq press ,p_g24_send_dpi_release_info 
-0504 20600000 rtn 
+05ad 6fe0c87a fetch 1 ,mem_mouse_dpi_button_state 
+05ae c1800000 rtnne dpi_button_state_up 
+05af 6fe0cb25 fetch 1 ,mem_mouse_tx_dpi_state 
+05b0 c07f85b5 beq long_press ,p_g24_send_dpi_long_release_info 
+05b1 c05505b3 beq press ,p_g24_send_dpi_release_info 
+05b2 20600000 rtn 
 
 p_g24_send_dpi_release_info:
-0505 704b2555 jam release ,mem_mouse_tx_dpi_state 
-0506 2020008d branch p_g24_send_dpi_info_enable 
+05b3 704b2555 jam release ,mem_mouse_tx_dpi_state 
+05b4 2020008d branch p_mouse_send_dpi_info_enable 
 
 p_g24_send_dpi_long_release_info:
-0507 704b25ee jam long_release ,mem_mouse_tx_dpi_state 
-0508 20200090 branch p_g24_send_app_info_enable 
+05b5 704b25ee jam long_release ,mem_mouse_tx_dpi_state 
+05b6 20200090 branch p_mouse_send_app_info_enable 
 
 p_mouse_3io6key_dpi_check_end:
-0509 6848c649 fetcht 1 ,mem_dpi_button_gpio 
-050a 204055b5 call mouse_gpio_config_input_pu 
-050b 202004f8 branch p_mouse_dpi_check_exit 
+05b7 6848c649 fetcht 1 ,mem_dpi_button_gpio 
+05b8 204055b5 call mouse_gpio_config_input_pu 
+05b9 202005a6 branch p_mouse_dpi_check_exit 
 
 p_mouse_dpi_key_check:
-050c 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-050d c295d6de bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
-050e 6fe0c974 fetch 1 ,mem_mouse_dpikey_press_status 
-050f 1fe22600 copy pdata ,regc 
-0510 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
-0511 c07f8513 beq gpio_disable ,p_mouse_3io6key_dpi_check 
-0512 202056ce branch mouse_dpi_key_check_next 
+05ba 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+05bb c295d6de bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+05bc 6fe0c974 fetch 1 ,mem_mouse_dpikey_press_status 
+05bd 1fe22600 copy pdata ,regc 
+05be 6fe0c654 fetch 1 ,mem_matrix_public_gpio 
+05bf c07f85c1 beq gpio_disable ,p_mouse_3io6key_dpi_check 
+05c0 202056ce branch mouse_dpi_key_check_next 
 
 p_mouse_3io6key_dpi_check:
-0513 6fe0c649 fetch 1 ,mem_dpi_button_gpio 
-0514 20405946 call mouse_gpio_config_output_low 
-0515 6848c649 fetcht 1 ,mem_dpi_button_gpio 
-0516 20200517 branch p_mouse_3io6key_check 
+05c1 6fe0c649 fetch 1 ,mem_dpi_button_gpio 
+05c2 20405946 call mouse_gpio_config_output_low 
+05c3 6848c649 fetcht 1 ,mem_dpi_button_gpio 
+05c4 202005c5 branch p_mouse_3io6key_check 
 
 p_mouse_3io6key_check:
-0517 1a627e00 copy regc ,pdata 
-0518 67e0c978 store 1 ,mem_mouse_key_status 
-0519 1fe3fe00 lshift pdata ,pdata 
-051a 1fe22400 copy pdata ,regb 
-051b 18422600 copy temp ,regc 
-051c 20406ef7 call gpio_out_active 
-051d 1a620400 copy regc ,temp 
-051e 204055b1 call mouse_gpio_config_input_pd 
-051f 1a620400 copy regc ,temp 
-0520 20406ee6 call gpio_get_bit 
-0521 7d20a400 nsetflag true ,0 ,regb 
-0522 2040593d call mouse_check_press 
-0523 20205929 branch mouse_check_key_connect_gnd_1 
+05c5 1a627e00 copy regc ,pdata 
+05c6 67e0c978 store 1 ,mem_mouse_key_status 
+05c7 1fe3fe00 lshift pdata ,pdata 
+05c8 1fe22400 copy pdata ,regb 
+05c9 18422600 copy temp ,regc 
+05ca 20406ef7 call gpio_out_active 
+05cb 1a620400 copy regc ,temp 
+05cc 204055b1 call mouse_gpio_config_input_pd 
+05cd 1a620400 copy regc ,temp 
+05ce 20406ee6 call gpio_get_bit 
+05cf 7d20a400 nsetflag true ,0 ,regb 
+05d0 2040593d call mouse_check_press 
+05d1 20205929 branch mouse_check_key_connect_gnd_1 
 
 p_g24_short_sleep:
-0524 204036b4 call g24_lpm_wait 
-0525 24740000 nrtn user 
-0526 204036be call g24_setgpio_lpm_before 
-0527 20400529 call p_clear_wake 
-0528 2020361b branch g24_short_sleep_next 
+05d2 204036b4 call g24_lpm_wait 
+05d3 24740000 nrtn user 
+05d4 204036be call g24_setgpio_lpm_before 
+05d5 204005d7 call p_clear_wake 
+05d6 2020361b branch g24_short_sleep_next 
 
 p_clear_wake:
-0529 58000000 setarg 0 
-052a 67e40016 store 8 ,mem_gpio_wakeup_cfg 
-052b 67e2001e store 4 ,mem_gpio_wakeup_cfg + 8 
-052c 20600000 rtn 
+05d7 58000000 setarg 0 
+05d8 67e40016 store 8 ,mem_gpio_wakeup_cfg 
+05d9 67e2001e store 4 ,mem_gpio_wakeup_cfg + 8 
+05da 20600000 rtn 
 
 p_mouse_24g_hibernate_set:
-052d 70460000 jam 0 ,mem_24g_attempt_fail_flag 
-052e 6fe0c6f8 fetch 1 ,mem_mouse_search_dongle_action 
-052f 793ffe00 set0 g24_disconn_state ,pdata 
-0530 67e0c6f8 store 1 ,mem_mouse_search_dongle_action 
-0531 20403647 call g24_transmit_next_packet 
-0532 5fffffff setarg -1 
-0533 67e245af store 4 ,mem_24g_enter_hibernate 
-0534 58000000 setarg 0 
-0535 67e3c846 store 7 ,mem_mouse_key 
-0536 67e0c602 store 1 ,mem_24g_abort_pac 
-0537 70473f01 jam 1 ,mem_sensor_shutdown_flag 
-0538 204059ed call mouse_sensor_powerdown 
-0539 2020622b branch mouse_24g_long_sleep 
+05db 70460000 jam 0 ,mem_24g_attempt_fail_flag 
+05dc 6fe0c6f8 fetch 1 ,mem_mouse_search_dongle_action 
+05dd 793ffe00 set0 g24_disconn_state ,pdata 
+05de 67e0c6f8 store 1 ,mem_mouse_search_dongle_action 
+05df 20403647 call g24_transmit_next_packet 
+05e0 5fffffff setarg -1 
+05e1 67e245af store 4 ,mem_24g_enter_hibernate 
+05e2 58000000 setarg 0 
+05e3 67e3c846 store 7 ,mem_mouse_key 
+05e4 67e0c602 store 1 ,mem_24g_abort_pac 
+05e5 70473f01 jam 1 ,mem_sensor_shutdown_flag 
+05e6 204059ed call mouse_sensor_powerdown 
+05e7 2020622b branch mouse_24g_long_sleep 
 
 p_mouse_setgpio_hibernate:
-053a 20405a92 call mouse_set_sdio_high 
-053b 20400529 call p_clear_wake 
-053c 204056a9 call mouse_before_hibernate_wheel_gpio_set 
-053d 6fe0c64d fetch 1 ,mem_mouse_sensor_sdio_gpio 
-053e 20405943 call mouse_gpio_config_output_high 
-053f 6848c65a fetcht 1 ,mem_device_switch_gpio 
-0540 204055ab call mouse_gpio_set_pupd_by_input 
-0541 2040611a call mouse_logo_led_off 
-0542 20400329 call p_mouse_lpm_before_common 
-0543 202054e2 branch mouse_setgpio_hibernate_next 
+05e8 20405a92 call mouse_set_sdio_high 
+05e9 204005d7 call p_clear_wake 
+05ea 204056a9 call mouse_before_hibernate_wheel_gpio_set 
+05eb 6fe0c64d fetch 1 ,mem_mouse_sensor_sdio_gpio 
+05ec 20405943 call mouse_gpio_config_output_high 
+05ed 6848c65a fetcht 1 ,mem_device_switch_gpio 
+05ee 204055ab call mouse_gpio_set_pupd_by_input 
+05ef 2040611a call mouse_logo_led_off 
+05f0 204003d6 call p_mouse_lpm_before_common 
+05f1 202054e2 branch mouse_setgpio_hibernate_next 
 
 p_mouse_tx_device_info_check:
-0544 6fe0cb24 fetch 1 ,mem_device_tx_device_info_flag 
-0545 207a0000 rtn blank 
-0546 20207dba branch enable_user 
+05f2 6fe0cb24 fetch 1 ,mem_device_tx_device_info_flag 
+05f3 207a0000 rtn blank 
+05f4 20207dba branch enable_user 
 
 p_mouse_24g_package_data:
-0547 c6930000 rtnmark0 mark_24g 
-0548 20405601 call mouse_motion 
-0549 20400544 call p_mouse_tx_device_info_check 
-054a 24740000 nrtn user 
-054b 6fe0c77c fetch 1 ,mem_mouse_24g_long_sleep_flag 
-054c 70477c00 jam 0 ,mem_mouse_24g_long_sleep_flag 
-054d 245a055d ncall p_mouse_24g_short_sleep_clear_wake ,blank 
-054e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-054f c30b0552 bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
-0550 6fe0c96c fetch 1 ,mem_customer_key 
-0551 243a60b6 nbranch mouse_24g_keyboard_package_data ,blank 
+05f5 c6930000 rtnmark0 mark_24g 
+05f6 20405601 call mouse_motion 
+05f7 204005f2 call p_mouse_tx_device_info_check 
+05f8 24740000 nrtn user 
+05f9 6fe0c77c fetch 1 ,mem_mouse_24g_long_sleep_flag 
+05fa 70477c00 jam 0 ,mem_mouse_24g_long_sleep_flag 
+05fb 245a060b ncall p_mouse_24g_short_sleep_clear_wake ,blank 
+05fc 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+05fd c30b0600 bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
+05fe 6fe0c96c fetch 1 ,mem_customer_key 
+05ff 243a60b6 nbranch mouse_24g_keyboard_package_data ,blank 
 
 p_mouse_24g_mouse_package_data:
-0552 20400554 call p_mouse_data_xy_release 
-0553 202060a2 branch mouse_24g_mouse_package_data + 1 
+0600 20400602 call p_mouse_data_xy_release 
+0601 202060a2 branch mouse_24g_mouse_package_data + 1 
 
 p_mouse_data_xy_release:
-0554 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
-0555 c1ff8000 rtnne gpio_disable 
-0556 6fe0c77d fetch 1 ,mem_mouse_long_mult_flag 
-0557 207a0000 rtn blank 
-0558 1fe0ffff increase -1 ,pdata 
-0559 67e0c77d store 1 ,mem_mouse_long_mult_flag 
-055a 58000000 setarg 0 
-055b 67e24847 store 4 ,mem_mouse_x 
-055c 20205a73 branch mouse_init_sensor_reset 
+0602 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
+0603 c1ff8000 rtnne gpio_disable 
+0604 6fe0c77d fetch 1 ,mem_mouse_long_mult_flag 
+0605 207a0000 rtn blank 
+0606 1fe0ffff increase -1 ,pdata 
+0607 67e0c77d store 1 ,mem_mouse_long_mult_flag 
+0608 58000000 setarg 0 
+0609 67e24847 store 4 ,mem_mouse_x 
+060a 20205a73 branch mouse_init_sensor_reset 
 
 p_mouse_24g_short_sleep_clear_wake:
-055d 20400087 call p_g24_send_device_info_enable 
-055e 20400529 call p_clear_wake 
-055f 2020034f branch p_lpm_write_gpio_wakeup 
+060b 20400087 call p_mouse_send_device_info_enable 
+060c 204005d7 call p_clear_wake 
+060d 202003fc branch p_lpm_write_gpio_wakeup 
 
 p_mouse_check_select_device_by_switch:
-0560 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
-0561 c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
-0562 c31f856d bbit0 mouse_enable_switch_gpio_connect_vin ,p_mouse_switch_gpio_connect_gnd 
+060e 6fe44713 fetch mouse_flag_len ,mem_mouse_flag 
+060f c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+0610 c31f861b bbit0 mouse_enable_switch_gpio_connect_vin ,p_mouse_switch_gpio_connect_gnd 
 
 p_mouse_switch_gpio_connect_vin_check:
-0563 2040056f call p_mouse_switch_gpio_pd_set 
-0564 20400569 call p_mouse_switch_gpio_connect_vin 
+0611 2040061d call p_mouse_switch_gpio_pd_set 
+0612 20400617 call p_mouse_switch_gpio_connect_vin 
 
 p_mouse_switch_gpio_pu_set:
-0565 6848c65a fetcht 1 ,mem_device_switch_gpio 
-0566 20406ef3 call gpio_out_inactive 
-0567 6848c65a fetcht 1 ,mem_device_switch_gpio 
-0568 202055b5 branch mouse_gpio_config_input_pu 
+0613 6848c65a fetcht 1 ,mem_device_switch_gpio 
+0614 20406ef3 call gpio_out_inactive 
+0615 6848c65a fetcht 1 ,mem_device_switch_gpio 
+0616 202055b5 branch mouse_gpio_config_input_pu 
 
 p_mouse_switch_gpio_connect_vin:
-0569 6848c65a fetcht 1 ,mem_device_switch_gpio 
-056a 20406ee6 call gpio_get_bit 
-056b 2420dec2 nbranch mouse_check_select_24g_device ,true 
-056c 20205ebe branch mouse_select_btdevice 
+0617 6848c65a fetcht 1 ,mem_device_switch_gpio 
+0618 20406ee6 call gpio_get_bit 
+0619 2420dec2 nbranch mouse_check_select_24g_device ,true 
+061a 20205ebe branch mouse_select_btdevice 
 
 p_mouse_switch_gpio_connect_gnd:
-056d 20400565 call p_mouse_switch_gpio_pu_set 
-056e 20405ebb call mouse_switch_gpio_connect_gnd 
+061b 20400613 call p_mouse_switch_gpio_pu_set 
+061c 20405ebb call mouse_switch_gpio_connect_gnd 
 
 p_mouse_switch_gpio_pd_set:
-056f 6848c65a fetcht 1 ,mem_device_switch_gpio 
-0570 20406ef7 call gpio_out_active 
-0571 6848c65a fetcht 1 ,mem_device_switch_gpio 
-0572 202055b1 branch mouse_gpio_config_input_pd 
+061d 6848c65a fetcht 1 ,mem_device_switch_gpio 
+061e 20406ef7 call gpio_out_active 
+061f 6848c65a fetcht 1 ,mem_device_switch_gpio 
+0620 202055b1 branch mouse_gpio_config_input_pd 
 
 p_mouse_le_name_modify:
-0573 6fe0c98c fetch 1 ,mem_le_name_patch_len 
-0574 207a0000 rtn blank 
-0575 1fe22200 copy pdata ,rega 
-0576 1fe67c0b sub pdata ,11 ,null 
-0577 242155dd nbranch mouse_le_name_patch_len_overflow ,positive 
-0578 204055d6 call mouse_le_name_clear 
-0579 204055ee call mouse_le_name_patch_len_next 
-057a 1a220400 copy rega ,temp 
-057b 18408401 increase 1 ,temp 
-057c 6048c7a7 storet 1 ,mem_le_adv_swift_pair + 7 
-057d d8a047a9 arg mem_le_adv_swift_pair + 9 ,contw 
-057e 204055d3 call mouse_le_name_modify_next 
-057f 6048c369 storet 1 ,mem_le_scan_data 
-0580 d8a0436b arg mem_le_scan_data + 2 ,contw 
-0581 202055d3 branch mouse_le_name_modify_next 
+0621 6fe0c98c fetch 1 ,mem_le_name_patch_len 
+0622 207a0000 rtn blank 
+0623 1fe22200 copy pdata ,rega 
+0624 1fe67c0b sub pdata ,11 ,null 
+0625 242155dd nbranch mouse_le_name_patch_len_overflow ,positive 
+0626 204055d6 call mouse_le_name_clear 
+0627 204055ee call mouse_le_name_patch_len_next 
+0628 1a220400 copy rega ,temp 
+0629 18408401 increase 1 ,temp 
+062a 6048c7a7 storet 1 ,mem_le_adv_swift_pair + 7 
+062b d8a047a9 arg mem_le_adv_swift_pair + 9 ,contw 
+062c 204055d3 call mouse_le_name_modify_next 
+062d 6048c369 storet 1 ,mem_le_scan_data 
+062e d8a0436b arg mem_le_scan_data + 2 ,contw 
+062f 202055d3 branch mouse_le_name_modify_next 
 
 p_mouse_init_sensor:
-0582 20405958 call mouse_read_sensor_id 
-0583 c018058f beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
-0584 c018d9c6 beq p3065_id1 ,mouse_init_p3065 
-0585 c02c0587 beq pka8g2_id1 ,p_mouse_ka8g2_id2_judge 
-0586 20205952 branch mouse_init_sensor + 5 
+0630 20405958 call mouse_read_sensor_id 
+0631 c018063d beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
+0632 c018d9c6 beq p3065_id1 ,mouse_init_p3065 
+0633 c02c0635 beq pka8g2_id1 ,p_mouse_ka8g2_id2_judge 
+0634 20205952 branch mouse_init_sensor + 5 
 
 p_mouse_ka8g2_id2_judge:
-0587 204059e7 call mouse_sensor_poweron 
-0588 6fe0c85a fetch 1 ,mem_sensor_id2 
-0589 c02b8593 beq ka5857_id2 ,p_mouse_ka5857_init_param 
-058a c02c858c beq pka8g2_id2 ,p_mouse_ka8g2_init_param 
-058b 2020595f branch mouse_init_p32xx_id2_judge 
+0635 204059e7 call mouse_sensor_poweron 
+0636 6fe0c85a fetch 1 ,mem_sensor_id2 
+0637 c02b8641 beq ka5857_id2 ,p_mouse_ka5857_init_param 
+0638 c02c863a beq pka8g2_id2 ,p_mouse_ka8g2_init_param 
+0639 2020595f branch mouse_init_p32xx_id2_judge 
 
 p_mouse_ka8g2_init_param:
-058c 7049570b jam ka8g2 ,mem_config_sensor_type 
-058d da604a0b arg mem_sensor_ka8g2_init_new ,regc 
-058e 20205995 branch mouse_sensor_wr_seq 
+063a 7049570b jam ka8g2 ,mem_config_sensor_type 
+063b da604a0b arg mem_sensor_ka8g2_init_new ,regc 
+063c 20205995 branch mouse_sensor_wr_seq 
 
 p_mouse_init_p32xx_id2_judge:
-058f 6fe0c85a fetch 1 ,mem_sensor_id2 
-0590 1fe17ef0 and_into 0xf0 ,pdata 
-0591 c0600596 beq p3204_tjdm_id2 ,p_mouse_p3204_tjdm_init_param 
-0592 2020595f branch mouse_init_p32xx_id2_judge 
+063d 6fe0c85a fetch 1 ,mem_sensor_id2 
+063e 1fe17ef0 and_into 0xf0 ,pdata 
+063f c0600644 beq p3204_tjdm_id2 ,p_mouse_p3204_tjdm_init_param 
+0640 2020595f branch mouse_init_p32xx_id2_judge 
 
 p_mouse_ka5857_init_param:
-0593 7049570d jam ka5857 ,mem_config_sensor_type 
-0594 da604c21 arg mem_sensor_ka5857_init ,regc 
-0595 20205995 branch mouse_sensor_wr_seq 
+0641 7049570d jam ka5857 ,mem_config_sensor_type 
+0642 da604fa6 arg mem_sensor_ka5857_init ,regc 
+0643 20205995 branch mouse_sensor_wr_seq 
 
 p_mouse_p3204_tjdm_init_param:
-0596 58000049 setarg 0x49 
-0597 204069e5 call twspi_read 
-0598 c050d96c beq 0xa1 ,mouse_s201x_init_param 
-0599 202059cd branch mouse_p3065xy_init_param 
+0644 58000049 setarg 0x49 
+0645 204069e5 call twspi_read 
+0646 c050d96c beq 0xa1 ,mouse_s201x_init_param 
+0647 202059cd branch mouse_p3065xy_init_param 
 
 p_mouse_dpi_process:
-059a 20405728 call mouse_dpi_ghost_check 
-059b 20740000 rtn user 
-059c 6fe0c957 fetch 1 ,mem_config_sensor_type 
-059d c006859f beq ka5857 ,p_mouse_dpi_process_5_level 
-059e 202056fa branch mouse_dpi_process + 3 
+0648 20405728 call mouse_dpi_ghost_check 
+0649 20740000 rtn user 
+064a 6fe0c957 fetch 1 ,mem_config_sensor_type 
+064b c006864d beq ka5857 ,p_mouse_dpi_process_5_level 
+064c 202056fa branch mouse_dpi_process + 3 
 
 p_mouse_dpi_process_5_level:
-059f 6fe0c690 fetch 1 ,mem_mouse_dpi 
-05a0 1fe0fe01 increase 1 ,pdata 
-05a1 1fe67c04 sub pdata ,4 ,null 
-05a2 24417dca ncall set_pdata_0 ,positive 
-05a3 20205701 branch mouse_dpi_level_store 
+064d 6fe0c690 fetch 1 ,mem_mouse_dpi 
+064e 1fe0fe01 increase 1 ,pdata 
+064f 1fe67c04 sub pdata ,4 ,null 
+0650 24417dca ncall set_pdata_0 ,positive 
+0651 20205701 branch mouse_dpi_level_store 
 
 p_mouse_setting_dpi_4_level:
-05a4 6fe0c957 fetch 1 ,mem_config_sensor_type 
-05a5 c1068000 rtneq ka5857 
-05a6 c1018000 rtneq p3212 
-05a7 2020573e branch mouse_setting_dpi_4_level 
+0652 6fe0c957 fetch 1 ,mem_config_sensor_type 
+0653 c1068000 rtneq ka5857 
+0654 c1018000 rtneq p3212 
+0655 2020573e branch mouse_setting_dpi_4_level 
 
 p_mouse_setting_dpi:
-05a8 204005a4 call p_mouse_setting_dpi_4_level 
-05a9 704b25aa jam press ,mem_mouse_tx_dpi_state 
-05aa 2040008d call p_g24_send_dpi_info_enable 
-05ab 2040613a call mouse_dpi_led_blink_delay 
+0656 20400652 call p_mouse_setting_dpi_4_level 
+0657 704b25aa jam press ,mem_mouse_tx_dpi_state 
+0658 2040008d call p_mouse_send_dpi_info_enable 
+0659 2040613a call mouse_dpi_led_blink_delay 
 
 p_mouse_setting_sensor_type:
-05ac 6fe0c957 fetch 1 ,mem_config_sensor_type 
-05ad c006d785 beq ka5857 ,mouse_seting_3212_dpi 
-05ae c00605b0 beq s201x ,p_mouse_seting_s201_dpi 
-05af 20205749 branch mouse_setting_sensor_type + 2 
+065a 6fe0c957 fetch 1 ,mem_config_sensor_type 
+065b c006d785 beq ka5857 ,mouse_seting_3212_dpi 
+065c c006065e beq s201x ,p_mouse_seting_s201_dpi 
+065d 20205749 branch mouse_setting_sensor_type + 2 
 
 p_mouse_seting_s201_dpi:
-05b0 6fe0c690 fetch 1 ,mem_mouse_dpi 
-05b1 c000576f beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
-05b2 c000d772 beq mouse_dpi_level2 ,mouse_set_s201_dpi_1 
-05b3 c001577b beq mouse_dpi_level3 ,mouse_set_s201_dpi_4 
-05b4 2020576f branch mouse_set_s201_dpi_0 
+065e 6fe0c690 fetch 1 ,mem_mouse_dpi 
+065f c000576f beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
+0660 c000d772 beq mouse_dpi_level2 ,mouse_set_s201_dpi_1 
+0661 c001577b beq mouse_dpi_level3 ,mouse_set_s201_dpi_4 
+0662 2020576f branch mouse_set_s201_dpi_0 
 
 p_mouse_check_sensor_data:
-05b5 6fe0c420 fetch 1 ,mem_spi_write_flash_sm 
-05b6 c1800000 rtnne flash_sm_no_buys 
-05b7 6fe0c957 fetch 1 ,mem_config_sensor_type 
-05b8 c00585ba beq ka8g2 ,p_mouse_pka8g2_sensor_motion 
-05b9 202059f8 branch mouse_check_sensor_data + 2 
+0663 6fe0c420 fetch 1 ,mem_spi_write_flash_sm 
+0664 c1800000 rtnne flash_sm_no_buys 
+0665 6fe0c957 fetch 1 ,mem_config_sensor_type 
+0666 c0058668 beq ka8g2 ,p_mouse_pka8g2_sensor_motion 
+0667 202059f8 branch mouse_check_sensor_data + 2 
 
 p_mouse_pka8g2_sensor_motion:
-05ba 20405a6d call mouse_clear_sensor_data 
-05bb 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
-05bc c07f85c0 beq gpio_disable ,p_mouse_pka8g2_sensor_motion_1 
-05bd 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
-05be 20406ee6 call gpio_get_bit 
-05bf 24608000 nrtn true 
+0668 20405a6d call mouse_clear_sensor_data 
+0669 6fe0c659 fetch 1 ,mem_sensor_motion_gpio 
+066a c07f866e beq gpio_disable ,p_mouse_pka8g2_sensor_motion_1 
+066b 6848c659 fetcht 1 ,mem_sensor_motion_gpio 
+066c 20406ee6 call gpio_get_bit 
+066d 24608000 nrtn true 
 
 p_mouse_pka8g2_sensor_motion_1:
-05c0 58000000 setarg pan_reg_pid_l 
-05c1 204069e5 call twspi_read 
-05c2 c0ac5955 bne pka8g2_id1 ,mouse_twspi_reset 
-05c3 20205a2f branch mouse_p3212_sensor_motion_2 
+066e 58000000 setarg pan_reg_pid_l 
+066f 204069e5 call twspi_read 
+0670 c0ac5955 bne pka8g2_id1 ,mouse_twspi_reset 
+0671 20205a2f branch mouse_p3212_sensor_motion_2 
 
 p_mouse_motion:
-05c4 78547c00 disable user 
-05c5 6fe0c6f8 fetch 1 ,mem_mouse_search_dongle_action 
-05c6 c3800000 rtnbit1 g24_disconn_state 
-05c7 58000000 setarg 0 
-05c8 67e34847 store 6 ,mem_mouse_x 
-05c9 204005b5 call p_mouse_check_sensor_data 
-05ca 58000089 setarg 0x0089 
-05cb 204069e4 call twspi_write 
-05cc 20405747 call mouse_setting_sensor_type 
-05cd 20405612 call mouse_zwheel 
-05ce 20405617 call mouse_t_zwheel 
-05cf 204005dc call p_mouse_key 
-05d0 6fe0c846 fetch 1 ,mem_mouse_key 
-05d1 1fe17e1f and_into 0x1f ,pdata 
-05d2 67e0c846 store 1 ,mem_mouse_key 
-05d3 243405d7 nbranch p_mouse_drawing_optima_init ,user 
-05d4 704b2301 jam 1 ,mem_24g_rf_data_flag 
-05d5 20405f26 call mouse_drawing_optima 
-05d6 20205c0b branch mouse_no_data_timer_init 
+0672 78547c00 disable user 
+0673 6fe0c6f8 fetch 1 ,mem_mouse_search_dongle_action 
+0674 c3800000 rtnbit1 g24_disconn_state 
+0675 58000000 setarg 0 
+0676 67e34847 store 6 ,mem_mouse_x 
+0677 20400663 call p_mouse_check_sensor_data 
+0678 58000089 setarg 0x0089 
+0679 204069e4 call twspi_write 
+067a 20405747 call mouse_setting_sensor_type 
+067b 20405612 call mouse_zwheel 
+067c 20405617 call mouse_t_zwheel 
+067d 2040068a call p_mouse_key 
+067e 6fe0c846 fetch 1 ,mem_mouse_key 
+067f 1fe17e1f and_into 0x1f ,pdata 
+0680 67e0c846 store 1 ,mem_mouse_key 
+0681 24340685 nbranch p_mouse_drawing_optima_init ,user 
+0682 704b2301 jam 1 ,mem_24g_rf_data_flag 
+0683 20405f26 call mouse_drawing_optima 
+0684 20205c0b branch mouse_no_data_timer_init 
 
 p_mouse_drawing_optima_init:
-05d7 704b2300 jam 0 ,mem_24g_rf_data_flag 
-05d8 20205f37 branch mouse_drawing_optima_init 
+0685 704b2300 jam 0 ,mem_24g_rf_data_flag 
+0686 20205f37 branch mouse_drawing_optima_init 
 
 p_mouse_drawing_optima:
-05d9 6fe0c957 fetch 1 ,mem_config_sensor_type 
-05da c1058000 rtneq ka8g2 
-05db 20205f27 branch mouse_drawing_optima + 1 
+0687 6fe0c957 fetch 1 ,mem_config_sensor_type 
+0688 c1058000 rtneq ka8g2 
+0689 20205f27 branch mouse_drawing_optima + 1 
 
 p_mouse_key:
-05dc 2040584c call mouse_check_firekey_gpio 
-05dd 6fe0c987 fetch 1 ,mem_fire_key_flag 
-05de 243a5860 nbranch fire_key_press ,blank 
-05df 6fe0c982 fetch 1 ,mem_fire_key_status 
-05e0 243a585f nbranch fire_key_process ,blank 
-05e1 20405888 call mouse_check_key_gpio 
-05e2 204005e5 call p_mouse_m_key_press_check 
-05e3 204005f0 call p_mouse_ghost_key_check 
-05e4 202057ad branch mouse_key + 7 
+068a 2040584c call mouse_check_firekey_gpio 
+068b 6fe0c987 fetch 1 ,mem_fire_key_flag 
+068c 243a5860 nbranch fire_key_press ,blank 
+068d 6fe0c982 fetch 1 ,mem_fire_key_status 
+068e 243a585f nbranch fire_key_process ,blank 
+068f 20405888 call mouse_check_key_gpio 
+0690 20400693 call p_mouse_m_key_press_check 
+0691 2040069e call p_mouse_ghost_key_check 
+0692 202057ad branch mouse_key + 7 
 
 p_mouse_m_key_press_check:
-05e5 1a227e00 copy rega ,pdata 
-05e6 c28105ec bbit1 mouse_m_key ,p_mouse_m_key_press 
+0693 1a227e00 copy rega ,pdata 
+0694 c281069a bbit1 mouse_m_key ,p_mouse_m_key_press 
 
 p_mouse_m_key_release:
-05e7 6fe0cb41 fetch 1 ,mem_mouse_m_key_press_flag 
-05e8 207a0000 rtn blank 
-05e9 704b4100 jam 0 ,mem_mouse_m_key_press_flag 
-05ea 704b421e jam 30 ,mem_mouse_m_key_press_count 
-05eb 20600000 rtn 
+0695 6fe0cb41 fetch 1 ,mem_mouse_m_key_press_flag 
+0696 207a0000 rtn blank 
+0697 704b4100 jam 0 ,mem_mouse_m_key_press_flag 
+0698 704b421e jam 30 ,mem_mouse_m_key_press_count 
+0699 20600000 rtn 
 
 p_mouse_m_key_press:
-05ec 6fe0cb41 fetch 1 ,mem_mouse_m_key_press_flag 
-05ed 247a0000 nrtn blank 
-05ee 704b4101 jam 1 ,mem_mouse_m_key_press_flag 
-05ef 20600000 rtn 
+069a 6fe0cb41 fetch 1 ,mem_mouse_m_key_press_flag 
+069b 247a0000 nrtn blank 
+069c 704b4101 jam 1 ,mem_mouse_m_key_press_flag 
+069d 20600000 rtn 
 
 p_mouse_ghost_key_check:
-05f0 70497900 jam 0 ,mem_mouse_matrix_key_cow_count 
-05f1 70497a00 jam 0 ,mem_mouse_matrix_key_row_count 
-05f2 70497b00 jam 0 ,mem_mouse_ghost_flag 
-05f3 1fe22400 copy pdata ,regb 
-05f4 6848c644 fetcht 1 ,mem_lbutton_gpio 
-05f5 6fe0c647 fetch 1 ,mem_bk_button_gpio 
-05f6 98467c00 isub temp ,null 
-05f7 20228602 branch p_mouse_matrix_ghost_key_l_bk ,zero 
-05f8 6fe0c648 fetch 1 ,mem_fw_button_gpio 
-05f9 98467c00 isub temp ,null 
-05fa 20228608 branch p_mouse_matrix_ghost_key_l_fw ,zero 
-05fb 6848c645 fetcht 1 ,mem_mbutton_gpio 
-05fc 6fe0c647 fetch 1 ,mem_bk_button_gpio 
-05fd 98467c00 isub temp ,null 
-05fe 20228611 branch p_mouse_ghost_key_mbk_rfw ,zero 
+069e 70497900 jam 0 ,mem_mouse_matrix_key_cow_count 
+069f 70497a00 jam 0 ,mem_mouse_matrix_key_row_count 
+06a0 70497b00 jam 0 ,mem_mouse_ghost_flag 
+06a1 1fe22400 copy pdata ,regb 
+06a2 6848c644 fetcht 1 ,mem_lbutton_gpio 
+06a3 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+06a4 98467c00 isub temp ,null 
+06a5 202286b0 branch p_mouse_matrix_ghost_key_l_bk ,zero 
+06a6 6fe0c648 fetch 1 ,mem_fw_button_gpio 
+06a7 98467c00 isub temp ,null 
+06a8 202286b6 branch p_mouse_matrix_ghost_key_l_fw ,zero 
+06a9 6848c645 fetcht 1 ,mem_mbutton_gpio 
+06aa 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+06ab 98467c00 isub temp ,null 
+06ac 202286bf branch p_mouse_ghost_key_mbk_rfw ,zero 
 
 p_mouse_ghost_key_mfw_rbk:
-05ff 204057fb call mouse_ghost_key_check_m_fw 
+06ad 204057fb call mouse_ghost_key_check_m_fw 
 
 p_mouse_ghost_key_rbk:
-0600 20400616 call p_mouse_ghost_key_check_r_bk 
-0601 202057e5 branch mouse_ghost_key_check_next 
+06ae 204006c4 call p_mouse_ghost_key_check_r_bk 
+06af 202057e5 branch mouse_ghost_key_check_next 
 
 p_mouse_matrix_ghost_key_l_bk:
-0602 6848c645 fetcht 1 ,mem_mbutton_gpio 
-0603 6fe0c648 fetch 1 ,mem_fw_button_gpio 
-0604 98467c00 isub temp ,null 
-0605 2022d7d6 branch mouse_ghost_key_lbk_mfw ,zero 
+06b0 6848c645 fetcht 1 ,mem_mbutton_gpio 
+06b1 6fe0c648 fetch 1 ,mem_fw_button_gpio 
+06b2 98467c00 isub temp ,null 
+06b3 2022d7d6 branch mouse_ghost_key_lbk_mfw ,zero 
 
 p_mouse_ghost_key_lbk_rfw:
-0606 204057ef call mouse_ghost_key_check_l_bk 
-0607 20200612 branch p_mouse_ghost_key_rfw 
+06b4 204057ef call mouse_ghost_key_check_l_bk 
+06b5 202006c0 branch p_mouse_ghost_key_rfw 
 
 p_mouse_matrix_ghost_key_l_fw:
-0608 6848c645 fetcht 1 ,mem_mbutton_gpio 
-0609 6fe0c647 fetch 1 ,mem_bk_button_gpio 
-060a 98467c00 isub temp ,null 
-060b 2022860e branch p_mouse_ghost_key_lfw_mbk ,zero 
+06b6 6848c645 fetcht 1 ,mem_mbutton_gpio 
+06b7 6fe0c647 fetch 1 ,mem_bk_button_gpio 
+06b8 98467c00 isub temp ,null 
+06b9 202286bc branch p_mouse_ghost_key_lfw_mbk ,zero 
 
 p_mouse_ghost_key_lfw_rbk:
-060c 20400618 call p_mouse_ghost_key_check_l_fw 
-060d 20200600 branch p_mouse_ghost_key_rbk 
+06ba 204006c6 call p_mouse_ghost_key_check_l_fw 
+06bb 202006ae branch p_mouse_ghost_key_rbk 
 
 p_mouse_ghost_key_lfw_mbk:
-060e 20400618 call p_mouse_ghost_key_check_l_fw 
-060f 20400614 call p_mouse_ghost_key_check_m_bk 
-0610 202057e5 branch mouse_ghost_key_check_next 
+06bc 204006c6 call p_mouse_ghost_key_check_l_fw 
+06bd 204006c2 call p_mouse_ghost_key_check_m_bk 
+06be 202057e5 branch mouse_ghost_key_check_next 
 
 p_mouse_ghost_key_mbk_rfw:
-0611 20400614 call p_mouse_ghost_key_check_m_bk 
+06bf 204006c2 call p_mouse_ghost_key_check_m_bk 
 
 p_mouse_ghost_key_rfw:
-0612 2040061a call p_mouse_ghost_key_check_r_fw 
-0613 202057e5 branch mouse_ghost_key_check_next 
+06c0 204006c8 call p_mouse_ghost_key_check_r_fw 
+06c1 202057e5 branch mouse_ghost_key_check_next 
 
 p_mouse_ghost_key_check_m_bk:
-0614 1a417e12 and regb ,mouse_m_bk_button ,pdata 
-0615 202057f3 branch mouse_ghost_key_check_m_bk + 1 
+06c2 1a417e12 and regb ,mouse_m_bk_button ,pdata 
+06c3 202057f3 branch mouse_ghost_key_check_m_bk + 1 
 
 p_mouse_ghost_key_check_r_bk:
-0616 1a417e0a and regb ,mouse_r_bk_button ,pdata 
-0617 202057f6 branch mouse_ghost_key_check_r_bk + 1 
+06c4 1a417e0a and regb ,mouse_r_bk_button ,pdata 
+06c5 202057f6 branch mouse_ghost_key_check_r_bk + 1 
 
 p_mouse_ghost_key_check_l_fw:
-0618 1a417e11 and regb ,mouse_l_fw_button ,pdata 
-0619 202057f9 branch mouse_ghost_key_check_l_fw + 1 
+06c6 1a417e11 and regb ,mouse_l_fw_button ,pdata 
+06c7 202057f9 branch mouse_ghost_key_check_l_fw + 1 
 
 p_mouse_ghost_key_check_r_fw:
-061a 1a417e12 and regb ,mouse_r_fw_button ,pdata 
-061b 202057ff branch mouse_ghost_key_check_r_fw + 1 
+06c8 1a417e12 and regb ,mouse_r_fw_button ,pdata 
+06c9 202057ff branch mouse_ghost_key_check_r_fw + 1 
               org 0x2000
 
 start:
@@ -22347,6 +22597,8 @@
 5b41 6fe0c72a fetch 1 ,mem_customer_key_press 
 5b42 c001db4f beq kb_multikey_report_id ,mouse_fill_multimedia_key_data_le 
 5b43 c0015b52 beq kb_system_conctrl_report_id ,mouse_fill_systemctrl_key_data_le 
+
+mouse_le_send_keyboard_package_data_next:
 5b44 7047b408 jam 8 ,mem_le_data_len 
 5b45 684947b5 fetcht 2 ,mem_le_keyboard_handle 
 
@@ -22378,6 +22630,8 @@
 5b56 684947bb fetcht 2 ,mem_le_battery_level_handle 
 5b57 20402dee call le_att_malloc_tx_notify 
 5b58 6fe0c7bd fetch 1 ,mem_le_battery_level_percentage 
+
+istore_1_contw_rtn:
 5b59 e7e08005 istore 1 ,contw 
 5b5a 20600000 rtn 
 
Index: program/app_mouse.prog
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/program/app_mouse.prog	(revision 4836)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/program/app_mouse.prog	(working copy)
@@ -2643,6 +2643,7 @@
 	fetch 1,mem_customer_key_press
 	beq KB_MULTIKEY_REPORT_ID,mouse_fill_multimedia_key_data_le
 	beq KB_SYSTEM_CONCTRL_REPORT_ID,mouse_fill_systemctrl_key_data_le
+mouse_le_send_keyboard_package_data_next:
 	jam 8,mem_le_data_len
 	fetcht 2,mem_le_keyboard_handle
 mouse_fill_data_le:
@@ -2673,6 +2674,7 @@
 	fetcht 2,mem_le_battery_level_handle
 	call le_att_malloc_tx_notify
 	fetch 1,mem_le_battery_level_percentage
+istore_1_contw_rtn:
 	istore 1,contw
 	rtn
 
Index: program/patch.prog
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/program/patch.prog	(revision 4836)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/program/patch.prog	(working copy)
@@ -103,7 +103,7 @@
 	branch mouse_24g_search_dongle_loop_end
 
 p_mouse_24g_search_dongle_success:
-	call p_g24_send_device_info_enable
+	call p_mouse_send_device_info_enable
 	branch mouse_24g_search_dongle_success
 
 
@@ -186,25 +186,25 @@
 	jam 10,mem_mouse_delay_send_info_timer
 	branch mouse_wakeup_24g_from_long_sleep
 //======================device info tx=====================//
-p_g24_send_device_info_enable:
+p_mouse_send_device_info_enable:
 	fetch 1,mem_device_tx_device_info_flag
 	set1 DATA_DEVICE_INFO,pdata
-	branch p_g24_store_device_tx_flag
+	branch p_mouse_store_device_tx_flag
 
-p_g24_send_http_info_enable:
+p_mouse_send_http_info_enable:
 	fetch 1,mem_device_tx_device_info_flag
 	set1 DATA_HTTP,pdata
-	branch p_g24_store_device_tx_flag
+	branch p_mouse_store_device_tx_flag
 
-p_g24_send_dpi_info_enable:
+p_mouse_send_dpi_info_enable:
 	fetch 1,mem_device_tx_device_info_flag
 	set1 DATA_DPI,pdata
-	branch p_g24_store_device_tx_flag
+	branch p_mouse_store_device_tx_flag
 
-p_g24_send_app_info_enable:
+p_mouse_send_app_info_enable:
 	fetch 1,mem_device_tx_device_info_flag
 	set1 DATA_APP,pdata
-	branch p_g24_store_device_tx_flag
+	branch p_mouse_store_device_tx_flag
 	
 
 p_g24_send_device_info_check:
@@ -376,29 +376,30 @@
 	rtn
 
 p_g24_receive_no_ack_data:
+p_mouse_le_clr_info_flag:
 	fetch 1,mem_device_tx_device_info_flag
 	isolate1 DATA_DEVICE_INFO,pdata
-	call p_g24_clr_device_info_flag,true
+	call p_mouse_clr_device_info_flag,true
 	isolate1 DATA_HTTP,pdata
-	call p_g24_clr_http_info_flag,true
+	call p_mouse_clr_http_info_flag,true
 	isolate1 DATA_DPI,pdata
-	call p_g24_clr_dpi_info_flag,true
+	call p_mouse_clr_dpi_info_flag,true
 	isolate1 DATA_APP,pdata
-	call p_g24_clr_app_info_flag,true
+	call p_mouse_clr_app_info_flag,true
 	rtn
 
-p_g24_clr_device_info_flag:
+p_mouse_clr_device_info_flag:
 	set0 DATA_DEVICE_INFO,pdata
-	branch p_g24_store_device_tx_flag
-p_g24_clr_http_info_flag:
+	branch p_mouse_store_device_tx_flag
+p_mouse_clr_http_info_flag:
 	set0 DATA_HTTP,pdata
-	branch p_g24_store_device_tx_flag
-p_g24_clr_dpi_info_flag:
+	branch p_mouse_store_device_tx_flag
+p_mouse_clr_dpi_info_flag:
 	set0 DATA_DPI,pdata
-	branch p_g24_store_device_tx_flag
-p_g24_clr_app_info_flag:
+	branch p_mouse_store_device_tx_flag
+p_mouse_clr_app_info_flag:
 	set0 DATA_APP,pdata
-p_g24_store_device_tx_flag:
+p_mouse_store_device_tx_flag:
 	store 1,mem_device_tx_device_info_flag
 	rtn
 
@@ -1077,12 +1078,245 @@
 	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
 	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_le_send_empty_packet
 	call mouse_motion
+	call p_mouse_tx_device_info_check
 	call mouse_check_125Hz
 	nrtn user
 	call mouse_current_mult_update
 	call p_mouse_data_xy_release
+
+	fetch 1,mem_device_tx_device_info_flag
+	jam 0,mem_device_tx_device_info_flag
+	// call p_mouse_le_clr_info_flag
+	bbit1 DATA_HTTP,p_mouse_send_website_data
+	bbit1 DATA_APP,p_le_send_app_info_check
+	bbit1 DATA_DEVICE_INFO,p_mouse_send_device_info_check
+	bbit1 DATA_DPI,p_le_send_dpi_info_data
+	bbit1 DATA_BATTERY,p_le_send_battery_info_check
+
 	branch mouse_le_next+12
 
+//--------------ble http send-------------//
+p_mouse_send_http_data_timer:
+	arg 12,queue
+	call timer_check
+	nrtn blank
+	fetch 1,mem_mouse_website_step
+	branch p_mouse_send_http_timer_init,blank
+	call p_mouse_send_http_info_enable
+p_mouse_send_http_timer_init:
+	arg 12,queue
+	setarg 20
+	branch timer_init
+
+p_mouse_send_website_data:
+	setarg  0
+	store 8,mem_pdatatemp
+	fetch 1,mem_mouse_website_step
+	beq RELEASE_MS_DATA,p_mouse_le_send_empty_packet
+	beq WEBSITE_WIN,p_mouse_website_winr_data
+	beq WEBSITE_WIN_RELEASE,p_mouse_website_win_release_data
+	beq WEBSITE_WAIT,p_mouse_website_wait_tx_data
+	beq WEBSITE_DATA,p_mouse_website_data
+	beq WEBSITE_ENTER_1,p_mouse_website_enter_data1
+	beq WEBSITE_ENTER_RELEASE_1,p_mouse_webstie_release_data1
+	beq WEBSITE_ENTER_2,p_mouse_website_enter_data2
+	beq WEBSITE_ENTER_RELEASE_2,p_mouse_website_enter_release_data
+	rtn
+p_mouse_le_send_empty_packet:
+	jam WEBSITE_WIN,mem_mouse_website_step
+	branch mouse_le_send_empty_packet
+
+p_mouse_website_winr_data:
+	jam WEBSITE_WIN_RELEASE,mem_mouse_website_step
+	arg mem_mouse_website_info+1,pdata
+	store 2,mem_mouse_website_ptr
+
+	fetch 1,mem_computer_system
+	beq SYSTEM_OS_MAC,p_mouse_macos_winr_data		//command+spaced
+p_mouse_winos_winr_data:
+	fetch 3,mem_usb_win_cmd
+	store 3,mem_pdatatemp
+	branch mouse_le_send_keyboard_package_data_next
+p_mouse_macos_winr_data:
+	fetch 3,mem_usb_mac_cmd
+	store 3,mem_pdatatemp
+	branch mouse_le_send_keyboard_package_data_next
+p_mouse_website_enter_data1:
+	jam WEBSITE_ENTER_RELEASE_1,mem_mouse_website_step
+	branch p_mouse_website_enter_data
+p_mouse_website_enter_data2:
+	jam WEBSITE_ENTER_RELEASE_2,mem_mouse_website_step
+p_mouse_website_enter_data:	
+	fetch 3,mem_usb_kb_enter
+	store 3,mem_pdatatemp
+	branch mouse_le_send_keyboard_package_data_next
+p_mouse_website_data:
+	fetch 1,mem_mouse_website_release_flag
+	beq 1,p_mouse_website_release_data
+	beq 0,p_mouse_website_info_data
+	rtn	
+
+p_mouse_website_enter_release_data:
+	jam WEBSITE_DONE,mem_mouse_website_step
+	branch p_mouse_website_release_data
+p_mouse_website_win_release_data:
+	jam WEBSITE_WAIT,mem_mouse_website_step
+p_mouse_website_release_data:
+	jam 0,mem_mouse_website_release_flag
+	branch mouse_le_release_keyboard_data
+	
+p_mouse_webstie_release_data1:
+	jam WEBSITE_ENTER_2,mem_mouse_website_step
+	branch p_mouse_website_release_data
+
+p_usb_webstie_info_data_done:
+	jam WEBSITE_ENTER_1,mem_mouse_website_step
+	rtn
+p_mouse_website_info_data:
+	arg mem_mouse_website_info+1,temp
+	fetch 1,mem_mouse_website_info
+	iadd temp,temp
+	fetch 2,mem_mouse_website_ptr
+	isub temp,null
+	branch p_usb_webstie_info_data_done,zero
+	call p_mouse_website_acii2hidkey
+	call p_mouse_website_need_shift
+	fetch 1,mem_mouse_website_shift_flag
+	store 1,mem_pdatatemp
+	storer rega,1,mem_pdatatemp+2
+	fetch 2,mem_mouse_website_ptr
+	increase 1,pdata
+	store 2,mem_mouse_website_ptr
+	
+	jam 1,mem_mouse_website_release_flag
+	branch mouse_le_send_keyboard_package_data_next
+
+p_mouse_website_acii2hidkey:
+	fetcht 2,mem_mouse_website_ptr
+	ifetch 1,temp
+	sub pdata,0x7a,null//'z'  ascii
+	nbranch p_mouse_website_acii2hidkey1,positive
+	arg 0x61,regb	//'a' ascii
+	isub regb,rega
+	branch p_mouse_website_acii2keycode_a2z,positive
+p_mouse_website_acii2hidkey1:
+	ifetch 1,temp
+	sub pdata,0x39,null
+	nbranch p_mouse_website_acii2keycode_sign,positive
+	arg 0x31,regb ////'1' ascii
+	isub regb,rega
+	branch p_mouse_website_acii2keycode_1to9,positive
+	arg 0x30,regb  //'0' ascii
+	isub regb,rega
+	branch p_mouse_website_acii2keycode_0,zero
+p_mouse_website_acii2keycode_sign:
+	sub pdata,0x3a,null
+	branch p_mouse_website_acii2keycode_sign_3a,zero
+	sub pdata,0x2f,null
+	branch p_mouse_website_acii2keycode_sign_2f,zero
+	sub pdata,0x2e,null
+	branch p_mouse_website_acii2keycode_sign_2e,zero
+	sub pdata,0x2d,null
+	branch p_mouse_website_acii2keycode_sign_2d,zero
+	rtn
+p_mouse_website_acii2keycode_sign_3a:	//':'
+	arg 0x33,rega
+	rtn
+p_mouse_website_acii2keycode_sign_2f:	//'/'
+	arg 0x38,rega
+	rtn
+p_mouse_website_acii2keycode_sign_2e:	//'.'
+	arg 0x37,rega
+	rtn
+p_mouse_website_acii2keycode_sign_2d:	//'-'
+	arg 0x2d,rega
+	rtn
+
+p_mouse_website_acii2keycode_a2z:
+	add rega,4,rega		//'a'
+	rtn
+p_mouse_website_acii2keycode_1to9:
+	add rega,0x1e,rega 	//'1'
+	rtn
+p_mouse_website_acii2keycode_0:
+	add rega,0x27,rega  //'0
+	rtn
+
+p_mouse_website_need_shift:
+	jam 0,mem_mouse_website_shift_flag
+	fetch 2,mem_mouse_website_ptr
+	ifetch 1,pdata
+	arg mem_mouse_website_info_sign+1,contr
+	fetcht 1,mem_mouse_website_info_sign
+	copy temp,loopcnt
+p_mouse_website_need_shift_check_loop:
+	ifetcht 1,contr
+	isub temp,null
+	branch p_mouse_website_need_shift_setflag,zero
+	loop p_mouse_website_need_shift_check_loop
+	rtn
+p_mouse_website_need_shift_setflag:
+	jam 2,mem_mouse_website_shift_flag
+	rtn
+p_mouse_website_wait_tx_data:
+	fetch 1,mem_mouse_website_wait_count
+	increase 1,pdata
+	store 1,mem_mouse_website_wait_count
+	rtnne WEBSITE_WAIT_COUNT
+	jam 0,mem_mouse_website_wait_count
+	jam WEBSITE_DATA,mem_mouse_website_step
+	rtn
+
+//------------------ble device info------------------// Opcode = 1
+p_mouse_send_device_info_check:
+	call p_le_info_tx_buf_clr
+	jam HCI_EVENT_DEVICE_INFO_REP,mem_device_info_tx_buf					//Opcode
+	jam 0x0c,mem_device_info_tx_buf+1				//length
+	fetch 6,mem_mouse_sn_mac
+	store 6,mem_device_info_tx_buf+2
+	fetch 2,mem_mouse_version
+	store 2,mem_device_info_tx_buf+8
+	fetch 2,mem_mouse_code
+	store 2,mem_device_info_tx_buf+10
+p_le_info_tx_data_fill:
+	arg 20,rega
+	fetcht 2,mem_le_info_tx_handle
+	call le_att_malloc_tx_notify
+	arg 20,loopcnt
+	arg mem_device_info_tx_buf,contr
+	branch memcpy
+p_le_info_tx_buf_clr:
+	arg mem_device_info_tx_buf,contw
+	arg 20,loopcnt
+	branch memset0
+//------------------ble dpi info------------------// Opcode = 2
+p_le_send_dpi_info_data:
+	call p_le_info_tx_buf_clr
+	jam HCI_EVENT_DPI_RSP,mem_device_info_tx_buf					//Opcode
+	jam 0x02,mem_device_info_tx_buf+1				//length
+	fetch 1,mem_mouse_dpi					//battery data
+	store 1,mem_device_info_tx_buf+2
+	jam 0x00,mem_device_info_tx_buf+3				//00\01s
+	branch p_le_info_tx_data_fill
+
+//------------------ble battery info------------------// Opcode = 6
+p_le_send_battery_info_check:
+	call p_le_info_tx_buf_clr
+	jam HCI_EVENT_BATTERY_REP,mem_device_info_tx_buf					//Opcode
+	jam 0x02,mem_device_info_tx_buf+1				//length
+	fetch 1,mem_le_battery_level_percentage	//battery data
+	store 1,mem_device_info_tx_buf+2					
+	jam 0x00,mem_device_info_tx_buf+3				//00\01
+	branch p_le_info_tx_data_fill
+
+//------------------ble app info------------------// Opcode = 8
+p_le_send_app_info_check:
+	call p_le_info_tx_buf_clr
+	jam HCI_EVENT_OPEN_APP_REP,mem_device_info_tx_buf					//Opcode
+	jam 0x00,mem_device_info_tx_buf+1				//length
+	branch p_le_info_tx_data_fill
+
+
 p_gpio_set_wake:
 	sub temp,UI_BUTTON_GPIO_DISABLE,null
 	rtn zero
@@ -1521,7 +1755,7 @@
 
 p_mouse_send_device_info_timer:		//power on and wakeup
 	arg mem_mouse_delay_send_info_timer,regc
-	arg p_g24_send_device_info_enable,regb
+	arg p_mouse_send_device_info_enable,regb
 	branch timer_single_step
 
 
@@ -1535,13 +1769,13 @@
 p_mouse_dpi_long_press_set:
 	jam 1,mem_mouse_dpi_long_press_flag
 	jam LONG_PRESS,mem_mouse_tx_dpi_state
-	branch p_g24_send_app_info_enable
+	branch p_mouse_send_app_info_enable
 
 p_mouse_m_key_long_press_timer:
 	fetch 1,mem_mouse_m_key_press_flag
 	rtn blank
 	arg mem_mouse_m_key_press_count,regc
-	arg p_g24_send_http_info_enable,regb
+	arg p_mouse_send_http_info_enable,regb
 	branch timer_single_step
 
 ifdef COMMBINATION_DPI
@@ -1775,6 +2009,7 @@
 	rtn
 	
 p_mouse_idle:
+	call p_mouse_send_http_data_timer
 	call mouse_low_voltage_led_no_enter_lpm
 	call ui_check_paring_button
 	call p_mouse_dpi_check
@@ -1816,11 +2051,11 @@
 	rtn
 p_g24_send_dpi_release_info:
 	jam RELEASE,mem_mouse_tx_dpi_state
-	branch p_g24_send_dpi_info_enable
+	branch p_mouse_send_dpi_info_enable
 
 p_g24_send_dpi_long_release_info:
 	jam LONG_RELEASE,mem_mouse_tx_dpi_state
-	branch p_g24_send_app_info_enable
+	branch p_mouse_send_app_info_enable
 
 p_mouse_3io6key_dpi_check_end:
 	fetcht 1,mem_dpi_button_gpio
@@ -1955,7 +2190,7 @@
 	branch mouse_init_sensor_reset
 
 p_mouse_24g_short_sleep_clear_wake:
-	call p_g24_send_device_info_enable
+	call p_mouse_send_device_info_enable
 	call p_clear_wake
 	branch p_lpm_write_gpio_wakeup
 
@@ -2063,7 +2298,7 @@
 p_mouse_setting_dpi:
 	call p_mouse_setting_dpi_4_level
 	jam PRESS,mem_mouse_tx_dpi_state
-	call p_g24_send_dpi_info_enable
+	call p_mouse_send_dpi_info_enable
 	call mouse_dpi_led_blink_delay
 p_mouse_setting_sensor_type:
 	fetch 1,mem_config_sensor_type
Index: sched/mouse.dat
===================================================================
--- /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/sched/mouse.dat	(revision 4836)
+++ /1121s/branch/mouse/AI_Project/mouse_public_ai_2mode/sched/mouse.dat	(working copy)
@@ -222,6 +222,23 @@
 mem_le_pairing_handle:2d 00
 mem_le_battery_level_handle:30 00
 
+mem_le_info_tx_handle:36 00
+# mem_le_app_handle:39 00
+# mem_le_device_info_handle:3c 00
+
+
+mem_usb_win_cmd:08 00 15 	#win+r
+mem_usb_mac_cmd:08 00 2c 	#command+space
+mem_usb_kb_enter:00 00 28	#shift
+
+mem_mouse_website_info:
+'http://ylb.qd-data.com/gzga
+# '1234567890
+
+mem_mouse_website_info_sign:
+'~!@#$%^&*()_+{}|":>?<
+
+
 mem_le_adv_data_len:1f
 mem_le_adv_data:
 #flag
@@ -259,7 +276,7 @@
 mem_le_adv_direct_ind:ff 00 00
 
 mem_flash_base:00 50 00
-mem_eeprom_base:80 1f
+mem_eeprom_base:00 25
 mem_eeprom_block_size:80
 
 #ui
@@ -441,3 +458,223 @@
 #mem_rf_debug_rx_gpio:87
 #mem_rf_debug_tx_gpio:88
 
+
+
+mem_ui_le_uuid_table:mem_mouse_ble_att_list
+mem_mouse_ble_att_list:
+#-----------------------------------GAP-----------------------------------
+# GAP（Generic Access Profile） （通用访问规范）
+#Primary service GAP ------
+01 00 02 00 28 02 00 18
+
+# 类型：0x2A00（Device Name UUID）
+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
+
+# 类型:0x2A01（Appearance UUID）
+04 00 02 03 28 01 02
+05 00 02 01 2a 02 c2 03#值：0x03C2 鼠标图标
+
+# 类型:0x2A04（Peripheral Preferred Connection Parameters UUID）(连接参数)
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01
+
+#-----------------------------------GATT-----------------------------------
+#Primary Service: GATT----- （Generic Attribute Profile） （通用属性配置文件）
+08 00 02 00 28 02 01 18
+#Service changed
+09 00 02 03 28 01 20
+0a 00 02 05 2a 00  #0x2A05（Service Changed UUID）
+0b 00 02 02 29 02 00 00
+
+#-----------------------------------Device Information-----------------------------------
+#Device Information（设备信息服务）
+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
+
+#-----------------------------------HID-----------------------------------
+#HID（Human Interface Device）服务
+#Primary service hid ------
+11 00 02 00 28 02 12 18  
+
+#Protocol mode  
+12 00 02 03 28 01 06
+13 00 02 4e 2a 01 01
+
+#Hid report（Report ID=2，Input类型）
+14 00 02 03 28 01 12
+15 00 02 4d 2a 08 00 00 00 00 00 00 00
+16 00 02 02 29 02 00 00
+17 00 02 08 29 02 02 01
+
+#Hid report（Report ID=1，Input类型）
+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
+
+#Hid report（Report ID=3，Input类型）  
+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  
+
+#Hid report（Report ID=4，Input类型）  
+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
+
+# #Hid report（Report ID=5，Input类型）  
+# 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 05 01
+
+#Hid report（Report ID=2，Output类型）
+24 00 02 03 28 01 0e  
+25 00 02 4d 2a 02 00 00  
+26 00 02 08 29 02 02 02  
+
+#Report Map
+27 00 02 03 28 01 02  
+28 00 02 4b 2a bd 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 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 19 00 2a ff 03 15 00 26 ff 03 95 01 75 10 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
+# - 类型：0x2A4B（Report Map HID Report Descriptor）  
+# - 值：包含HID设备详细配置（鼠标8按键、16位坐标，键盘按键映射等），定义Report ID=1（鼠标）、ID=2（键盘）等报告格式  
+
+#电量特征
+#0x2803（Characteristic Declaration）   
+29 00 02 03 28 01 1a   
+2a 00 02 00 2a 08 00 00 00 00 00 00 00 00   # - 类型：0x2A00（Battery Level）  
+2b 00 02 02 29 02 01 00         # - 类型：0x2902（Client Characteristic Configuration）  
+2c 00 02 03 28 01 02            #0x2803（Characteristic Declaration）  
+2d 00 02 4a 2a 04 01 01 00 03   #0x2A4A（HID Information）  
+
+# 0x180f（电池服务UUID）
+2e 00 02 00 28 02 0f 18    
+2f 00 02 03 28 01 12  # - 类型：0x2803（Characteristic Declaration）  
+30 00 02 19 2a 01 64  # - 类型：0x2A19（Battery Level）   
+31 00 02 02 29 02 00 00  # - 类型：0x2902（Client Characteristic Configuration）  
+32 00 02 03 28 01 04  # - 类型：0x2803（Characteristic Declaration）  
+33 00 02 4c 2a 00 00 00   # - 类型：0x2A4C（Report Map）
+
+
+#驱动协议数据
+#自定义服务info tx UUID：0xff00
+34 00 02 00 28 02 00 ff
+35 00 02 03 28 01 12
+36 00 02 01 ff 14 01 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+37 00 02 02 29 02 00 00
+#自定义服务info rx UUID：0xff01
+38 00 02 00 28 02 01 ff
+39 00 02 03 28 01 06
+3a 00 02 01 ff 14 01 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
+
+# mem_mouse_le_map_len:bc 00
+# mem_mouse_ble_hid_map:
+# 05 01   # Usage Page (Generic Desktop)          - 通用桌面设备
+# 09 02   # Usage (Mouse)                         - 鼠标设备
+# A1 01   # Collection (Application)              - 应用级集合开始
+# 85 01   # Report ID (1)                         - 报告ID设为1（鼠标基础报告）
+# 09 01   # Usage (Pointer)                       - 指针设备
+# A1 00   # Collection (Physical)                 - 物理集合开始
+# 05 09   # Usage Page (Button)                   - 按钮用途页
+# 19 01   # Usage Minimum (1)                     - 最小按钮编号
+# 29 08   # Usage Maximum (8)                     - 最大按钮编号（支持8个按钮）
+# 15 00   # Logical Minimum (0)                   - 逻辑最小值
+# 25 01   # Logical Maximum (1)                   - 逻辑最大值（0/1状态）
+# 75 01   # Report Size (1)                       - 每个字段占1位
+# 95 08   # Report Count (8)                      - 8个字段（对应8个按钮）
+# 81 02   # Input (Data,Var,Abs)                  - 输入数据（按钮状态）
+
+# 05 01   # Usage Page (Generic Desktop)          - 切回通用桌面
+# 09 30   # Usage (X)                            - X轴
+# 09 31   # Usage (Y)                            - Y轴
+# 16 01 F8 # Logical Minimum (-2047)             - X/Y轴最小值
+# 26 FF 07 # Logical Maximum (2047)              - X/Y轴最大值
+# 75 10   # Report Size (16)                     - 16位存储坐标
+# 95 02   # Report Count (2)                     - 两个轴（X和Y）
+# 81 06   # Input (Data,Var,Rel)                 - 相对坐标输入
+
+# 09 38   # Usage (Wheel)                        - 滚轮
+# 15 81   # Logical Minimum (-127)               - 最小值
+# 25 7F   # Logical Maximum (127)               - 最大值
+# 75 08   # Report Size (8)                     - 8位存储
+# 95 01   # Report Count (1)                    - 单个滚轮
+# 81 06   # Input (Data,Var,Rel)                - 相对值输入
+
+# 05 0C   # Usage Page (Consumer)               - 消费者控制页
+# 0A 38 02 # Usage (AC Pan)                     - 水平滚动
+# 95 01   # Report Count (1)                    - 单个滚轮
+# 81 06   # Input (Data,Var,Rel)                - 相对值输入
+# C0      # End Collection                      - 结束物理集合
+# C0      # End Collection                      - 结束应用集合
+
+# 05 01   # Usage Page (Generic Desktop)
+# 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 (Key Codes)
+# 19 E0   # Usage Minimum (224) - 左Ctrl
+# 29 E7   # Usage Maximum (231) - 右GUI
+# 15 00   # Logical Minimum (0)
+# 25 01   # Logical Maximum (1)
+# 81 02   # Input (Data,Var,Abs)
+# 95 01   # Report Count (1)
+# 75 08   # Report Size (8) - 修饰键
+# 81 03   # Input (Const,Var,Abs) - 保留位
+# 95 05   # Report Count (5)
+# 75 01   # Report Size (1)
+# 05 08   # Usage Page (LEDs)
+# 19 01   # Usage Minimum (1) - Num Lock
+# 29 05   # Usage Maximum (5) - Kana
+# 91 02   # Output (Data,Var,Abs) - LED状态
+# 95 01   # Report Count (1)
+# 75 03   # Report Size (3)
+# 91 03   # Output (Const,Var,Abs)
+# 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 (Key Codes)
+# 19 00   # Usage Minimum (0)
+# 29 FF   # Usage Maximum (255)
+# 81 00   # Input (Data,Arr,Abs) - 普通按键
+# C0      # End Collection
+
+# 05 0C   # Usage Page (Consumer)          - 消费者控制页（多媒体控制）
+# 09 01   # Usage (Consumer Control)       - 消费者控制设备（如音量/播放控制）
+# A1 01   # Collection (Application)       - 应用级集合开始
+# 85 03   # Report ID (3)                 - 报告ID设为3（多媒体控制报告）
+# 19 00   # Usage Minimum (0)             - 最小控制项编号
+# 2A FF 03 # Usage Maximum (0x03FF)       - 最大控制项编号（支持1023种控制）
+# 15 00   # Logical Minimum (0)           - 逻辑最小值
+# 26 FF 03 # Logical Maximum (1023)       - 逻辑最大值（10位分辨率）
+# 95 01   # Report Count (1)              - 1个字段
+# 75 10   # Report Size (16)              - 每个字段占16位
+# 81 02   # Input (Data,Var,Abs)          - 输入数据（绝对数值）
+# C0      # End Collection                - 结束应用集合
+
+# 05 01   # Usage Page (Generic Desktop)  - 切回通用桌面页
+# 09 80   # Usage (0x80)                  - 自定义功能（厂商特定用途）
+# A1 01   # Collection (Application)      - 应用级集合开始
+# 85 04   # Report ID (4)                - 报告ID设为4（自定义功能报告）
+# 15 00   # Logical Minimum (0)          - 逻辑最小值
+# 25 01   # Logical Maximum (1)          - 逻辑最大值（0/1状态）
+# 75 01   # Report Size (1)              - 每个字段占1位
+# 95 03   # Report Count (3)             - 3个字段（3个自定义按钮）
+# 19 81   # Usage Minimum (0x81)         - 自定义按钮1
+# 29 83   # Usage Maximum (0x83)         - 自定义按钮3
+# 81 02   # Input (Data,Var,Abs)         - 输入数据（按钮状态）
+# 95 01   # Report Count (1)             - 1个字段
+# 75 05   # Report Size (5)              - 5位填充（补齐字节边界）
+# 81 03   # Input (Const,Var,Abs)        - 常量填充位
+# C0      # End Collection              - 结束应用集合
\ No newline at end of file
