DELL
2024-04-28 e0af0782788d6297664cbd602c65210eead79f40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Êþº¾4Mcom/battalarm/BattAlarm_Threadjava/lang/ThreadBattAlarmParamTableNameLjava/lang/String; ConstantValue    tb_alarm_paramBattAlarmDataTableName tb_battalarm_dataDevAlarmDataTableName tb_dev_paramm_AppCfgLcom/config/AppConfig; m_Conn_PoolLcom/sql/MysqlConnPool;    m_AL_Data#Lcom/battdata_rt/BattData_RT_Array;m_AlarmParam_COELcom/battalarm/BattAlarmParam;<init>S(Lcom/config/AppConfig;Lcom/sql/MysqlConnPool;Lcom/battdata_rt/BattData_RT_Array;)VCode
 ()V         ! #com/battalarm/BattAlarmParam
"    &     ( 
*,+com/sql/MysqlConnPool -.getConn()Ljava/sql/Connection;
0 12CreateBattAlarmParamTable(Ljava/sql/Connection;)V
465!com/battdata_rt/BattData_RT_Array 78getItem (I)Lcom/battdata_rt/BattData_RT;
: ;<getBattAlarmParam5(Ljava/sql/Connection;Lcom/battdata_rt/BattData_RT;)V
4> ?@ getItemCount()I
B C2#createBattAlarmDataTable_IfNotExistLineNumberTableLocalVariableTablethis Lcom/battalarm/BattAlarm_Thread;cfgcon_poolal_dataiI StackMapTableOcom/config/AppConfigQcom/sql/Sql_Mysql
PS 2U
`db_param`
PW XY sqlMysqlUseDB(Ljava/lang/String;)V
P[ \]sqlMysqlCheckIfTableExist(Ljava/lang/String;)Z_¢CREATE TABLE IF NOT EXISTS `tb_dev_param` (  `num` int(11) NOT NULL AUTO_INCREMENT,  `dev_Id` int(11) NOT NULL DEFAULT '91000000',  `alm_id` int(11) NOT NULL DEFAULT '119001',  `alm_name` varchar(64) NOT NULL DEFAULT 'Batt_Alarm_Type_',  `alm_high_coe` float NOT NULL DEFAULT '0.9',  `alm_low_coe` float NOT NULL DEFAULT '0.5',  `alm_high_level` int(11) NOT NULL DEFAULT '4',  `alm_low_level` int(11) NOT NULL DEFAULT '1',  `alm_high_en` int(11) NOT NULL DEFAULT '0',  `alm_low_en` int(11) NOT NULL DEFAULT '0',  `note` varchar(64) NOT NULL DEFAULT '',  PRIMARY KEY (`num`),  KEY `index_alm_id` (`alm_id`),  KEY `index_dev_id` (`dev_Id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Pa bYsqlMysqlExecute
dfejava/sql/SQLException gprintStackTrace
Pi j    close_conconnLjava/sql/Connection;sqlLcom/sql/Sql_Mysql;sql_streLjava/sql/SQLException;sjava/sql/Connectionujava/lang/Throwablewjava/lang/StringBuildery  SELECT num,dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,note FROM db_param.tb_dev_param  WHERE dev_Id = 
v{ Y    }~com/battdata_rt/BattData_RT €L FBSDeviceId
v‚ ƒ„append(I)Ljava/lang/StringBuilder;
v† ‡ˆtoString()Ljava/lang/String;
PŠ ‹Œ sqlMysqlQuery((Ljava/lang/String;)Ljava/sql/ResultSet;Žalm_id ’‘java/sql/ResultSet “”getInt(Ljava/lang/String;)I    }– —m_BattAlarmParam    "™ š› alm_OnlineVol-Lcom/battalarm/BattAlarmParam$AlarmParamCell;    " ž› alm_GroupVol    "  ¡›alm_BattChargeCurr    "£ ¤›alm_BattDisChargeCurr    "¦ §›
alm_MonVol    "© ª›
alm_MonTmp    "¬ ­›
alm_MonRes    "¯ °› alm_ConnRes    "² ³›alm_DischargeMonVolµ alm_high_coe · ¸¹getFloat(Ljava/lang/String;)F    »½¼+com/battalarm/BattAlarmParam$AlarmParamCell ¾¿alm_HighFÁ alm_low_coe    »Ã Ä¿alm_LowÆalm_high_level    »È ÉLalm_High_LevelË alm_low_level    »Í ÎL alm_Low_LevelÐ alm_high_en Ò Ó]
getBoolean    »Õ Ö× alm_High_ENZÙ
alm_low_en    »Û Ü×
alm_Low_EN Þ ßànext()ZâINSERT INTO db_param.tb_dev_param (dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en) VALUES (ä,
væ ƒç-(Ljava/lang/String;)Ljava/lang/StringBuilder;ÐÙê,'Batt_Alarm_Type_OnlineVol', 
vì ƒí(F)Ljava/lang/StringBuilder;ï, 
vñ ƒò(Z)Ljava/lang/StringBuilder;ô),ö(ÐÚù,'Batt_Alarm_Type_GroupVol', ÐÛü#,'Batt_Alarm_Type_BattChargeCurr', ÐÜÿ&,'Batt_Alarm_Type_BattDisChargeCurr', ÐÝ,'Batt_Alarm_Type_MonVol', ÐÞ,'Batt_Alarm_Type_MonTmp', Ðß,'Batt_Alarm_Type_MonRes', Ðà ,'Batt_Alarm_Type_ConnRes', Ðá$,'Batt_Alarm_Type_DisChargeMonVol', );    java/lang/System outLjava/io/PrintStream;
java/io/PrintStream YprintlnbattdataLcom/battdata_rt/BattData_RT;resLjava/sql/ResultSet;flagparampm_id$java/lang/StringgetOrCreateBattAlarmParam'-tb_alarm_param is not exist, create it now...)java/util/ArrayList
(,£CREATE TABLE `tb_alarm_param` ( `num` INT NOT NULL AUTO_INCREMENT, `alm_id` INT NOT NULL DEFAULT 0, `alm_name` VARCHAR(50) NOT NULL DEFAULT ' ', `alm_high_coe` FLOAT NOT NULL DEFAULT 0, `alm_low_coe` FLOAT NOT NULL DEFAULT 0, `alm_high_level` INT NOT NULL DEFAULT 0, `alm_low_level` INT NOT NULL DEFAULT 0, `alm_high_en` BOOLEAN NOT NULL DEFAULT false, `alm_low_en` BOOLEAN NOT NULL DEFAULT false, PRIMARY KEY (`num`));
(. /0add(Ljava/lang/Object;)Z2áINSERT INTO tb_alarm_param (alm_id, alm_name, alm_high_coe, alm_low_coe, alm_high_level, alm_low_level, alm_high_en, alm_low_en) VALUES (119001, 'Batt_Alarm_Type_OnlineVol', 1.2, 0.8, 2, 2, FALSE, FALSE), (119002, 'Batt_Alarm_Type_GroupVol', 1.2, 0.8, 2, 2, TRUE, TRUE), (119003, 'Batt_Alarm_Type_BattChargeCurr', 3, 0, 3, 3, TRUE, FALSE), (119004, 'Batt_Alarm_Type_BattDisChargeCurr', 3, 0, 3, 3, TRUE, FALSE), (119005, 'Batt_Alarm_Type_MonVol', 1.2, 0.8, 2, 2, TRUE, TRUE), (119006, 'Batt_Alarm_Type_MonTmp', 1.5, 0.5, 2, 2, TRUE, TRUE), (119007, 'Batt_Alarm_Type_MonRes', 2, 0.5, 2, 2, TRUE, TRUE), (119008, 'Batt_Alarm_Type_ConnRes', 2, 0.5, 2, 2, TRUE, TRUE), (119009, 'Batt_Alarm_Type_DisChargeMonVol', 1.2, 0.8, 2, 2, FALSE, TRUE)
(4 56get(I)Ljava/lang/Object;
(8 9@size;SELECT * FROM tb_alarm_param    al_sqlstrLjava/util/ArrayList;nLocalVariableTypeTable)Ljava/util/ArrayList<Ljava/lang/String;>;B
`db_alarm`D0tb_battalarm_data is not exist, create it now...F›CREATE TABLE `tb_battalarm_data` ( `num` BIGINT NOT NULL AUTO_INCREMENT, `BattGroupId` INT NOT NULL DEFAULT 0, `MonNum` INT NOT NULL DEFAULT 0, `Record_Id` BIGINT NOT NULL DEFAULT 0, `alm_id` INT NOT NULL DEFAULT 0, `alm_signal_id` INT NOT NULL DEFAULT 0, `alm_level` INT NOT NULL DEFAULT 0, `alm_start_time` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', `alm_end_time` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', `alm_value` FLOAT NOT NULL DEFAULT 0, `alm_is_confirmed` BOOLEAN NOT NULL DEFAULT false, `alm_confirmed_time` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', `alm_cleared_type` INT NOT NULL DEFAULT 0, `alm_mon_Id` INT NOT NULL DEFAULT 0, `usr_Id` INT NOT NULL DEFAULT 0, INDEX index_battgroup_id (`BattGroupId`), INDEX index_Record_Id (`Record_Id`), INDEX index_alm_id (`alm_id`), INDEX index_alm_start_time (`alm_start_time`), INDEX index_alm_cleared_type (`alm_cleared_type`), PRIMARY KEY (`num`));H’SELECT DATA_TYPE FROM information_schema.columns WHERE table_schema='db_alarm' AND table_name='tb_battalarm_data' AND column_name='alm_is_cleared'JintL    DATA_TYPE N OP    getString&(Ljava/lang/String;)Ljava/lang/String;
#R Sˆ toLowerCase
#U V0equalsX\ALTER TABLE tb_battalarm_data CHANGE alm_is_cleared alm_cleared_type INT NOT NULL DEFAULT 0;ZAshow index from tb_battalarm_data where column_name='BattGroupId'\QALTER TABLE tb_battalarm_data ADD INDEX `index_battgroup_id` (`BattGroupId` ASC);^LALTER TABLE tb_battalarm_data ADD INDEX `index_Record_Id` (`Record_Id` ASC);`FALTER TABLE tb_battalarm_data ADD INDEX `index_alm_id` (`alm_id` ASC);bVALTER TABLE tb_battalarm_data ADD INDEX `index_alm_start_time` (`alm_start_time` ASC);dZALTER TABLE tb_battalarm_data ADD INDEX `index_alm_cleared_type` (`alm_cleared_type` ASC);fNALTER TABLE tb_battalarm_data ADD INDEX `index_alm_mon_Id` (`alm_mon_Id` ASC);"insertOrUpdateBattAlarmDataToTable5(Ljava/sql/Connection;Lcom/battalarm/BattAlarmData;)Vj    lnmcom/battalarm/BattAlarmData oLalm_cleared_typeqÞINSERT INTO tb_battalarm_data (BattGroupId, MonNum, Record_Id, alm_id, alm_signal_id, alm_level, alm_start_time, alm_end_time, alm_value, alm_is_confirmed, alm_confirmed_time, alm_cleared_type, usr_Id,alm_mon_Id)  VALUES (    ls tL battgroup_id    lv wLmon_num    ly z{    record_idJ
v} ƒ~(J)Ljava/lang/StringBuilder;    l€ ŽL    l‚ ƒL alm_signal_id    l… †Lalm_signal_levelˆ'    lŠ ‹Œalm_start_timeLjava/util/Date;Žyyyy-MM-dd HH:mm:ss
’‘ com/base/Com “”getDateTimeFormat6(Ljava/util/Date;Ljava/lang/String;)Ljava/lang/String;–',     l˜ ™Œ alm_end_time    l› œ¿    alm_value    lž Ÿ×alm_is_confirmed¡java/util/Date
     l¤ ¥Lusr_id§)©- UPDATE tb_battalarm_data SET  alm_end_time='« alm_cleared_type=­ WHERE Record_Id=alm_dataLcom/battalarm/BattAlarmData;getBattRtDataFromRamDB²>SELECT * FROM `db_ram_db`.`tb_batt_rtstate` WHERE BattGroupId=    }´ µL BattGroupId    }· ¸¹TestDataLcom/battdata_rt/BattStatData;»
online_vol    ½¿¾com/battdata_rt/BattStatData À¿    onlineVol    group_vol    ½Ä Å¿groupVolÇ
group_curr    ½É Ê¿testCurrÌ
batt_state    ½Î ÏР   battStateBÒ rec_datetime Ô ÕÖ getTimestamp((Ljava/lang/String;)Ljava/sql/Timestamp;    ½Ø ÙŒ
recordTimeÛ=SELECT * FROM `db_ram_db`.`tb_batt_rtdata` WHERE BattGroupId=Ý ORDER BY mon_num ASCw    }à áLMonCount    }ã ä=    al_MonVolæcom/battdata_rt/MonVolDataèmon_vol    åê ë¿monVolímon_tmp    åï ð¿monTmpòmon_res    åô õ¿monResrt_data
batt_indexmdLcom/battdata_rt/MonVolData;updateBattAlarm_Time(Lcom/sql/MysqlConnPool;)Výweb_siteÿ,UPDATE tb_process_survey SET ProcessTime = '.' WHERE ProcessName = 'BMS_FBSDEV_ALARM_BATT' !AND ServerName='BMS_FBSDEV_ALARM'    conn_poolclearHistoryAlarm_BattmUPDATE tb_battalarm_data SET alm_cleared_type = 1 WHERE alm_cleared_type = 0 AND alm_id NOT IN(119010,119011)updateBattAlarm_StartTime,(Lcom/sql/MysqlConnPool;Ljava/lang/String;)V 2UPDATE tb_process_survey SET Process_starttime = ' ,ProcessVersion = '- WHERE ProcessName = 'BMS_FBSDEV_ALARM_BATT' versionrunV2.203
     
 ˆgetName
# valueOf&(Ljava/lang/Object;)Ljava/lang/String; - BattAlarm_Thread Started at 
N  !@getBattAlarmClearedDelay
}# $%initAlarmParam"(ILcom/battalarm/BattAlarmParam;)V
' úûd
+ ,-sleep(J)V
/ °<
}1 23 makeAlarmData()Ljava/util/ArrayList;5电池告警个数:
7 gh
(9 :clearè
>f?java/lang/InterruptedException
AfBjava/lang/Exceptional_almcnt Ljava/lang/InterruptedException;e1Ljava/lang/Exception;4Ljava/util/ArrayList<Lcom/battalarm/BattAlarmData;>;
SourceFileBattAlarm_Thread.java InnerClassesAlarmParamCell!
   ýb*·*µ*+µ*,µ *»"Y·$µ%*-µ'**´ ¶)¶/6§**´ ¶)*´'¶3¶9„*´'¶=¡ÿà*´ ¶)¸A±D2      !"##%.&4(H&W/a0E4bFGbHbIbJ1&KLMÿ4N*412+I»PY+·RM,T¶V,¶Zš+^N,-¶`§ N-¶c,Æ,¶h§:,Æ,¶h¿,Æ,¶h±     #d    (3DB7    9:;K N$O(Q,R3P5Q9R=T@QDRHUE4IFGIkl    @mno$pqM>ÿ#rPdOtÿ    rPtÿrP;<Ä
R»PY+·RN6»vYx·z,´|¶¶…:-¶‰:§¹6ªŸÐÙÐá3?KWco{‡“,´•´˜:§f,´•´œ:§Z,´•´Ÿ:§N,´•´¢:§B,´•´¥:§6,´•´¨:§*,´•´«:§,´•´®:§,´•´±:§:ÆW´¹¶µºÀ¹¶µÂŹµÇʹµÌϹѵÔعѵÚ6¹Ýšþîš»vYá·z,´|¶ã¶å趁é¶å,´•´˜´º¶ëî¶å,´•´˜´Â¶ëî¶å,´•´˜´Ç¶î¶å,´•´˜´Ì¶î¶å,´•´˜´Ô¶ðî¶å,´•´˜´Ú¶ðó¶åõ¶å,´|¶ã¶å÷¶ø¶å,´•´œ´º¶ëî¶å,´•´œ´Â¶ëî¶å,´•´œ´Ç¶î¶å,´•´œ´Ì¶î¶å,´•´œ´Ô¶ðî¶å,´•´œ´Ú¶ðó¶åõ¶å,´|¶ã¶åú¶û¶å,´•´Ÿ´º¶ëî¶å,´•´Ÿ´Â¶ëî¶å,´•´Ÿ´Ç¶î¶å,´•´Ÿ´Ì¶î¶å,´•´Ÿ´Ô¶ðî¶å,´•´Ÿ´Ú¶ðó¶åõ¶å,´|¶ã¶åý¶þ¶å,´•´¢´º¶ëî¶å,´•´¢´Â¶ëî¶å,´•´¢´Ç¶î¶å,´•´¢´Ì¶î¶å,´•´¢´Ô¶ðî¶å,´•´¢´Ú¶ðó¶åõ¶å,´|¶ã¶å¶¶å,´•´¥´º¶ëî¶å,´•´¥´Â¶ëî¶å,´•´¥´Ç¶î¶å,´•´¥´Ì¶î¶å,´•´¥´Ô¶ðî¶å,´•´¥´Ú¶ðó¶åõ¶å,´|¶ã¶å¶¶å,´•´¨´º¶ëî¶å,´•´¨´Â¶ëî¶å,´•´¨´Ç¶î¶å,´•´¨´Ì¶î¶å,´•´¨´Ô¶ðî¶å,´•´¨´Ú¶ðó¶åõ¶å,´|¶ã¶å¶¶å,´•´«´º¶ëî¶å,´•´«´Â¶ëî¶å,´•´«´Ç¶î¶å,´•´«´Ì¶î¶å,´•´«´Ô¶ðî¶å,´•´«´Ú¶ðó¶åõ¶å,´|¶ã¶å    ¶
¶å,´•´®´º¶ëî¶å,´•´®´Â¶ëî¶å,´•´®´Ç¶î¶å,´•´®´Ì¶î¶å,´•´®´Ô¶ðî¶å,´•´®´Ú¶ðó¶åõ¶å,´|¶ã¶å ¶ ¶å,´•´±´º¶ëî¶å,´•´±´Â¶ëî¶å,´•´±´Ç¶î¶å,´•´±´Ì¶î¶å,´•´±´Ô¶ðî¶å,´•´±´Ú¶ð¶å¶…:²¶-¶`§":¶c-Æ-¶h§:    -Æ-¶h    ¿-Æ-¶h±    '*d    1<DÖ5^    b cec!f)i,j7klmxn„opœq¨r´sÀtÌuØvÛxàzî{ü|
}~&47iAƒF„O‡шX‰ߊf‹ïŒxŽŠ„!‘'“,”1–5—<•>–B—F™I–M—QšEÀRFGRklR    Imn!o)þ  ×u!›!›!›™!›¥!›±!›½!›É!›Õ!›Û\!›7"L,pqM®ÿ,r}P#ÿ?    r}P# ÿ    r}P#»ûXùÿòr}PdQtÿ    
r}Ptÿr}P%2À¡»PY+·RM,T¶V,¶ZšL²&¶»(Y·*:+N-¶-W1N-¶-W6§,¶3À#¶`„¶7¡ÿè:N,-¶‰:§ ¹6ª ÐÙÐá4@LXdp|ˆ”*´%´˜:§f*´%´œ:§Z*´%´Ÿ:§N*´%´¢:§B*´%´¥:§6*´%´¨:§**´%´«:§*´%´®:§*´%´±:§:ÆW´¹¶µºÀ¹¶µÂŹµÇʹµÌϹѵÔعѵڹݚþð§:¶c,¶h§:,¶h¿,¶h±    ‚…d    Œ“D²,£    ¨©«!¬*®.¹5»9Ñ@ÓFÔTÓa×eØlÛoÝzÞ°à¼áÈâÔãàäìåøæçèéë$í2î@ïNð\ñjòxÛ‚õ…ö‡÷Œû“ú•û™ýœû EÊ¡FG¡kl    ˜mn.3oeol*7<=C>Lzþ"L¹!›Å!›Ñ!›Ý!›é!›õ!›!› !›!›Y!›‡pq? *7<@McÿFrP#(ÿ    rPý #ü@ ü»ùXÿ rPdMt    C2ž®»PY*·RL+A¶V+ ¶Zš²C¶EM+,¶`+G¶‰M,¹Ý™I,K¹M¶Q¶Tš
+W¶`+Y¶‰M,¹ÝšC+[¶`+]¶`+_¶`+a¶`+c¶`+e¶`§M,¶c+¶h§N+¶h-¿+¶h±    “–d    ›¢Dj    "&2+539<:Q;XA`BiDpEwF~G…HŒI“L—M›O¢N£O§P©O­QE4®kl    ¥mn&o3`—pqM$ü+Pü,ÿ=rPdKtghœr»PY+·RN-A¶Vi:- ¶Z™R,´kšï»vYp·z,´r¶î¶å,´u¶î¶å,´x¶|î¶å,´¶î¶å,´¶î¶å,´„¶î¶å‡¶å,´‰¸¶å•¶å‡¶å,´—¸¶å•¶å,´š¶ëî¶å,´¶ðî¶å‡¶å» Y·¢¸¶å•¶å,´k¶î¶å,´£¶î¶å,´r¶,´u¶¦¶å¶…:§?»vY¨·z,´—¸¶å•¶åª¶å,´k¶¬¶å,´x¶|¶…:-¶`§:¶c-¶h§:-¶h¿-¶h±    SVd    ]dD–%Z    \]^`%c/u;vGwSx_ykzw{|©}µ~ÁÝ€éõ‚ƒ    c„†ˆ.‰;ŠH†MŒSŽX]‘df‘j“m‘q”E>rFGrklr®¯    imn>oXpqM(ýP#;ÿrlPdMt°<G&»PY+·RN-»vY±·z,´³¶¶…¶‰:¹Ý™Y,´¶º¹¶µ¼,´¶Á¹¶µÃ,´¶ƹ¶µÈ,´¶˹‘µÍ,´¶ѹÓµ×-»vYÚ·z,´³¶ܶ嶅¶‰:§ZÞ¹d6›G,´ߢ>,´â¶3Àå:ç¹¶µéì¹¶µîñ¹¶µó¹Ýšÿ¢§:¶c-¶h§:-¶h¿-¶h±    
d    Dv˜    š›š#œ->žOŸ` r¡ƒ¤Ž¥ž¤£¦¦§´¨Â©Ðªß«î¬ý¦° ²´³´µ!´%¶ER&FG&kl&ö    mn#ä´I÷LÐ-øù pqM+ýƒP"ûVÿ r}PdMt    úû ]»PY*¶)·RL+ü¶V»vYþ·z» Y·¢¸¶å¶å¶å¶…M+,¶`§M,¶c+¶h§N+¶h-¿+¶h± BEd JQD>º ¼½-¾3¿9½=ÁBÂFÃJÅQÄRÅVÆXÅ\ÇE*] Qmn=oFpqMÿE*PdKt    ûÙ7»PY*¶)·RL+A¶VM+,¶`§M,¶c+¶h§N+¶h-¿+¶h± d $+D2 Ë ÍÎÒÓ Ô$Ö+Õ,Ö0×2Ö6ØE*7 +mno pqMÿ*PdKt        8u»PY*¶)·RM,ü¶V»vY
·z» Y·¢¸¶å‡¶å ¶å+¶å‡¶å¶å¶å¶…N,-¶`§N-¶c,¶h§:,¶h¿,¶h± X[d `gDFÜ Þßà3áCâIãOßSåXæ\ç`égèiémêpétëE4uu imnSo\pqMÿ[*#PdKt1*´ ¸²»vY*¶¸·z¶å» Y·¢¸¶å¶…¶<§#*´'¶3*´¶*´'¶3´•¶"„*´'¶=¡ÿØ<§xdpš*´ ¸&(¸**´'¶3M**´ ¶),·.,¶0N²»vY4·z-¶7¶¶…¶6§**´ ¶)-¶3Àl¶6„-¶7¡ÿã-¶8„*´'¶=¡ÿƒ;¸*§ÿuL+¶=§ÿmL+¶@±gòõ>ýýADnù
û!ü4û7þ<Yþg lsz€‰•š´ºÎÚÞ ìòöúý þ!#ERFG9.>Liƒ>L‰UöšDC=·#DLöpEþFG? šDCHM.
ü<ú
üþ9}(øÿ>GAIJK
»"L