From 3c1a70a11f5e55791d0ead0b383b30b90c0f9576 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 16 Sep 2023 22:29:02 +0100 Subject: [PATCH] Live DTMF decoder option + possibly fixed AM demodulation --- Makefile | 4 + README.md | 1 + app/app.c | 28 ++-- app/dtmf.c | 33 +---- app/dtmf.h | 44 +++--- app/menu.c | 2 +- firmware | Bin 164528 -> 164552 bytes firmware.bin | Bin 48472 -> 48532 bytes firmware.packed.bin | Bin 48490 -> 48550 bytes functions.c | 10 +- misc.c | 6 +- misc.h | 10 +- radio.c | 1 + ui/main.c | 319 +++++++++++++++++++------------------------- 14 files changed, 206 insertions(+), 252 deletions(-) diff --git a/Makefile b/Makefile index d022d7d..4935f5e 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 ENABLE_MAIN_KEY_HOLD := 1 ENABLE_BOOT_BEEPS := 1 ENABLE_COMPANDER := 1 +ENABLE_DTMF_DECODER := 1 #ENABLE_SINGLE_VFO_CHAN := 1 #ENABLE_BAND_SCOPE := 1 @@ -188,6 +189,9 @@ endif ifeq ($(ENABLE_COMPANDER),1) CFLAGS += -DENABLE_COMPANDER endif +ifeq ($(ENABLE_DTMF_DECODER),1) + CFLAGS += -DENABLE_DTMF_DECODER +endif ifeq ($(ENABLE_SINGLE_VFO_CHAN),1) CFLAGS += -DENABLE_SINGLE_VFO_CHAN endif diff --git a/README.md b/README.md index 7da9519..67be230 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 standard CTCSS tail phase shift rather ENABLE_MAIN_KEY_HOLD := 1 initial F-key press not needed, instead hold down keys 0-9 ENABLE_BOOT_BEEPS := 1 give user audio feedback on volume knob position at boot-up ENABLE_COMPANDER := 1 compander option - setting not yet saved +ENABLE_DTMF_DECODER := 1 enable real time on-screen DTMF decoder #ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented - single VFO on display when possible #ENABLE_BAND_SCOPE := 1 not yet implemented - spectrum/pan-adapter ``` diff --git a/app/app.c b/app/app.c index 104fb9c..bda133e 100644 --- a/app/app.c +++ b/app/app.c @@ -441,7 +441,6 @@ void APP_StartListening(FUNCTION_Type_t Function) if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) { gRxVfoIsActive = true; - gDualWatchCountdown = dual_watch_count_after_2_10ms; gScheduleDualWatch = false; } @@ -449,11 +448,20 @@ void APP_StartListening(FUNCTION_Type_t Function) if (gRxVfo->IsAM) { BK4819_WriteRegister(BK4819_REG_48, 0xB3A8); + + // PGA + MIXER + LNA + LNA_SHORT + BK4819_WriteRegister(BK4819_REG_13, 3u | (3u << 3) | (2u << 5) | (3u << 8)); + gNeverUsed = 0; } else + { BK4819_WriteRegister(BK4819_REG_48, 0xB000 | (gEeprom.VOLUME_GAIN << 4) | (gEeprom.DAC_GAIN << 0)); - + + // PGA + MIXER + LNA + LNA_SHORT + BK4819_WriteRegister(BK4819_REG_13, 0x03BE); + } + #ifdef ENABLE_VOICE if (gVoiceWriteIndex == 0) #endif @@ -640,20 +648,24 @@ void APP_CheckRadioInterrupts(void) if (interrupt_status_bits & BK4819_REG_02_DTMF_5TONE_FOUND) { gDTMF_RequestPending = true; - gDTMF_RecvTimeout = 5; + gDTMF_RecvTimeout = DTMF_RX_timeout_500ms; - if (gDTMF_WriteIndex > 15) - { + if (gDTMF_WriteIndex >= ARRAY_SIZE(gDTMF_Received)) + { // shift the RX buffer down one unsigned int i; - for (i = 0; i < (sizeof(gDTMF_Received) - 1); i++) + for (i = 0; i < (ARRAY_SIZE(gDTMF_Received) - 1); i++) gDTMF_Received[i] = gDTMF_Received[i + 1]; - gDTMF_WriteIndex = 15; + gDTMF_WriteIndex--; } + // save new RX'ed character gDTMF_Received[gDTMF_WriteIndex++] = DTMF_GetCharacter(BK4819_GetDTMF_5TONE_Code()); if (gCurrentFunction == FUNCTION_RECEIVE) + { DTMF_HandleRequest(); + gUpdateDisplay = true; + } } if (interrupt_status_bits & BK4819_REG_02_CxCSS_TAIL) @@ -1792,7 +1804,7 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) else { if (Key != KEY_PTT) - gVoltageMenuCountdown = menu_timeout_10ms; + gVoltageMenuCountdown = menu_timeout_500ms; BACKLIGHT_TurnOn(); diff --git a/app/dtmf.c b/app/dtmf.c index 8aba4f4..0008d76 100644 --- a/app/dtmf.c +++ b/app/dtmf.c @@ -115,35 +115,10 @@ bool DTMF_FindContact(const char *pContact, char *pResult) return false; } -char DTMF_GetCharacter(uint8_t Code) +char DTMF_GetCharacter(const uint8_t code) { - switch (Code) - { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - return '0' + (char)Code; - case 10: - return 'A'; - case 11: - return 'B'; - case 12: - return 'C'; - case 13: - return 'D'; - case 14: - return '*'; - case 15: - return '#'; - } - return 0xFF; + const char list[] = "0123456789ABCD*#"; + return (code < ARRAY_SIZE(list)) ? list[code] : 0xFF; } bool DTMF_CompareMessage(const char *pMsg, const char *pTemplate, uint8_t Size, bool bCheckGroup) @@ -190,7 +165,7 @@ void DTMF_Append(char Code) void DTMF_HandleRequest(void) { - char String[20]; + char String[20]; uint8_t Offset; if (!gDTMF_RequestPending) diff --git a/app/dtmf.h b/app/dtmf.h index 02c1a6c..4b2f6a2 100644 --- a/app/dtmf.h +++ b/app/dtmf.h @@ -53,33 +53,33 @@ enum DTMF_CallMode_t { typedef enum DTMF_CallMode_t DTMF_CallMode_t; -extern char gDTMF_String[15]; -extern char gDTMF_InputBox[15]; -extern char gDTMF_Received[16]; -extern bool gIsDtmfContactValid; -extern char gDTMF_ID[4]; -extern char gDTMF_Caller[4]; -extern char gDTMF_Callee[4]; -extern DTMF_State_t gDTMF_State; -extern bool gDTMF_DecodeRing; -extern uint8_t gDTMF_DecodeRingCountdown; -extern uint8_t gDTMFChosenContact; -extern uint8_t gDTMF_WriteIndex; -extern uint8_t gDTMF_PreviousIndex; -extern uint8_t gDTMF_AUTO_RESET_TIME; -extern uint8_t gDTMF_InputIndex; -extern bool gDTMF_InputMode; -extern uint8_t gDTMF_RecvTimeout; -extern DTMF_CallState_t gDTMF_CallState; +extern char gDTMF_String[15]; +extern char gDTMF_InputBox[15]; +extern char gDTMF_Received[16]; +extern bool gIsDtmfContactValid; +extern char gDTMF_ID[4]; +extern char gDTMF_Caller[4]; +extern char gDTMF_Callee[4]; +extern DTMF_State_t gDTMF_State; +extern bool gDTMF_DecodeRing; +extern uint8_t gDTMF_DecodeRingCountdown; +extern uint8_t gDTMFChosenContact; +extern uint8_t gDTMF_WriteIndex; +extern uint8_t gDTMF_PreviousIndex; +extern uint8_t gDTMF_AUTO_RESET_TIME; +extern uint8_t gDTMF_InputIndex; +extern bool gDTMF_InputMode; +extern uint8_t gDTMF_RecvTimeout; +extern DTMF_CallState_t gDTMF_CallState; extern DTMF_ReplyState_t gDTMF_ReplyState; -extern DTMF_CallMode_t gDTMF_CallMode; -extern bool gDTMF_IsTx; -extern uint8_t gDTMF_TxStopCountdown; +extern DTMF_CallMode_t gDTMF_CallMode; +extern bool gDTMF_IsTx; +extern uint8_t gDTMF_TxStopCountdown; bool DTMF_ValidateCodes(char *pCode, uint8_t Size); bool DTMF_GetContact(const int Index, char *pContact); bool DTMF_FindContact(const char *pContact, char *pResult); -char DTMF_GetCharacter(uint8_t Code); +char DTMF_GetCharacter(const uint8_t code); bool DTMF_CompareMessage(const char *pDTMF, const char *pTemplate, uint8_t Size, bool bFlag); bool DTMF_CheckGroupCall(const char *pDTMF, uint32_t Size); void DTMF_Append(char Code); diff --git a/app/menu.c b/app/menu.c index ee53fd3..08febd9 100644 --- a/app/menu.c +++ b/app/menu.c @@ -1444,5 +1444,5 @@ void MENU_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) } if (gScreenToDisplay == DISPLAY_MENU && gMenuCursor == MENU_VOL) - gVoltageMenuCountdown = menu_timeout_10ms; + gVoltageMenuCountdown = menu_timeout_500ms; } diff --git a/firmware b/firmware index 8f81a49bf26dd9d8d06835c66c7bd4a8e81dc2a7..84b14a161292554c2f129c71d9e0cef6fb428a5d 100644 GIT binary patch delta 19250 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 Vws<|B&#-Ol1s#2k9bGR({~zV9Fth*w diff --git a/firmware.bin b/firmware.bin index 0b7228f906e7a054e101db31e784135d68913c54..fbf2673f31b2c9a6189698a04dad0f2100203d95 100644 GIT binary patch delta 9186 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

X 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index a43b82ff42c7e330b02a92ff913a45356ae283b4..0b0b575bfd04a825cb6d76cd23acc9fba87a792c 100644 GIT binary patch delta 38623 zcmXtggRPDy1TnZcO&5lMHG-2Dcv2T83F?Yq!pw)r7Rk$=kWRd zp8w#y-aFTQ)qS@25543PJwXD(m-u`EtC#^lJ{SH7A`97qTSJT?Rt@ctUI! zI)uc+&oKAv5B<_I=lms4cZUb*4e``J@gSD)P?jUQ^xEF!SM+X|{ZcF;_H{F! z7o9bp)Y}hoaA@J$?9U-D;PLFdIJnEJ?vlAC@LqON$Qk^a{V_xk&dXs75r-#osKWS^ zOgIqVkfEV{HzmQG9)|uHL^ZW^E!QeHAz4{kJpO^n-9sUcSJW{WEw--drU{<#`k0>$ z2Pm#&)*(4OTePk(K~p;r9?rKd_vT+~U$z}TvPeYE;@R7UKHUENmgs=v;Xfg9IaQ$@ zmGDy$ot)lsks9~SB1ANzSwMHEq#owXy5vOjz7XjTr8w^lb!qxxit&(bapV-DZ5x^? zGKXI^@6w2}FhK<;Mb+1*aF8!J**ZQQ5SzI?BfzZGF=l+44^Lem5~DY&B!4rWU~}-jV-2?AV_(@wEt!hnL{OBQC1fb!*}%3&^)x30NT<4+f>%K@+Bo{nC{$FE(M>bT6Lq+&n=n)RNf>`3EITQCj-I1*XeTSKnaua_u5> z29^0=z6_Gtwvw2Sj>OpnS}Da`Dhkhi)tF4E;eB$RiCG=D;fD2dh$FGlogq`9bb3$> z@wPTdUZ$DNj41U9O5!yd?(R1rrmI|~H~_la?YY>^OG>XjD;bqMLP&w9ntOgi4<3)8-BTi248 zKu)?{hdw??n4lFZ5puhdBnJ?QV|4EAk9Xb6(22FAf2o_7xeOz;I=p%_DYWEconZL+1A-|$o)*5J^koD#=RAL(@RoJete~ywau#T0< zwvWfR7vYyEqMx=za8H!vp{(n2?}mg-wUmn}w}}ZXPrg%Uqb8jDF|P?;SS1TZKr_V4 z#8ywj^T>g>lKAi9E7c%X&#wqtshXq`#lwTT(8ntabxKzF^ytcZv+#CjVOk6tu36Vt zlj}NI2(c4q23E32gy0X#zLLoY?UN(mC(sKBil`riSPThq@JJQyb4#2)qIfBT6v#ZI zd1(a8Lo}x8?v=bpuV~cON<2)6+lW8AiD>d4^%5n%irqQBe{|t6EIB7wouAcqq;E1w zA{{lfQh}?v! zMXG!fwF76TwNjcHBm!xL7M;IbWROo1PQ58%FYpjukS}kuKL$~cg?~)@Q}_lmZtEtp zMQg-oo%pm8^>xxef#DCUu|KV7O;VoX(X)Csj)iFi;!@o0i&~XX#Z>S!vN1HOBpRH~ zFAh^aEUD5B&3cGJoAr&$w|IqR?_{#b*;h` zyR%>V#&LNUdJINXrJ#L2;_v@0p!QGXSryz}^PkF-*bA0(+V}SB>x5B61^Mq}vTNdr z8tWq@^C1ST<>YMcIdRN&X#;*iD*Cs{mN4pt~VuEj?Z7^n(>e4@R-ko*wH)e40xFlyISpYJC?6jAEU0nN(jeiX~AJMKnS`?z7w3 z_qSWs<>CSu`jNnLaMn#swWRbjxJ~T^fCI0D(9slnRXph7mvvXmGuITw@*tn$q zN6zm|S6z>|%tI{YD7b?QJ-%30heAe=a93`0R1VQfXfXmp_ej#(c|PDSX#D*2tlMw4 z@Ljle|HVVvZKnwKE9!gOxmAq%IeF3z9-sAfdXX^kYC{2TBa;j{JNv`yqKU>9WpIGZ zxc&bQpgwx86qehlbgdWi_ux=So0&`qr{PG3;9G>XuVMxu@z zD(E=G;u97Ng;#N5yQb1(OA44*vE#=X(MoNdBr-bjxsq^3lDL8tcOJ5QY{uNt^i3^c z&k4brDw^YK2K@-NuamI4SGnN?YC6xoV2|hCmoZ%t@RVUa>lIu%60c?DpOe&oT9OIT z_$!kpo7-vBfOv9FRUDw;)V?5NzuNlrKN!-S+Lkj=*pKER$Bf?Z!({IU!5OuWW%wUg zda?HGOmC)TC!js25H<{3xiimA4>^zLvz#eX#S zc5--Gf~wj{3kIfO+dlhQx^FD012ywCZCBTpvoj)C?n!>nypU!VezSxf(G~0(cZ|uW zJ&^uA0Pfe`v;4kXQ@||*f4198{*mcstFEjmK4z@gmGX3DKM*8qQ)re?|4)#(IuI@x z13{u~p*Uy`P~h}`f<%dL&3((>zW)Mn0qiM&feJ|u&ICY#D}dplZ8*BfjR~#+Afs78 zMjukOBg3S55t27;Umht9XZ}^a34V-gPs{(jgw}0TlAYeV8cB_Up)b~YQhy=N!HKXm)eZwN zECOsO2@Y`YjtzY@M&D+sLPIeyrz>bquLF`^scKEXrWLV}M41=3Qu#o24-l$01YX_S z!aZWs#h%Y&YXkDp^g5nsoyhc+(~vU?N8Vk+zLH3CVKW8)*7MKM zapA(kddvH-&P0)LCBi(&L%!jK4RA?X~{yV@I+LX*1$lwuw zFEhXK30f@?h939so=8j$oeiSEW_^7yN~iA=qfDklJVWZ)kLUWBY-f^MEFn3tycbB1 z@ppk6>68hNXkJ>DA(}BAle5G4MdBoE?_{|H`BGGBsgCg6Jjq4vYTKyzg?+CiI>+0m z!f#6z52fqf43(kL=@JP6nQD5AAHN6dK49%7gFhhpQ5z7tOOn`*$nnOh6K#x~U{f5* z2&ecb$4=C7Ox5G_dwI=`lKv^IB9gQ&dEC#F0{Nx6pRTYx9??QC_N`<p|%wb({-e&A`vP=sX1^tlheDQ4|H|EV9&J_+b8v8m@nO*C@@@F2!v-LN$bz2f(mf~J5P+d8V8f*s)0IzwCRCk7vn*WIW0ez1Q*8xo z*h0L%TMy>I?uAS$t|3wL+ir;>e4aITn3Tqo8jEamg`{6E#EKkkzgAY`id9@a<=(3a z=VIg~`0ozbQ($;uT3cLti+_Xa47~jIN?+hlJN2DaO*WOqctc&7m+Dq0!;;_!N5oXN zz)_7W&(rHqF>0{?Bd?J9}-4v5I){8z$vI2HXgJ0BiB4x7uKV^_Y0OIE@v+! z9s9BCtXNB|eJ5#|T{k=}Gx;&)#B|tUBKn81_JtU8x&ABvE4!S3o*ZP@Z}|Io4C^D+ zXs3T6m@bn{Df&<$=26k!4YDeUA@DyRr|hRq-{G^4s^Kv5KkAz z=%7m#3sw-UefY81bQwn0UmUed zh(+#3pda~YORD@k-n!Z(otTlgT799M=GXSG4yJj=ZeZHzZu=TE9`s|b8B`!f zcLzI(V_0up7cuJSFI@R~oThEG?x*T~@qnk1O?sos7#!2_`~(YO8ir5!ZR#IJ;(Q{Q z?L#BOG*fDH1J0=Nj*Lvc4zv7bMJWOlQ~(ro1AFcU*s!p6eQ*ZAP#!;`*=LU^6;}u* z@%jLsj!yZ*VM=@!E`|8zEF&+NdWOdBt+PJUS8;wFInT0WH0#RVTAd zXi9u7Jj8X3Ker04oYD*%g(tbM@mFH^Dig-Z7=2AB;$@9nKMnh2a6o-AEKrkxC7># zHB6VS^m#ObuQ?(FQ;+SRihZmFxC4CvhTqH-2ibulk~M=7HLrnLJO*Gmb_c_t=G*_T zh|rBqwQ1AoM7V%4u>hm^_ariO9gJe^WG#s^0+Q3mBFBU`z?eMF;xH@&8BteSAf*Pl z1I=~TtBu;0gtOM)O$5dgD-FsUpH*e*@%`RQ)pA*+k3k4*P)g zFPb|45<<5FBj%=MsKW0rT*E>DALmjQjp16X*$H1cL`jsfBdzG+X~dy5nkg>)Ut6`Q_-#p;tH_2AGx704@Q9g5 z&%Hks#)9lx+3zo(In6RXrq$YPNeE)1D>KBLwH`HnkQ6O zrSrC^Tm>`{(g0JoSDPX2I3reuK014cb!Q9;+8ev9dVq+;a$yl6QHy(8gH8z!P>bBk9>}ST z-ZAMgR3;AV-Rz=8{XLC5%*J^Mydg4Hv$=I70gw@FQZKhi=@3nZoEz!zKtLGm65k_%wZQNW(lx>{XY0YMTdJ6(AUjEM{w#kpVgHd`OmqQvrMd0Wc<%0EX)zA7BT* zfD*tE55SNR!0-yd5EH;q2LzRB0EWUKsucu5B?>4azI`>bk22GhHQ)deuJ>T=8-^#R zpVL$eSn2C4y}g=;*kJm3_2F8#&X2!zY>~9~Q=k6DUxiObZohw(l#X zM&zDSI*VO0W#4=7K2XJ(4fn~({X+Ef4rPw^1qM1hirZ#~U@eK<&2I^OUt@S2aJ<_2 zAtLciw^^o9q*6BK21d;S6WKgP^d6Y!UeV?JBV7fA>8R0K3w^fwK$p(_+|v|;|BiR$sISdt z^%#+_EE|`jqImN1y`MqOz1NO$!}Qhfw`OquW1EgF_h9-=V_N#pUE_u4nTI%(apm8( z5WXJkYP%~YtaQUjW2bD*sG9uVB0_WnrfW*3AkhBp6Tusd?jh?KQ9YXbR5^*fcEW`W zrQ-vsIZH?pca)8hsdhNQPl=a45XeFKt&|6WIWOYZN%o`987Z+D6_b{7~=#jA< zlDnj|D{Y9*$dK;#N}6v5N!svbG0qb)~%4={(WyL#0T^#gulqd9u4NDqznt~|NQy3%6^aT8_j1{cRAss!Poy;Gw1Wolrcuvy%x*n zEEWSCC1^$oA#sk~Tl-!$D~>**@v<1X_Y%cP)ygfcGD-`sDh)BFO%o~X5=xbtzu%}8 z0WLV$OI4l(qO=LN2Nme`Qyf-~V!pO@omxBHGX`w<8eBpT1Ff0wCz-z<`{Y|?$5VG( zd#T&Dt{Zn%`MEa=ez0h%1pUIri<{`fPJz z$vtUwM=(N#&GohJx8wI)Cv2M49!jRNbmBEqV*co?NmbZ>$Jh|@n8Js01Fe*Tws0o8 zt`QAn#o5aG;10Y_Xbo^CUy16h))n%bgeQMmyD_s(kd1$2%-14xT-Bwiv(9AUpA>CH zaTipoRmWFPmp@s#O{15@P_2VEcvCMK@~Sz&2p8@q(KrwU+y7)zC4n~^0M@90cg=ko zYTr)+B9gdAo?<DcON(0pi*f0^ zNL?`}JHwUxm04PG-b@FK{a^mvbN&~m#y!CiKw9D+lCv~buSBc!-%sG-WhC^d`XqH9 z&N{4$i*8;~rs+0^7yAIl%zN)^%h38>k4;fdgLFMX0BNh&kJs;PiQTt6`qS+nA;-&JfKMZ7k$h_(H5HNmdIha z4`8V6v;dM)O*w=z6yIZ5qiWu<4;T~uQnf$iH8o|Lp}VBHFl3$lKdw5FpJ79MWaWr( zwd;4SSc|9Yl6urwhmsS~b^{1%!_RayGk#tq&27T*-eVmO5)txMtY3!>UJT>)IskoxyO zZ}<*)!=UfA2_?KHKoz$G7{+w+{D%TwTeZKu+FYS5IQby1Kcm!O4_z)Gj+by9^shSl z?*ME9HlQ!)`hu9+fl-!#pzt}6#p~-kQ31v8yR63?d&+NaX9%m8x+qINAXE?!|-P6zq|6;0T=$~(qFx_fg~+75i(B@oiq zNjV@$F1$SYB#N53*4#^gDpmslg&@cYOK5U%?nZGrK*39J2QB~|s{=ZA26`YI+yMwc zK@Ol}3_!>C038PaHY5RbOa$n73(#>hV8byGP_zIxybCDWcJ*Ma8~kaiN(-hfUDP;r zUtTHlQ<5kuK=WzfV;?mWa`Rp0omoOYJb4%$`-sAyq`o@`OOH|-QrDsd=y)8^aY4#r zQnE)tC+Li7V`_Z3h;b@uHmw7 z66P~kYdgDPP8vrls@2ctL)(nE$w`RwaW zHRtYzqI{W`KR+#NOi}8(1&K7lh$4WK!)l-xt8dbTycXWqjM!a`cnpW8OX3O|GO(rl zw&M3kJV#e<3-r+b@IhjJudL^%8P_uquO zj;;G}cVj0jr9Ol9_M1r(@Y0HuB%;QFJ7xv$cnXx)%AhyA`w6OmBBGu^vxFf*Lh%dy z1XXT?3-ur*8U&M25QIdOK$7u+gn}MOGSzv7ic07FE|$e9`yx=CQU@C6AwJ;`M!1A? zEc2M4xe(-$zv{fHDpn7sRplRomeX7wTVL2sb}vWQ3TMO1<$9*5%tKY=8f1bhV=&b% zdc^o$jgEy@V_nc;@t+@6@;=!k<#g=)9ifYU*oyKk?WjW<^}CVnc%AL``UoxUU~Ply zbQX+ai*iqD0gx5H0++A}TtauC3E9s~a8p4_<^e9DFXz6FF9uUhA^#drK!&r66x#E* zOjk*!Z+oSRx2jq`ArQA>31p3Lozd)2OvzFSH%YLDX9aM5U=CRU3ZOJa&(?{@TVT6g zkdG=}mQ<;0gIurgv7Kq~dU$R(JC}69ird8eDAm|Wb*MZ$Qb?(8X5ujTt{!nFo>s*{ z_nHluW>ld*9Qrs!L0ftOnJ^a~<9blrB~>V(nN!KJPXS+Gw2(m7AF*FCT`C|^S1Aq? zP5ZC8+}%5fdCn41S7;OP`of?*Aun87AvW*zl3f(TF@r|1KnqL$NMwD*KwrH5eu*Qo zYp}H(UP7|6sbkH25c9wmf9Az5UFNd%)BG$)TCbxx?pn&TYy1mX2CMPP9`muA=z;hO z^CIn!?n>gdge*)0%q1%p9kn7BWtdhudVDk;r^ZfREbwNyTtnJ9VWb)(mG3!3ZyiD+ zzs9{OejWVEi;%7bJ8w-;?D|KjicT_Dyk#VbVZJllJ;$M+CUx)1&IH6N+p68fu1XuS zbPjN@c{*##R(K>LLbyplP8eg37gHS6Q!rW0u#$mheX)S4uDN23X~IA54+E2^GQG1$ z$*;@n15Nik!fEp1^(|-#tJ6k#D6~l8qV*aA9?{9q0TSHnEaW4DvRprgj2?1gf744 z_Ac~;t63aCN?iqLVb)Yll4!bJf+Fin0iVDZAmp09UjG^PUt@s*8Vm95L($Zig8wxZ z8ju*qvVs0M|2^choHOM{Q*(s8#%-rS_+ttl6U;aG@5o`DH`S49b`t00# zLelvODCtQ`(t^EL4nRa>xl&DRAmNTO6&e;B?`DK0vkt1^@}*b6Wi`jZ97qGbU8>gK zwkg_~w8w8%`duC(J(mY*UvGX3uV;u>*tX2(lKm#*Nsb(RkNQzG8J7p>I1G$pF|fuH z15gkM)_9`9DEV9i#*9Dvz_>XeXU zHzKTz63hBSnv3T=;bjw;1KnT_2!J_Y0OmkGP(+-dG+GB-z+qFD+Xk#zt#HoGP?N1! zBa~^wgM;>}3u9oKkd?jgLc}(Z&SrGo1XEJS zj05rAqnprG z4-MwuOHmewek66hW|xW8+eVO-Qg6E&e^sN|!QjbeCK~aeDmtBq8sB#HcD98Is7OlO zrs9o0R5{c8=kMqwEYn}5OK%41W?znDLg+-bnHWB^@WU-&a)+Q{2nE1bZ3bMHw9nyPwM4dO3apN?f z&e9VC$W^_BxtYk@C5*I4of+;Oke`^23d1ZJx?HyCV#HCYjSfAW#?J@sy-7pk(tNQOf&sh4e|rb^P_9 z%n(L4YyH)PI)!~+{fM%pw@jZMvZOvYE04$CAi8n1$DVBZEexRz4Y99UZ2fF2sj(ZZ z#}fJ>PrA|lV9|@%Y_Q4T7|emX+NVyOP{%EmmX|Lg8?3lG8PiAdj%9pzZ9WT(1kK3V z%^O6s8Yk94IuEs+o5xU_ddV_;pG^Dc2H($|vFX)bWwjdFQEgy(B&>USn} zmEMgJGz=sKMC2sbPal%q{2KKA_|bu1OkB=EC||p9Xh5IsbG!IB(1hgR3ux%X3Vcy^ zX_0;rQHAukqBt)d|6aAvc{47cH^Bd`N?+;^tF$w1U|xW0pwqmV4ei9b_FMA=Usw#e zjVi%jw{6C69KR%Lim0;tUOY>A3>Dbob^C5ie4soI|A3tBU2J{6^fTY%W4OattcPYH zshvtuV4DrKl&agMi6*Y)m0gPI7*rm{zGzI$^>bMYe7V*!~r|Vn( zVUhM$Mx-@#CmZTD$G1iRqmrPR4Z}FOD*^Fc`yKbF9`=+gC6>&$CYjQmJ)p zV;btoX-~ARqh?fmUoxnsR0e;bcN1hc%VgyUPyoK*Hy_ITPLR|)Tfr_J!6aG)lSl-# zRwh6ccJ1rP{{e!e8MIbsTHX1Rk^%F1;Rr1`VYS8Ce|!fU-Fa9+tf3#kPcRT2*AiVf>oE)q=BzNI3iDiQWRS+mdnX8;r zxj`v>l5k-fiRND|$hfMe%V|oVuIeFBqn{phUhV&%EXTe295E+}dB#*1foWg+$kFgI z-8h;?yH**WdQ}6pjPWc$0bI8jg-!W_YX5zl@l=-gmUy%Di{U;_TItva)+sYO&mCP< zzesq^*h2vqJOaI;NLJ*ff8SRs1u4?^OfW_mXsz%vze9QkIA16C4*gtsm1CRzXg{q= zRdn%;aO}tM;GnNoz5+HGEt=PW3;cjHIsqXS6L3ZjOdJ7z;3psfTwnouL)aD&g+H#;LdtGO1|B4{ z4Ljmt>g5Q&6xyW;V=QGhug>t^*zYZ&CC+?jc;)?o{q%U1Rev`5ojqs0V(K9H2?pMH z58d1RWO?7y#1tV%#(kTW6v4b=Xd6>GwA#4EY8~F8&938fDNys^giNo;ZFmkuG*RbIa)XxKedF8d}RvqykwGX zL2viN_p0Y15T$7#C*%WU^tHs3da(LEJ9UueohbcsbX*U*V<+3_%6H_3F?Xw6rX#u- zzZgTt`yBie9EP9cW3V#|B^8z(HT?E`1hbznq|^cdfn4=5q-BshnPowPbL(wN8PpH5 zlq*}*#dDdVHT-5$a@r<61OMcQBFCabjJOfa{k3E|cKgryAG4*m`-+zeDD6>V!SeZK zY8d?c*g0GxyieQ{yyPpsiQUx5t1IjHWH5Ag@t?G8|9NF4%!zo&MDRYwo~ftcC#*K` z80W3#QM8~z$ZW+-nPdT3v>XaGnzLbWLfqphYuQyv%L~e5V-v-}Mv#;Sn-Mi%fuyt( zShHO41%iMz>jxVY%OIer2T7@%@BSl9AzvIprSG=y3gi3)=>GZN*gDc`VrWh8@mKLY ztbfq1%&Bc?IZYhX&7`6On=qVD=CHb2__OgVBvj>9Oy)t%>h)X`40~e-%TUa~#n1io zWe_$0V2Z(m-CuuGnma5fQYi+fU!Sl&&=~Vb+&*?z?h-G4F4jer!S+B$%kxtT3Dw5T zUuBVSF55`)A>fQInv6HfF6or;J4-R{4bxsw{AH0A;A6N=GnFG4fJK=5@vT&%*@!>= zsIEE8)i30dqBhwqY4fx=Mvv`WHdO}EWf@V&*%c{(pe|TzH(q|lasSli#waFFmYGBgl8DoMDeRl{QX0 zu*CooQm`63t!+W3zh}>fIWBGNQGSo*Dw8|z&GAlZ=TbbdWiie4#rTooOK?F z;XIhYaZP%yMvbYek%RXvwwl%V3*Yrk#Bjj#`GS`U3jO)Xlrbg3Z4~kV@4(w>5ILP#brEh6@9oXP+pQO#%Uj;J z?|oJ`j-eo4F05!L6fcADSctRRPqfM+9DZ-AGu33PGgp!ndBF)BBizbw9aSS))^=DIODruA1M`Z9YbgQ1| zvF(s2A?H{rBA*#;P3*$G=OlGH*QK(B9yLnh*6tV>lwO6p50!j zP9IYzGWn*54VnQ5`G8#r=Jp<+P!aVbu`3RGxhhXdd845zFUmw+tM09$+USO6Oz^-U zV2f$S%_T%m#MNv}ZT$Ux@$n9KQ_c?>oCqKuDFr4ky3&HE)>ZU$-xNVmo9()gg48 zWqZ)$qbDGjRU|`58vd-ptBZ9~%v$j& z=Q=rVF2s`oDkDnY#P)d)hg-1KdLo(}Oo{1_#Yq3R8cAB8@->8vro@rJ6^*+e?{bEo z)p9I`;pH1VmylkH--Y`>E%LLxXiYJQ*^WnFI-vL1!G;HtIYO6lk_tKw<>+oeecpnI z1WToI)$@*qAS@ojQ9o3zF#~geem_-hgq16@#@Q?;E=qpjH=|7Y+Yh_H&VJD7bF$HR znBq8)k0ms99T(&J%zNg}c$bS%akDj5FposnS$;P@!S8^>Qyc1Aq#(!lyyTU_rQ}L9v@eqSg%SLJqVz1f(MWd{takr7De$hL zZqw>ZMf$5!eEqd?{KMA!Xz=lf(J7AxtX{oca_)5nq$(*-_HbWJidSdr0kv3#T#P|T zx5{#x7b}zr500Z&o%z8Vr8B`OPO=zLgwDD?|A8ejF-&_M8v1%|Jc8|*#ckD>k>0+~ zDK5OL|Bcs>*H$e%ldeg)ztb~McolP?cr2Q6blECjE8|I2b*(B?Rb&W?`GRX0=AU5J z&dxcLx5iQKs(_Y6Tv4agiKx?;@EB67-m9J|BQ6n2(1DZSu;nXG?LUZVuTv!CPP@Jd zBV|#|$Y`~{@?d|w0_&n5B{tab-~upgpe{94!2o)P8M5-;jYix}=!bpkSC^&E`Wgx1QcGbn3%{sh1Y%I>9AO zud_ZMfjf}(Fn?=hcr726T0-%(7+!mLi8{kj&G>{Z0uYz$0$na>n-r4^%Hw=cpDTk+reqM8GlBYi5UApI@CB5?cKa^P+vO@&^2lm! zapXMLNM$L5@pTCMmyQb(w(&^Ia{~dokop2ugeHNp7j^rN;~b5bhFIn1{o?J9$;#*{ z(l3(Q+pD|9mVZUK=Ksjqr27bqHww_L%kZ+1oU5-y?}P{E&#jA@(9Z62P+6b5Jy?A! zTKzp3LVk%;0S?d$7KiChftPYAT*}x@WPBB^Mpf9lLp8$L@auxM1nl>h-YD*p zNOUN-Z~bvP3wbi0n)(YzWB}?{^f6j?_?LG=zEv|e9-E<9g9MgUe&Ks%krW-|a6`lR zO%3a>clWj90~27s81Ii?WCehiPFy^MhD7d3F*slps{m^h4vY!C0gztkTSR`AgV_O0niOX}c)uzj=?%8G)f)c0TPu?s z(O_cBc#>!h?Q+z%wyM4)Jh5Nt&%-?HH={ZoPyDgmqt#;T9`rHL0^27Sx~I_WVeVE^CBz70B?-Y zRZX>D)2as6*Ym3zULwQ;C;LhQNYlZ-y`?3A{h}cIIF`rt7&}Xddk3S~^`x&SWuD_t zNd<0ho|IH-Q}AvEeGY&5dm`$BUgE9fQ|w?X80|NzWr11}1EDf~kHaPxz9{D7=u1V& zxW5iPV>B}C?ukWvHCFXV3~ANGr?EFdQtB=GLf+B$IprIdX<30N?N(GQe}4*ADnU@W zF(UDrkaf*n6x)8gzo)LtDk>~qQ15w~*g}{W=QPHUZ#LBnPS!n7d)Fcar|l+kH&!qS(9 zjCAM7^!|UFOjD*>V6$265Wl9YKNzdo_bI81eQ8@`&-ykhN|B0(KrXGWwU&-{@G48j z&HCy*z-hFoe)D(fIA#*kM3{#2yIdz|S$xD6=+w4J`&ar!GPKV2HW!5&hvQrk? z{T*QRsL|OqE#XI#2gh*m(8%wd`-S0!alkBNPJk>%zm6S!gY9*uYN7KN9l9g?&7PiLwxr7K{gqL^NdwsI2D$4#920|}F=Nl|Kf(-V0_ zoKcmZrcA1h{k0ZV(p(s%y7h&ZoJR|&U67Aagp0IjU|3z=VO6l{U?9d(1 zBqk2l+CP@_3`|+D(LsK6Ph5a~dITLi@9!noqP^Q-_#ND2=Qi(l|Cv*nzescR#(nl7 z5=CLZl~|6T2Ax_Bi5{-84Z;%kLW4GmXH_wpIEVbN2@0_vwnl4%ODOp&uMS}}Z5K*@ zgL^4708yC1|p(VVNwk#g<=%WN;D@T-CKC0$AT2EIUV?uvWr98m9niDKg@Wt+|zZe>DM&nLII ztXf$uJ8URQd{RPvyC%()^#e-qxJY-@ozeKaim zx#$5MLdw;xq{zMf_T|_3zIv(@2U2Y%a|*f!U!(2%XwF~?4rKX>PoFf zJ~;mDPe4~Kn4NCmab(D8m{j%{ia$9$)w_)(<2Ftq(|E(wao=Z%rjJt939V<`KpSgI z%q@!~Ep|bGno<&4tJp2esFRvqR_L*!{HZ9DjixOtRl)x2Odh_dj!mEZZ_l}{qTCNE zwx74~7~3xeU%=$E!!M8_gkjhITDC0`!Hj_kwE{#7465YUEZV%!PguX%Bx~X(W1u<vQ@VrotoYJv z(tB%ZVrug6VIJrHsWx9?WcNo*5nVUgg3SPnf5-AFb1?kCZ~wB_SRH=eSVndoIZ?{L zuc@XvJ_$%%9@X}3}rdd|9l&rTb zO!a>UfPAVT&PteUp#-lPh|+HN=?_=GJ!sbA49y9YuCphI(pC9pA#d3eXj&H166% zPJ?R251phcMaKFQSaZ={$&saAgD>!4&odV};qfm1BcEmul0!O0-tu|TW}9J8n8mK0 zc(X%agmYxv)D%sKwN)x1^?OSlcrq8)TFD+v?&WJEj70SIS2&0i6y=sSJEycvS{(m8 z9khr1dQ*!V`~(SQc1*vmG}sv@+GMEU$z=Vn7ahAs6^q!2x7cybr;C}?Nk=K*3mk@# z4Fc=L-F|kv?|ZfT38|8QU9U@+(_r;#;G6rU4)eGS41Dn1K#Kd|ka`IUBT}xN@EBoR z|CHOMwG#fV%AUPljKZmrb)}S79@81fn=wxeg-c$@lDw>`ixDKAWD+7#ZsH8d=Ha09 zu$;A-F}=G3?sNX?Rd6X;L7C(ibuEOmaO#xH2{xYE{ODKN4pI0`Q-gBNxCZZWt;x|x z@*2`DMxvNsrc-V{#GB+7=KdKZ?g&c`n-A>Ab7@%U_Xto(K^bp7mD-gizJEec>H$k2 zyM|dC*g_1PLJa0B$rK;+v~V+7V?3Lsm->l)98}|E{D(;>|qM6c~Q?n5_YQCO|MWrq%oViFh2%F7~IAq1p z!9UN2KgCZ4}v!Y?Lig4iTcmv?``aF1kKSn`>P&wW|Lx0fh>Q1qm*pyZnZEC`T{EO?)S?&>*^b@#nN)1hb0IWiyLxku-imp;@{GB z(DmNu{1d`{AFOsul(uTW$F-tJ>d)8SyH44p4l(v1v~1H1$6lC#jaYpfHuVE{K>Iwq z-Cpu_^}t$Kqzje2Y^@p(pXsCH-#une4;h$dK9+Y(B~%NM=pHnxTA_QOY(akyUH`uxQEq(-)m7~bTo;43bUU26bT7^4np^#k2 z49{HYUQ+a|Z1O{N

A`lZt~s6Vu3-XQS(_kw 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 delta 38555 zcmXtggG}nbc1wvcXuNKE}?<~x^#Dgz%Jb^prn9;v~(z;Qqu8We1FgT zADqv%XU@!-GxwHXqwHOwK&6m{lBAc=>ltu9)H;SUh zA|ux~_M(krAa^w;;#Qy`U!^>K#EneWX!l4Q4Oz1>hg2RJ`EAPbQko_8jupFhwc(cp>1>`K|v#LK-~7X{&D;<0?>!(&jcId~O(Y^yJ*H$`+-iCCHY zKxlo)rpNK}2-CIJ*}X;IV$SVH-6Ol2QZ#+h!O>v^U+yNR&qAE0$ed2ZutI`+6>ryk zHAVIA{Nr{yWUK@|=LpK>-|asgsPW7TOo^PwDLUZ!-~YI&R~p3DV^Js^m8`<@5CvhYE$8A)bWL<5qL)SDd z@fBxl{%o@%EIpAR1-pi}^uh&&;Li@V!LIcv&t> zTRTZhcgmasx_@CTVN;O^!O>(W{z2HX?zwIqIMTVF6#bkp{q%L2!zLgrZ8DtWv^S+X z_)w-1Mi`x%ZF*w+DbmNpFSQw3#^|wWOT&M@5kH2zUH-}o339h)h|VjV;lZ$ocMX?3 z4j-pgFWaoJU&*X&cbh8`3v`|DW0Ngdpe|Bx)(Numqv$etWkN%tuUJD$CjmLn%kdYI z%l4+4?uZZ@zbiLR)0MjYzZZza6giZ^6Xs{UO}3cq7yWA$tlp%P;mzbV&=7CYU|h-l zn{mxBhpE1!k4(EJ@E!Frt4>pm`#1PRgpNSukwTgXJ3-k_yL1aFK1Bf*eI}7{M$FKV zh#&S_*MhmyD)T)x1RKO)x9&A3GmphQjA6mliDYa%|DcgFc$PJiOhKFO7TB#P)@0Ylr!#W!a7r3L`q%lhB zT~c?^c})A~d{fMb5MvNi_^*6@HPwFK;QR2s0)sX$6mIp))D;Mwz#(SRyXs!kt4NCu z$jcV1$XGR9Sw}UL^0pU0Kaw^-_hz!^3}!j|aNRybSMyR=OCByC3UwPW!ei@3@|XHD zPu|GJA>Av?y76Y&gqPMHZ%K<}V>i-TWn}D9A)VEPu*DrARl3Q)?u~GE9yE7=707<{ zrP3nG$J{fw&>Mji(232?L^0)`nqwJH{SSt3Idy3au!+vh#82^DFrRBYnP#97?-|*! zv_OQK#%iy+)7l<-3#%odH_p~Pq1mOkbVP`+{xW1u63oz0U8-$Ow%^?N8vC=P=B+}3 z`v=0-o%Z4hEMvO%4XFKKN%j+^{?|dHwd+}P5!L+?kdFs+PmeKb*HB)MyFgDm5=hyv z>tdcs-v*xW^Nt8+@=`a3b-Hk>8#m;=J5j;;9Aj3o=M7W%0}V;Di5FUVYP(jKEHA?|@9?fM%^T8lR~xDI)x2muTZL(8}wzgyKY~g{l5VGp!eH;~?%2twJ0txIH3fF?(CA=@fRD80-Y{JI# zJIm1qt7Vwi!ys}NDU62~^cyLB?vxk+g9w5yQGGxse2f{mVHQ2&o`l2L?fm=B*el%N z!1nq|}SzhWp(~|=j`N9s4U1ibV-fBUU2!re&~crTXoOEk>Z!Zs|qTJ zFS%s#mX7{yitpfsOO z40|<-X&#{9H5kS2U+&6RGjyf6u!zoXz$k`xM&$73a+sj}NUpJFMEK`et2UXr*2WBhYjyVA2!Ntc)>KQbs-8ZVs-re+k|aS!%;(E)Uk^C^xt=V>j5bg zj@TZN^qRJrhB~Xjxs~Wg0X0WeHh9X&<0pbcOoB@p!kE3oCNuk^70ECy+4yYx^^M&( zQW+hKF3v}fX+QzAhN=G*5GKma$auEA9I60^SP*)XaO(<{J(IOPzlTl6&e;9>DTWQ`21YZMi0qw zLwHtWQ6WR_V^1io+J0kWI##T>=&eGY+xydB=NqDi!CuK|4CI0Njhxv-Gdn20kV@M` zN2=()q@h(b=&QV(=!YKIN_z`lVBWZJ%ScprN+)MIeAO@{E5f~LWVW!L-|buldmx%+ z(U(#)V}*q@Pt)XE_IscQp4S)@kxO+6)f|%|4jJm{uy7+ce(i0{s*EN@DWng`@G%AlRB#ug#e>yIVd}QHztBSdgQ0*_1*S<6l3}kf*G5@j z>BAi0hD+>-zpqmsJLxbTbP1Q*dBZ1-my){fve5G~T`o~aHN_O7Ara60%7!Ymp{TP} z%c3DS+5a<@IdT%tPKVRapJ#7c^u|L@Wcd6=<{`>(cij= zb-MN-(SOxdTl-I7h)2LYndWI}j&j6RXlh3~D|rlD@QhNn$cQAp!(7C!KEVBUf9Oip zseeL3Q!Cv%FH1!XqJP-mA)e0uv-J0e9|7xsQ+Og7C0f-?Gk;|*BQwe%DhhO^UgHp* zp-7$L-E>6caB^{k+^r_p)c>C#F$O5G11RWIo2_x!Vnrl>MY7oeTtE#_AO}zo3Q#}; zVA!Cf&=O%u*dhSPr~;6Yh?Dc+xE-tjA_&+>8?ezVfT2|$oftcSp~Sg4)&S50g_C#X zF+El$s4ckVC1IC#52IN60)?OHCf7m*;|G%=jYDdg!t~5&3oQWsu&1_x}4GVtI2eAI~Lf zXc`QD8S|>)O~~se9kwOD*fJc?I?xpoo@&cVRXxQFvJcgGGfT$)Dy!<`p$W|@vOVC6 z7BycgP0;4;1}p@|Vrz`yxlj0W6T^Q|Cg;>-B*9>kx9!HX1<)R3T}@{QuJf0tXs>8z zw_#N*x7mgAkQg70KOPF5!tirKNN`b4o7BkhMgA1i*NDrM>$ch?@vBn&Id#ulRTPm9 zn)92hi<3iMJt6j0MjqcWw?!_ih!iEbg57mcigp5K^FYOxRBescH5H+XbqM-Ba=Kho zE8dLS=*E_4ER;YDkdaFuj`GH~tf3g&UXYlQkIV{$v1VxSeZ*ecwmz(bDFL34UDq#uzcdl}m*ResZFXpRUqinVHMh1s6@2s?z& zJIW1qLYrN+HTlug49y%(lcj8qaIwd%13p#y!nrwyd~16d%CH_5s^+~7 zk-i}1v8*Vx+X#Ne#qXd1+Ou^B$=>G>%+hRo`N1~^>bJ(TuAJN?((qow;p6M5DN!1C z`_AObr?tJ_mv1~>w**yj>ONBcy9rKG9+SnPW~Z*J9aO)((PJUGLLRbc zaQuVYY^GhZUiEVI(R~YINW2SK(1d zcZ3(X1&>~o@mef?tB~*b!TP@*pggB(hZH8eA{XiV;!Em(8*03t^31n=U_*-Gv-3~t zKX59)K`-yfUbdk6q1in)ITygL)1yDXeR3VC={vg!r=Il;M_S@*f|y{fR+xvCc#jyB zE!r(x2oG@yXdWZgTcf{3pO#@O zSvg^nGYBIu?mFdDpYKaBihbVLU20Vt<6R4J779p>VrX756B?jvY6~iQCFTH01|MDH zTcov2>R42EcCJ@+J>O#isu*&K`UtR5Sx19Tm`wm>mTNwmAhV8CHqeAe7_W~LG0bs0 zYO-1FMF=9odjmY3w!cB^8IC;U zy4!@}xk+VADnG@~vzPz0kSHB`Yl>KNe%}~J_Yj%51^i_c8*Q==XwV)&a)dob#qcWB zIhK845gW7$mw!=WT4{*J-W?q*Fi8Y;F}vvRMT7+5ExYA5We{wujrGA1PPrCsi!DCR zFZp*ib|0TYw!W=4{)yA}e$NR1u*`cHmz+uKL>L_*mASb7|Yt9P(HO~b~ zLOD|N3;ktwPV83x>kdZoFhqo!VCSsv?Q?#rm!+XGnRv8F=MF2zX zoWi95W6f~(=GpimGs}-YddQkAdLgg#{SrxZl+d_q?8o+!ALm-Y7UjI{Ao$KVParaZ zTR+yF#d=9~i?eZ*N=fMaihwNEiWUJqKrQ?e^S7G#Yje~{+;9IU$#kWHPM-4AlMGot zy3q!ckTI5pO~FqE`Gm==wbkKMrbdbPaA|Ej(1b!m%z{38)X%$wOjug|-EuF}_2I?I z8yko>%2QQ-bT@%>gxzNlO6gv#@^KLfMR(B)#>%0=#OHgR4AyBV%ob)1&uD+)@=mJB zBw{l7+&G2KSci$Q8^yKH6w7nCp&5z z@zgS~4_H*;d{@!!w;eO2y{oz2As8Ae~93l(kKKf zc{EeF!d;HAG!JTal5KX-&MUZ3s?xC>leq0;&Sf2NP7x;jm=daUrJin@Lx+QVw}!)q zcy1*Y9V)N!os`_ERyu0p?JsrD%%3mzI9b(STAkg;lFBs$rdG3 z=tTpsO3Tb$bnE3OCspho{UMoeO-2!!JZ1~9FQ5m60SvXQRGWB!BGLdB%>)?5+W>~` z4=_B@fA;?sQPrc3T~BkB5qq$hP@6yqTi*6bmF9t2+~eXr$YKvGP_Ff*5`L7AiMnIq zCz(qphT|ZvDhPTY9k<7fm_{F2l2(lP2<1-mb%xKPZ8 z4s1p~!`2^zF++za575`NIbTFSL%d9Ekih3`ZmEEIB=^Z%kg7-&JW^72hZI%(uzAgo z*XX(yQMerB98C;Q8w|W&?39RN$0t!0E_&8&p`YRmyToYw#>k`EU{3gq+T;-SMAM%Z>Bz~ z3jvaB%A6V$poN8E)GcJpx{bl<&g(gFWv|5NcqjmH5FlLxMnhn~rNN{NSvv{uc-UeGP13krz(uYl^YH_?lH zD*d$#5VD(Kc7on5BC9VH)@u=K%TDQ$^6kz;3BG$H7XzLTF928ay*S)X_GezTcZjdq zBo6_rS+!<>qd$izMh*4X8>Z`EFb5c7nZc;g)JKF`zp>bYDQE$Qghud0Xtt19%Kf7c zC;%pm%>D~mb76yrKYqhZJS;WhnP5BQo1AiW84p+vrHllOE6_Lq8GY>dcQ(H4OVlu2 zK-0Ibiwy6j9RdCTgG7s*X&tnL)$#ACadcT$oqGV$ef9dViwji#gw2ev!iURULXRB_ae`70g>zLijTSK~m{%drb=j$pZ|ffFSukgJhGnX2?1Z*pME$WXNDI2(wXv zjOYR!Rse%Q9xMhf0ETb?!&LyoGyua90K*Uq3%ykU!|0VLCar(wSZhELu}<8T_oeDe z{RRcBzP{uMXn3hXJjW3tkQdc&rEb7$%x=Ei{>VSsJ|*5{G+BQ{Q0i&5P1RkTJ%uy- zPv8^6v{2y1?guebY!J1QswmByKz<1K`L>K9w)SsyM#4;@ZyDyM*}$RD2QP3BUO)mA zKnh;qBPbwtz9S+AkP!(e;2t=oI>4q=!F)L&&G|3~l50A!$KPq0sKI-91P6W=sefD& zN=VzVo*&ggLbB{iF=AbaP4qZ2B>dJk(05D)+0yIp=Cp0;rl(0?9w{H9I$wLa8s|Ky zndp0|@{CZTx;B~pahOIGy!+9x@XkvirW3I@YIZJE_{iz3UyBPr$9|T{>ZIw&^gIdybqWm=MtRS z{7e`5=4&#OzP`b}sjbj*Mzsunv}og|YoU2Wla@Gvo~p#hwgu3Ha!bB2v1-T#ye}MG zykpvQkd8Fy#{r!02Fq!wK#?Wl{Rgv$)huBD3)qaPo_iF1T6A~3x*A?0zvZ*vhE5WD zT~R$rs?u;oQYTW1=A7UOq>9qqo8}DUKJAECikB^0snmQ|4#S6f&Wz{`fI09~ilv`F znToKJWa@UGGDA&~(hJrM;S}pZ1TldoWCu-%!G;-VI-%^F4oX+>~#NvS}LkN}2N(ezw`Z19E-f7s2)LRNdfgUwe8%&OnCK!G05B z*)qCH)vjik-G%!cvWTQKr68d;9?=~ zMTmK77e4;;TS^m!kIzzrnJNBCcPK>^Mc(`EQkD1cE~??f(+&EIcMc98YU0TrtXeiL z50j7KM3)5XNxFUooAw0un6xI_Z%_O@2Cj+b-RTixM*oHOX(i>0a{ly{XxaAT)D2Jj5S!WZY&PYg*WP}`uF;-e zpa)7j*n7kI;wLLf;R);Vgdtt;K{xr>rY@%95_MnmVOa!>>dG!0`*EE{hc9Ui*mnI zDOUcvwxZ+zoXW3Y5{7}B8q&Un-$x!gia{`lke``zOoKs`8Zb19!_$aV8BTKhZ|xjY z)IJ>g;sW0!YE13aj=VqAB=*H>4A-%p?d`%aMw^LXn{Z+qw}q-{Np zJidvvDwDaIjcnL1Y{<4p5J&@QU%62(GBM)&Mtw{GZ&%L9uEh2_+ao+>sJqlhQgW8b zRTsbyP=JNM1Ebj9)Itvl94ywoqfo@ba+);OMH~9^?#(8!YTY`CW}N{H?Jk`G8}i38 z-KU$Y;Pgk^1X--sJbIMtGiqKt0#vcUCtg9#6WSdZ#lS1}0c3Oy z3h)KnvB~RGEQw3Iu>ueLH{N+~Pqu7-$B+RwglV|ru-5wkL9%2a@P+-+V|FCVi>i>I zD|JYQMq_?CCS0r{dWlUJTM2_ni-lCC>^EGh?&xga%aw=yV)vY zq!P9eoFJ_+t`dAw3LFvyWUqofl7Sx>h3gc@4~m4*4mg#3f0kYmjrsa-xbXI9@7UxC zDcsGNNu=mz&ehhK8zdj_y3T;J9n)$A5F{Nh{S%hYpa)vUwgKgWwIq|4`9?lR_Y>l@ z4ChhTrog1qr zRw4Zg&@nZjF+m00qFW$Ls@a=mqq^4KOGeKo4vJ6c_y0ZRExU;p0yXm;>Fb|vX z{}~hxpnx2hY6mgQ{?e~9F=yUwypOv~1gdq7LzoY#whkKheML?5h!;-mdD3n}`b+F7 zS+6`zQH&psO!AB5zBQkxfQ;UnRSzX>yQ>!)#F{uYh5Nx<*!VYR+g~u?f0|7?aZj}A z$t{5X-oN%|Bn6Afxy!v#_w9ouQw9cw9k`f0`~yNF~1=>iVL zIv9mwz^k1g-q@u8W^oU2smS;E7jH&*UtQWL5wo%e<`>F0cn>Bz?vIw`{ z1D5Lbv=d62I7{}V3X4;*Hz62S*GhrEC_-dASjpl$_0akHg4^iIa5Qc^+9tn#0HZjD zYuy_LG~p-Eg#Dli*?=UYH?z=d0XL&d(1bIp>(1#*Z&_Uj_us^{s(cCHLc^%1I=yK% zh}KM-nu9Q5;=8xah*kZiyC^ba+p&g^uSTX~ zS{}^myM#{(fA3W*ACgtn!&xGI=*d2{iAoQY8wpp4@!Z$B-#(| zh5}O7NPUo$_fKkb`c%J3gc4WN5#pL}yG0vNT4Y6K&5!Jp4tISgV!NThJ1=0T|5e*( zT0iu&j6IaW_OlJO+m>5riY^9F>d~k8vD^6 z`&bmQauP(-=S42lhz_lB4m%;h^YH9va7AG-h<@fQc#K{< zS4csi(lSW;6helantSQ0cP#Yrce*F=?`$fFJO)YtLzQJ)KIw8Hwm$7onJW~+iSWGC zpRvmwPb1H$AQpuZ0rV1$U=jxW_Y>44uq6BjyP@tl-WK(F9WH;qW53kVp9or7^1R3s zD}4kw*@y?gpe#)3Xqvk7IUSy8MG%6A)u?VB&5*IuFHdXS^W55XH&FOEdW{shljhXL2&@ zKu^;QZgY>$0}>~qE?`ufNrU=VnukPv28 zsRZ5nVm@Z2K#T9zHR1nd?6Ug|gGoKSjXxbrru;cx-@3hIk3X_io{ZugpyOdMiY0(S zQ3Fu$2jmAh!6?QDF4@TFT{$&WSIP*uWbI%zBW#bzu>fVOv8Y7pkr!lSJ6w>?BFi!BKwl~&?W6z2^ zJSh5C6mSb&r#xgn$TE9aC6_gvmPJ?15Y7sifhk#<5$(wlVQkay~@;xT_y zuM^IzzMR{TK+Be-bZ7RlzUHKc47-|~{X#jsYb~=L%3vB^d!6oe&DO#ao?N6R{cmRG z7SM6hkhtWu823IU_vn@ZjAhQ|FsIR$%XuplobB{(D#NK-z9!BoVO<2p@yaj4Fnh9l zB;A%ItirXQ|n-8QNeD4CR|^*j0xh{3)MPmfU>u;Sl_(ikzk@huh)Pftj%U zC+Red-z}h0Fu^p{*(%CsdT0Vy7Lr@iW~46MY!ghfnt~P9*rW$p#eIb|bnRL$lC&dZ z{G==%MO#?2j{*Iy4QxaAvS{9z@LUp>((e*TpnP`Be?&Fg3X{+j1)A^{ya0pmr~5fi z14=o{;!Qf?Gt5|K@8LL?reVY;ZXO1C|CEWwR4-kok?b27`vvO}mg?D> z6J&ua8;`4{j3JfAr0d8D_y2H-!R1o)$#!b$#MPdt_c*s-qnBhz&lz9=w`!h` zcXs!2CXtQxs>oSX-glsM_U@&-s|&dlpi`E7i-)y70U44yRZ=R51FW&|sn6havuBvU ziK~aku$147bLr5oC8NENtW;h}Th8Ynlq#}@tFZNR;pj*V}QOjb6ZTjVpyFScdm$a_Q zK%(Y`%;4QN-!^-ToLtVu8l7$8tL7{koa;G4qO&ou7p(UD&m&?4M=Lonh|ItsYInDV zT!#WtIIr+^j1wpl^=TxV%c>BsYyAq-YPx&cWdEX=KTbwb3S_9aY>!Frz)x^$@xL68 zXkY@+14h~)$5Z0TP9=|=uu8-AtGr8{dD3Q{g7F!|CQ;rNHm4q_rYf^NHuu@ZYw_73 zAyo(rxu>fyh-gZp9BIeBbkhR)MX8ADH9vVHQa&1b1nZ!n7Gfg+j$E*T6sB=LX? zIDku5n?Wb`ZaIpH6>vcY*oO%DO-dv5c{lXuA;}aD zhZ@4FCYL$aZ35#$)fTCGoEh;(?E9l%l9R|N;ibl-Rs9fau~0>>{Ge#QoqX^UP+@HL zB%~m-$I_L#&6al=(?9cVh94Fruo~SCr|tWm!UH+aG+@!-f&jx3 z=z$DyxYPimlpomj(>AJ*CP$!3z5A3zhwr~!i&jWOwK*+g$}B-PcpJOa}rCVh0RLfx2Sg4-Cin(Lgw7t10Z(yhy5E9V72t&*SnA zn_@9QGO8lfuJtk2k};Ip1W`W6=#k1j?O0IoR3Im8Iuj>)A*uYNirFV0IZ~m{XEnl$ zxMVnr5Gh7T6ehF&SA{EzYl}zGIY~bLY2e^JE%A!MP#9`lYW?p69^(dx#)oedqN#%2 zC50!8`c{xuwboufy+)U-go#V_?_ndPi^C;Y6`9Q7c*F#Mdyd+rYb(aV@;B?b zGBoI@uCr4D!8}I|=bbRl4wKGVg7|qRdws}-$yzFv?Znc`=4H5@x_kWlgRQl<3&W7W z%{S=X5(6Gv-b>dWRI($C#+EczgJ z+M=eMdz9F}($M%s`=ZSj3~UbZ{-gq$v$)HxZX?tAl#FlsOf z8Me*m8eM9~c1l=vqhZc@s{htLLlA!Sv{}D6m@09@^WWzDME-JGi%VTYR*{_LowdWI$8Z-lYC*TDgOTOSNSmHcxBwcACuMHe6J;%$bjS z5=na^q9x83oNN|M=l;YkR~vXDaKQ`2ROH^@=UIfcZ!73QFFGI*gQ9lt=Qyrks=5dk zheeLPxFoa`vNwhC=iPWhl-!i#{Ozr7Rt}oWUjFyIHr(nMuAP%2oen2 zPIybZz$Ht!0y!Swk_iKs3@Kdn6(QTHvt$b{h;VGke=T#C_(&1Qj%T3dSCNWEu{E24 zvVCjAnZ4L#$uN```!`RDmL4TyZa^@XHzf0!yDSo2Eb}20vwbSgONqKRN1gBi!J!BG zhqfsX@~{|){vD^$J!n@Az){LkGZ9X)8W4Pj4b|doi0TPj(k{kHK!x9>`KC~9ivOz~ zD=tpT)bj|zQ=VU!HpCz}EqFxkIPTX7%PoF|@0;YBXruRN6npc4p0R2op4qjhPXNa) zBKV3f@(c9l&o$MvN8!3dma`$*dhRkXZWnpTeUb@;X(Y@lUacvQ!v5S&SVwm(d$v*# z!63+*OpPg7Wb}QPqMMqN2aj?5R)%jZkh$XRTZ(_A?5XcD`Ao}+kfV^W$e)%?5s%(j zb`K~pBB7_GyC!o3XetH;K4as(3zY@VK$cdA zL+}e| zUXc*?^f{^RsW(w)0e_%Te7F4vTx+CrGz%?|pZ5oQ-iQOa@tWr&mP{m@JSF8%vF?6_ zuC55GP>Z6r06M{A%-C&_77LohnzmX4+2!%fQwRQsTygyx^QZ$bDy4`a@sDo_;=uJ9 z5gPNxHB~#Kki8Mj3S2BW!V8GTF_aeW;*9BFo4aHgoqBN(Ardow8dz*S8#r1$q}hA` z9rpl(qS(QC@C8V<+E@8fb$}R8D=;dn80jePfI*=Q0u18dYBma1vqTW%@drlbLx6!B z(D4)C|AWY8a^bUM#0&E`rkrrqTwFU4DqV1$2QC#iI2{6VQ!1L2E;9^W+ zUya$bBoq~uzZc^*9YwR8(t2IXEXFy0Dq>VOwFU(|I3&(M57+~n?qN4vRMq2ny;L9M zNZ;-f>-lxf2^Dj;U0{R9uEC=d!pSLP@?`c^JO-1DzL~L3TC5%0BIgE9M7{>}UGQ(0 zbK0vRs+Vzu_`<`1h}U*y&GdJBWFQ5_bGB z$&pgg<+-thEE5{5pI#>~BHe~@v@dnm%1Q=|pB<=r#`h527_6V7C)!^^&T~P6fd$hK zd!kFHApjz2D;AcMKElSzO3g=}Y)aJt+4n zR(=eFUhUlkJUZ|R%_ZdIlI?^mNTDU}nh$IypE*8smA2VldLwx7M%0bPNpe{pX|dQo zsYo$qQ&&$_+hZ-EX%JMS^oJ{tttOcc#TQzUCh1LW z*xL(q!poTT?h0wYO`zQNrI>X$Z#r^qY5Y&Rxf9e+F#{m>#?w{?LTr&Ahp#-<7xk4) zxUr>}1ibL+VT;quoViU|??gv~O1 z_^+rj)_M+;O?EQf;X25s7Wzx}QdX!;$Vinxl|1+a-=RDtDy!D){!X?q*hTmF(RiT# zVf37s9D@Wy`7ehjI3k!ZDm)+JbUrY()+DZg8ow$lGa);PH6>JY zs8iTE;O+MPk!lQ%h43i3j9>u6t#)n)0-rq)ueTK`((}L{pLs!Dsjm|d(PW`ty!GP# z_$F$K<-b&IJJ5vZKoy%9+xi{|R0!ZemejRhS;?Yv#C{h@E>t;|ZK{XIO^pMy_#sO5 z38Y#p0U6DJXiL2W0eMR6ZCKhagUe4-}C!@CUxGYN&FU`Hf!w z>~t5BH1qR+i*PyWtrsYXR@HsiC^PFMLhz#UR8OjkZm3AO5%TW`mzLf65730T7%7!o z`uh?pGCCDSSV*1CxfY`R61?FYWY6MS`C4LXs^qn=6%wg+wCdkZxo+%D)39V$Md{us z@zU(<#L%B&86To$(gdZ$K%Q_G|C4ww$OqGZKa$jJrp4^rI6CW7DxXbxR&~MD9V4@Q zq~3x8Ni##06pLieu8G82XsNOSh@Z#_LFg7Qp=G-p2r8m=8Ij{ab&hlg73ly z9gAG%`$Oq_aeU?;_r8yHB$}Ipt=ElbqE~QKr`wlutTF`;BVb#4O#vK85R5{iIi84% z;Om1RPKV31{4pi{X~H+8xLYmUj#oSmuy{roqln<-%VHg~f0>maKoFap;Xz$;g6367 zE7G^AS}ZEBb?kK*d8vZqMK{0vF<8vN1e*#2BLJAJA*sY4R47T7?m>yD!aAd z8xJQD!t^XVsaM_TMAwbXpN%6oJbJBvdi|0zz;GgpUzXsUMHvpsqm*;tU3I|D>PSdq zTNVjmgiM<>Qd8a;|2q8fMjfqlXtv8_k<&e}ciCFMtTHNfocki{m5^#eEW8Bm z=AKbp6~0M#?X|o5xvR8{BQvWjweVe8XFD1SS$%5E=n z=C%YBk%rQ@|H5R-wevog@jk_GvNFEaNOwpYa{b!N$YD#xS#-WtkmoXvJ=*N(M=Mo9 z>OLWIokX%;carRJ>HEhRP|^23c;nB10S2=o{oi!LhZr!F1)Pd$=pXXGo`)QE5Vl?k z^GZ|{;~J6_JQkr?&BGZ*qK#?&H><^E{uPCht`mySbI{7Z<9E9AgdaW9E>Eq*vSvb) zQLOUA2rl`9H4kfmtM!$Kkf@Py99obHEpDlaRj8Iv|M!hYO$WSSd)c3;7?Dp%6&;40 z3!+?E(5!%aDsQKy7`8ZU5)(0_a8bRyBqL~2Q!Q$wY7{f*6PcO!NYanA=U``b=G zxkP#;!cFfmUepQGQ87N1Oy5Pb!Ou;!6z2EocED)#5GrUz%9@A zz`HJ>-x&D|$cPHK<;-9+LXD7m_3)*WFwlfBu%26hFDyD9Wx6bAaerz~r58RT>{Sbm zG)KM1Re_j7;%DxnDip1$r)|%ShIYONq=a>1+D#Yw^0uESV1JJB_%F+4hnq$^75&A1 zu62z1AAP;Y51Wo*Wq022A`;Ry>C3CQD|!{}WALF-V-MD1w?3uJ zXsu^b@1lx}*ME6JX~Xqz6>yEIT%w$`%mQqMcjJja9Wl)flF~;&e!vGLshECSx;D>) z<&?_%?u{P^leq#}-23_z6woC9X=Sr^f$=C%(d{#ZWr+T1l!7BPD5f>u5jH5o@Rt># z+597-6>tG1MGga#k5NjeS@y3S5!xt$28vmq#~91yMWREh%6FbpEVA#bIidNvpSkn} zEIz5YljexRQz=Z3S7H_HL(Dmn#vom^EQ!67S*LPUp^8c8&ANY-WLiTmSk)fW(C5c( zzVPlRRuR>`N#wH642tm;8DkoM%e^BKX#=N}dQ%CSP`{3;gO4nyQS7=%#!;)fFe&gR zP?R+DV3L2U0&ND}%?APss9yast`Gn-eWhaW=PproLtwGjlI70Tt)SWqNojwo^5%A@ zZq7%{!-FL4p#aOPkZV@8${?&fxp&s;--wh%^=@Dcp`EIgj!*iS=EgV^P^whmsIpBl z{@RoN?@{4=k8>*hZ+FKYTfNPmvbzZuC7ao);yuWAI^?5f4SCk3wwK&SGsoIPn3tfXrM`RaoRE0Uz);q4gN=k;um2C!9}rXgAhg{H<{7E zWT~Ew&X&SY3F%K;C7NnVSUHOqu)Al5YbpxUJvB1kFuNLP_5p0hOC79|?=wW&$Zpmh zD-2{Ps`bz;Y5dj|*qt33kvM9TA1&u6iw)!v-1>F`|CAX=VUrgqC#?@1lK;E1g7Zh| zQ&9_@cs4Zp_#Oq)jg@sdP3<^@?ziG3Y3>>}dt1MIN?3Pi(}_tf$*u++Inl;O#9Ib> ztSz!#mpBb;mMyq7-&<76WNB@fOCJ=U`$dO;A%+_nw{KV=cUM390c~7V@No|3+06a0 zbBiUh?I_t||2f+IP2$W9Wq5;xxzBoOK-}WgGuxxvs3j)I%B9s+9wRIG=+q{r_r#sz z*;ri{&ml&LM`-2`8$}}VdT61_b)TOMBlFZArPHC0gsRQ8boY2o+Bo8W1+@A`hieiq za2RhhS!@iC1UeSTV{~ZaQIh`Q-;lDJMemo<!>SaLbW9)E{}zXhXxikwJXHb zV3cV_Fn7}hfEUOl8%mM+kuIy)pim$OYbBgdq566~#l}<5_*Om7*;3qgE zG-}X)%VQ=_#C5tq&^4o5Z5G5hHOS$>{exD?8je>uFh*TM!Cqj2**$FdW0$hoBhr#S ze$g@%J{F-O&@pA(V(dk;ll$T44Hf=+hNNcvV5RE94$=7S%nO z|AXO6@P)$-uLl`EV&4=Vw?ku?^{v%x(%I4Idubdc_|WJbmMxjog)nytxEoT3GunL; ze@pyAvKX=@?Rp6Sk zc0c}qOudC$)z23#Om}y8OQUpmcS$!0NF4-}_)rp}lG2T|!a1O%w6q|iv~-s=2ngKa z`@8pj-v3}fGkeeMSZi&nIY(6PWnC{YFSr6IngRf9UIBnc9RTNpHo<>f28Kq+U}!Wk z))LAFs?*&^`gC>;o9Fu>{|HR$WLkO`{#Bw*W>*He_Y_xEKS^s=v`O_OZ4bZHT&To* z&p}kgE-lj7^$dL+TmfMc-*vP2bVPSqDS6J3W|}P}@PS8t?|I$#J!!l-HZAfP6i)sa z)-hS+-SSffK}Qqip_yHIQA`RUPn?RAvYE^hW%GM-t9G|;So0Ef&IuZ;w2vX~@j?U_ zBEgqT zFU6^Vd3G}mO}TJ=$Gb&}*4~eHz-JM6&w0NPN>u;9o-Ca!l^lz4X$VK4q*UfQU`s)eQ3kRx4B^% z{6-oa#dD9RaX8su$oH$qR8G~SDRW5@#spJ7+(R0@q`pF;>l)=A_?^`GJT%s8(J;vM z5GJW@Fq(7R`SWyT*aC_5q1Ck#|MjYsMlw6Yl_ARWU_&x($H1<{xw0*0zy4k(5=r4Z4KK5%@TuEV*QfgPI^`N&E1?ThqrHy&LNBC1$@ zEA2qV6D49gB+hQ9)D9KoPME9Q9tS*WfXV%P(MN#`iV-4ukPpb*g&%;dIDXhIjVSj7 z?ePx1sBc*l#S5f14aSZQ{7%9 z=sEmD=1R$Gc|#a;*Aex(Vx$_GGOy8R&D%de#9hk4hmyp@aKtvQ)3DK2Jq?k>IG02x z5+ZOnp1?WG(k<|lRIYVE?bkM=zn6z2zFUWW{2&RQDvY~c*)@J&HvMe72R1#UfcL1w z_2+<^tyh1H(TfElC?Ah1YR=F-1I6-WJA&_$x0Il0PI)QB^ET#$+mKFy^UrxL>4^h> z-Qkj#Fjr*4H<3ZrzuydBu4|M>X{F*Y+Ps$ZT%AmiF6Ug*yv&yQAZ4q&g@VuB(SQMm zvjim!z11yl9h^S3i^ZHjKPu~^y4}F2=G!P=;_CeS{B@hS3Z(Flz0_Iq*}=RV?~9o1lf#w8EVrFUZTRXi+4HZ1-DoFu^ns(^(hi{_#S%Q?5|P zh3{iuLO<@jiB$?7RJHn((I+UfrJeKPb={7-;0PmO)t93e4NkS}o_B-v(NvQPjZMDN z?@u0#{S#~xWQ8P=U9wq>%p=&IhFR8qf4=T`Yr$nQ-eTlYDV)FE(3s*Hv+fUHv^LT(-l;PwzVn9|qTrY1Zf& zih8W;U93*w{!fqM-P?=phQ71AKD5O+#ShV}Jmq~aub?2SuC}KUTHPW-6L)uex%pa6 z>lRqFS@zK{UN3*Aj-Is%og>U`QxEX+cd$F+GpHip!+hJdDEXVZm)t_T>Vbz;NTt~$ zMZ?MJmYOvQlT;c}_Ui>Tw3W9^2wlpkZHwZBK!oa`0!8GZFbKnoM5tNd;oyaSM_nOG0f$O&t%?0-a~24P+8CBp)bC>y*egzzfWkepRg zWrSji9~tAP-Dd9Zk{qWPoQ%#C*h%kCXQ2rv-!ivXo*1lpk{{P_jQ*6p(~u3-b$nA@ zLlM-lGg7dpY~~F^&#RYTa`otba>!aKzM}~qA|CJ%8372zJ}@8^wCS=yo6Zjur=I}2 zT^T$?M1cRV2HJFLfOtF)X2&65VBu#%*suyZr4sFBQGn`n=wqcPgOMtB zNN@8;d%rOf;Ynkw=0?6in zIYvPx-oqFlj_$GD{f>e<%bg>tWUE($v*}94?btux4Xv!t#X9{bLgA7~=)xr?Q;7?D zL~LMecSTbRozBnuBDacU-eFRyNDY>w+f`163kkj9dH3#I^G(>BHG-@u&0H8WEj>ivx z%Y(U{^aD`+YzUi-$~>#`M5ql!^iXW;k*y?`4Exl^Ia>8EvXq51ZCu<<6WnSslk~Vl zVlyf}#U3lZlW*vF09v)*S9)SqhYNrRMP8^E{jWx^=vPi7=~Bwhq7e|Y@=J*Vcg+^5 zc3TPdU6Dp*M!{KvaAxFJ7C5hx3g>f!FA2#O3`PT(7lhdT&dy*-4OUG>9ptQN$(0ek z;j<&;8mje*Mbd=szh!4Krz&6LvUi`$A{n;|n{clBzM<8~Dno)x2=jM6bIRwePY2BB zN8TKO>h%)%KssnpKxm*tK?;1}o_u}?u-#qEv=Ynt!Dl!a7D!3BEumz=Xuec-#&oW% zyUcjskMM)9Vzt@FxuBnzZXp8;y@ncrb&ebb-?Cx=!C(P-=vuT~B1toaQmNEYOzm@U z;EY%Nw>AXMTKq2)wLws^;OD_f7L|bObq^xp13BS6h~yk}%avKgHucTa>sr;E=3K{= zAI{92ok;Zai4$f^KpNMkXMMfthX{+LX2s!em7)McBI!EYP_ToVe)H!ji-luTSE2w4 zqRw$Y`6t+6qnS)qKodh;Q3y&ScN~vS8qUvi?(c9PFuKsYevMF20wWXqYO&ZuQ-aL$iTY@zvpjY3sT=YfM|jsVweavInx0+Pu+(Cq4_Yx$C$ z9U^@NDfj*9%UEdo7NF5NvoOjXcq3#u;sl^n>>wdgod}roSyc}q@}8pk z-YF)SaE4UY(eDN5_hK`8Sq*3i;Wa7{n7?ec%g|i?R@AWe>7v(jINYJhI0~Z@)K4Aq ze{qQuGr&&n>UAhK zsBBX>E)m!`daf-Y$?**`mDJJQ2)EQ!_pmaT%%OTqN$We;lTx~NU?xzBf_n3UD(O=4 zK;;6>m%%xR&JdM(qlUyk-zX|pyJ`%{40Uq6RTW8o3391(l+IG0(_N+0o^dmkAfI2P z9AqkSbk2Psu(i6S;ZE(n;o+ROYMUrNY!@?QzmgbrqONjaTlZTHTu)Oten*RjR4r$|jrQ$7Ggsd=jh>!4 z7eo>=19?82nnJ--%uq+&l2U`UP*%*;=6S<RvmnHn9GaocA%n)+&E4FtasLtNY&W`8Xsk2GU8 z_i^R!cKaY$#ljyixvw4h6+CqreIY(H$Fd(deTbe)2BkzJS)b7>H#AECL=ns|q~YK^ zR&2=m88;S6N#(IZF!Gk&_|W=i%1k`xedgll)4HTBORpE@B8B z7_gsAK-!^0bKPPQc0FKgn#JF*N*Bl}y>YP%$<$(;uRfDh4wLOyta6zwb(_tiI(1^P z+kfKD!I0238IhSgDi6r#7#?N~PwfkHA98Y`YJUGDf-wYlWpCzMSFj-eajVr)4b#-+KIVo|PJE5zBQYl1E!D&qOHi7_$G#ho}NAm|EJu zH*ygaf4>UF0pfaLx3Ol9rYA$sB)rKWDI^NbwjP@=m1l2r+`0%^r(?){Vv9D0w$cl4 z2KT{Ma{}kwZ0>-1U#I}2)^M@&yx&QV{ki0Yb-Hcdh@z5`FYO1aBv(3C72oCDQvR!S zgrD%04F&P93S;92xzF*xiLO0Ri7tqc);-xjhYa7*w3s^ynUr^3pBSFmuazSdpBvdG z)F))aH+HpgABO8F(J)e@sXSu>`hWvqc&&Ry`7MG>ecMk(vEc&RB}@;zaSe7V7}j;P zbJ;it^?8hOR{u+*an6>_@310f9HWy{st~4M=6{opzr1!@W4m~~j%*{L*yB_&R%7@q z)5~3!^qAvsZA$UylQ_R91>@!#4JhT2yTPNT!UoA2UC7?qp0h(cQ6+G})! zV0xYhoKRD_7Xxw(!^4P;=!J35EPETX+4VKkXsCx;0Tm3N&w&50^c2y-FmQ6N0H4Eg z7*D?H2+b2RgreHa>0X^0@zxTb;k{LvQIy4J3!G)P@mFBkAPFVcQ${E_T&I&EMgP_0 z4Jo3Wzzm&{vsEP{x`7AoXytfG4OBSX>`YS-6_?btLJBtJRPqa} zCI%Qb)T$s`CN}-6h@uhI=3WOxAHeD0X|Mg`M-En=S<(a%7mfe>PpOpKl~<&+*;J|O zOm4I^ZxQAXW5u1!McFVuI}CBhr4baEW4`cp0uT-_XNx_ArYny8*u5y#wFSw4^n30a zRkGiA(~=ch>RI2=boWUFyGPWzn;>Sz^vnts&%@{6Bv8Dln#t0kn#Xy!stdcl^TkF} zoa5NVF=jQfTJDab2*tH3mO#i3rNr|&;^5o@jbsM-gO4m%HW8h+BQUBuGmm*Nth0D zvQj}{0B*8N-z#QB$HGMX2xhK7wgZXtsI8tSTOU19Kr%YP6#8VO#k$Mp;QT=PspE_QlfZb&is;1qoMV|i)zOA zn#OZE6O|POcd5;?n2-4LjCpr<(Mj5^(`v151mRK$D7JP3yv20@L~>6yTTT6mg3W@S zS*TFreeuV=F5zCI5zK6=*8~ig0ndkxx7A=~>xkj>Y`uVGKRCn>5DxYG&!-q?&CaB` zX`SvB5(7@;N`-6HzvLot>uvt?feA}e-~;N%e6@KMdZF9IUs@Y8HTL&2VI$s0=zA_b{pG6tz#AWkO*wBh2CEBPEa zZpuPDrdNGg518c#PYHpjCx$HcJe=v=-qX|Y2TLS8Zv5T{L_nu>^lmbN2>5^r;QQHw z+OQR{-}yjoC;)0hC=Kv@w!!3*5~xyT0%$clfYBU*;!qo)+3q=?^+s<~6r_--s`eR0 zt}vn`SSM``-FPj^KWw1+vN_8ay*j<%HJf_qevf7o$ek(-<+iA9o3N-ZF0Ar^%NOvr zGgx&U+@1B4?vejA17Nmj;g82WU5!lDK$0nZ_y&s1mJOUOikE-m;?J)8Yp|&i$>s`G zO4&=ah2>MeoZ;)fR;gl4A=aXp&Zja|0qa>W=5UgJz~{28Rr^93Uy<<(5DMYgv^Dut z1+ZF)2-$P>v0QkBxJ-YAnK2?9Lv!u^DyQmLF}JDuVH$7_Ct_X3p;4u++$*K70;1DC zF|@Kh3(Dh`W##iPASpcG@&dr(r4VL9u@4BEimCJi;paY&N4%XZ+t*+<(|1hF}KA^Y;QrTy7mj}-rL$U)LB{)3_GEvpAdLqphHELML-7UGRRMDpG zCM+e>*k7g-A%~D|9ysJy0 zQk~b$o-a+ETPe_pv^2j^VKca{iFn|^>u5h++T#C=qBb+~vrTUxH$6u7^V|1&d>J7wakVRc7&(rbJ!Br-^G_RuyR%l?fjG}&mV`uP4OG-2!YiJ{Hq#DGBv!DZ^< z1=XKiO6sDa9EV>{sX1FbQ3eKE2bBTj1N3SjsVD{+R@Vo>ty#57{IoJEss3_%sEWw{s(V)0tevE6To>bgqWl>2+!0C||ZWLU?R=tQPC32X) zn){p5lZ6$UC>;|$R?O3cN*DyLzj9w9?hW_`3^*0wO%K1~{5N3Qt*Zo1pq@6h<4d|* zUF#Ocv@ba-Fu>u#j!gn9EB?^bRUQkkT3`6*95M?TzmqKPuK~Q)*(qcZr(g0 zwUDY@b6HvyQjRZ!`R-9EZil8|WWzEQacvAxGz6TMKq>X4Iuy|FaV5WYK1dTywg$-R zy%ZGyVBkTc(a3s-{Hcn>|IZ(_?QZZFFd7i1d-qF6*K;lFuG+h7G&#dNT0xH}Rojye zf^nPBo!4XKmk9pD_el%kCgT24c)_h)acDnhRIDf85O3$;mrjNeGxOu`uwcKKp!W<5 zlsfiY>{#(7X}$$llsm1@z&N>ORg=ZcZq)vVUuRSj4|j7I+$Fw38`5%d9dd?ZolQpF ze%qgN#A1Qi#18-<9#^;G%A1qhci0?-M$>ckK<@R1+l`^{jO>v4N)Shzy!~Bq!dql4 zcU995uaE4Ndxi~M$q;yxR5>rvmvl5QvjdKwkqoe`?PIk zO7{?x*GQbl_=k+z8wu`BZ!Xe36y023a>N;_3+JSX@hsKE3k$XTaJ6h#u&?<;A7YXg zEuWgBN=+7^9vGX0kKc(~itI`G^YmP6E!F@thw>__>Z)|I%9k^4cL_+K41U0Y{$0<; z4sDD4X&owP2E8p_8SGot0S!SV035_^|400AG?U}Vv{1|`r|>U4|5q#njncudS^7Vg zM)ixkclTfs3?NdU=GS8F55fM7#OG=`!MMmVi=Lk`B&s}65=is#XD-WVLNgquRrMTR zYo&5OdMaWYvh^Ha;w0BA)BYOAxLw3aR3z>ljX5yjUXe5w+%+qp(@^d(%-_plQk*Y8 zrOK)Vyk(4%DYo@p*As z%#l}&J6%z#PIhqHD^w5JNCsr!*xu-RlL02TYOwk8<~HBT)+i)rn#d2|Uhc`V5j!n% z^Rb)Yj%30i3ePph{OVkTJ;8s1la;~$=zWq@TF-^J%c;3jh*Zh=G>i2rVL3pJGD=4~ zgz0W3fo+d<$zTRK(S>eH?O-*)2VpyK-Gp4-MWEMYX?FOr*6sz`V$Tny+%~7>f}U}+ z{0^mNmyKM0(l4DCPK;DmM)7G=NGBX`ZrFz`8A7F@7qq%yQGkc2K3!Bpn#;$M+gQ(` ziWcdX2WEPs?cK`6A2of=G%y?N?EZSgzNycSZJn^zvI%KlDAtyC;;4?mvNiewWUjLS zm4c-rV7u|BLxZ~)feVkAOt~;ekFMl}>yM9?ZEqAd&30#{;GC5H;wU7WHy+124Pwlr znhX)pLCdJK(Jg)QgpSh_Chd3KT%)`;bvmuGGijB$lXVH9EF+Fq<+tvL>!Pt~&({PiJi9?U0Xh_p~vg7H)Ry$hbTY`20O z(=TBv&ejb1u~TMT^|VABe@4IZW&^Q@_Gm6MtciQ{>L7!;nFkO6bH{P*QnhX}oeD;f zU}RGCvJkdUAq=)=ljPMJLsajhKxkEUWT%7l+B+1zv461np_u7XyM8hk!12T1Nj~$T zFLiSr1CSQ+x-<&Ard(=y7Cz|rK%`Nt*PZ`9#@9*3v~7Uh+z#Heipv&vm&1Juqz=48 zW~Vz}*u+Y*XlIBs;hVUE5(vo>KFZ$ZmyDbkN&ks+n-<;UH3vR!%-TYD&#fx8459iv zs!&4oGkeBpT1Mrft%&XrdnbE{s!1ycrEPWraqqP#thuUJ!=c zpCxt($ZDdJhSiqbP{yeUsq`(Jf0$zy_i;0{`D_fS>3mV2z|pF-1qS@I6q>p-77GA%sc-xN%~+jM-&Fl~mFj(A>O`~-%E(ycjJ@=*F!g?15=S%=7C$ZiQ8 zH@xFFEscTh%V~ZmAc?B!I`SWGPuzr-Fg-t&{d?`*D|ouJza3QrykP2iO%OJ`!+6j% z4`S1jcxjHBjLSgg>2(*tWp5OJsn2=;*6cReK<;9V^rm<@ z&@PzPy7lYARt_=@co*T%>&xVlk8c^-iG^sOeFYtAlgP6J z$&=*EPa#-uk$uPP4deon$aQ*n{}{tF#T@Clxt=jyob@zK#MDathuw6-WvkHLKowCL zM3rU^R`#L7Z2wtx%+!^k-lm6Rgoxk$v0|z_-29_WA*uLLKx1V26)iq9`uzTA3|okp^}$oo81=%jOj zrRtqfLA64Bj}I9`+-rD}F=rW?ZO9V%4MqFK#j%t6RT{NQj=B0idBC*^W}EBiWd*A+ zikm!s@3{IBs)cg%meFEvZ%7v4(Tw?j&R7cd9qL-?z5!5pDk zEX4SPLhws!uKDLTr!c-6(kpylnourLAzU-Q)1>OL-W_VoTf;pmQmK;nNhLW)s0*w@ zbO<`-DTL)cf13>WBHZIgpYv9&}WYXY5(6aWa`7aMg|FqIZ!^r)=+G~2Q{FcuXJ=7(Eqxf za@p_!1~32v0u5w4r>Jdrpprds0{>>m#cv#Fl%9ME6lM_n7J(k=e5oLhSwp(O>z3Mj zBG)lhXu^|0q>9}c`Jpjku?ov=t1eg9U^D{I#^z3=!RKtAx797rRJeN(Fo%Sy3pc4g(L@KGe}jM{7rN~=>GO1b{2^LiWM z?1A%AByKmA1hak6`WMUxgB-5L&BN-rq_0J$D&CoCyin**sP~LJcXa55FqQNzP)3F~ zaCXM-!-lyErf@4DtDT(`+L2S;Sf-XwEL2Gk>dN-txLk*Sn*Qo{5-d(r7($_Q2py4!>;Iz zqLQCko6`@I|BNU`UeWUtBYmQ{yUMcezsY4_bs(bascH!a@JNgpZ^# zmb9-&ZQfQ_A2W2O9eR)fX5%n|_uxNyY(-b@7T)xW-AT|7WN7~Vjv2M|2$448k84z9 z4;A2%Mm^Sqcf9QUF&V+s@;l59T{_}nI`h2&12TqMxk4+XPlx4_cdW>8P&r=-byR!- zjesZ+hTK3N`(7elL3Og)6O2gje?xRFV{{w9=RpHuh*Y;S=zXiUP5fA~;rj()`u*A* zanOuH^t)^z?IAk&K^UGwh54Mgpb?-1N~0t12$Te63$6ixTFV3~bW;GU;nzYuX#w7W zx8NOE#GPKr$xNvVWHDO#Zl>YXkZpH6Q_E`iS9r2SM23At2TKOhK-&aGV7k5t?=zly zv3FGeOx1?TTP#N*+rEjwOZHP5o28IrUe}2tn(%jz{1qi3BB@$(Y}O~fNM-nLou^@f z$(36;UfbB%{jV*)3l5x`22>YE3I$IZdk%%f4=hN3WIIc#)I;sPDlWwH8V4%%9wN#% zN~oGWLUdZxR@X>2Em|gLhCPj>v8pDlh#eHsSEg*+-;QJ(PHbW6j)Q5@4IG5J-@OSo zM?8kwg-hcg$zJMZ4nM;MAIW!#)SFY=sG9$TxiM!?tugvjV;S?X=pLZHogxr2<72F! zZpq+^GJQRD_3DHb-6-8O>s^OE{%qn3Td0gy`z!N(on^M^ov@}Z6PZfZelCO+-V=m) z{9q%k>GsuD7FuRSiTBW;Ts7@^bfs<_+S?zjuWcLuKqQ94257;wKI%fNxwLR}X7+2e zm;M;ZxM5#B*Kf(A%LQZ=SjfVxeq<;!{^e*bgb|ssayY?QQM-!awLWPbc4$}Lqz|KZ zH9vLN*<1q+HV4YZDoj--mb8SQ7z0V1;k`1KDUE2=HWjf?JM9Azp9Cgj| z7E}o!MQY?_D(z4mnvdz@{}@EbF{ad6`;fT^BH$rbeYXLIj&5`}2-=I<&bptS+QcJ^R_ydp?JA&`{zAryxVHQolq{Ceidr@U_7SLVm(e9;LhuAR{JvLR@ zzHJ&ea1CLBe~P%B=Hb|NlI$@3%@Sy<2@B6|pF`GN7 zjq$0#!^Bp@20y``?_o~Im@ge6Vk(+zR-uxV3NkYz&bKVgum&ZS6#N7;odj$nPs3>T zpDKUY|14a$lNp0`aGNsKm>Mr+BLH&{mctF0<5MDG8ge zIt`IQQhGgUH>YKx9rEyYGJ(>Bed!y}etKhJjQ%Sz!=q^m@46DcGAMeWwjHak*zoh5 zFrCgvI{IFMEoa+xW9=sd@2~|7;~z!&oTfXLzAJnTR23i$l|UF?I<#2ZLx9TxzGDc4 zVI`@YGx@CXD^GU`_zt)N3~&VoK#y}A%XjX=0Fhw*`SYsK-kqU_?_Jy}ZTzY!>=gCV zHsf0B-}+7{BYVVVC-GTo^V3_MaOoP_^X1Bcc;{XUh;@AGQyS}Y!&@G&=Tc1a?rAr- zN$tW~EK?SL!(_}`F>3U_yS-R8`M6$K0Gm{C{%9PWnP}$?mv3k3&iq;|dCZXJ_etp+ zxB>`V0qIktXkHDn{;N1H##>z_SRyT46_3aF-_Gv9ouWbu@`}b;GtOtTaGO0V$~yda z@piqC3@{)M7(j9>>lx;!d>Nm{u;szkjPgNG7CZUDrxLS1=kLh;Y*$N~e(l}J-n^^E zd&gD^)-KJH^iTEBizNpcbU;$-$?C49ZCmcPRwWobN7=}Mu>PG8gBHlbF_WNsjYqJw zxl=&?tyrk(Q;nG|p-a9PUNlwX6HKXsCWyA=sIEhP?^%lWf&Vn)^<%@)240C{1?cP= z#Rm7!Wn9SG+gsvLkH}S(b?Lte%l`|+aD8M;m^Bho>TJH@n=*!cEyhl)&=V_x>Hp0Un#)7 zzJ~iy52Ie7lQ`7(ATXB?rug5#km*EZCmj~Q#Hd035T$+n&qst_p%49Sc6jWY*;?>nGmWzBZ0_bipE|rvj1JFT+);l}T}V{xy$kOuAARJU4l(-k7K0 z;45=oz&#V%|9(J*6G`U}vA&V83fmw}b|=CNZ@h7MXQ$m??M2*}>KpfqHJ|;@G96iv zGkJkMZ9H<3mIHnd{@aoGjqjZ#fow*IMi2#x(N#>t?-%>n)mcjRj%^}qY)py}WMPl{ zKa4+1M#;j*;_BfH0~(b~@obXs1hHpn45K&5-j;pO~bj~=hx}L1&GP3!ky_#d~ znsLuU@l}xKwh-zr>A7>$gk|_(P>9pwYez*GaygQm5ri z77|Fa^tq%_T6c7Zpl=WHrNb2;KKLX)G`PvAMm>k8l&zJB_vvT2F_c9+*;+55q$C>W zUZ1zQ7lhNY^=+0KvZ=^QqnF$(cqPn&Pc-rFq9aM407TGErG%9bYzIa4HVJsOgGJ+qS0u}jG1#r0nn8H$m@fOpmacS>W>YZ@z7YC(fPZYk84ya~KVxUZ1 zH9n*3D)(sfvI5_6obV3#j!&E98ImiWd)z@g(q+_`%kvWb_VYG*zZ559eQ2BD`BM`A zbtve&8uRYOpL{MSQku@3L{owjI`n0IS%_6WW*$+-s|fvn252wdP^$`Pc0?nrQl4sQ zzfNqNtkoOk>v=kZwAZF(CQCU|l&+qYjoet3;(x}d0{#Ltt@0-6dFX2t=Ra(l7F|h| zK(S<|mVBZ+dC8V7q~AP7lRd4U8Mc=Bs!$5`0_;;^+Eu|)3ig$g!6rqINr4mY{rGMY zk|gjKiQ)bP%ojJQ^#cv}G9F+R1ms{kDBvE2KjhyFA5%WG^IAf-bsN9c0@>Ym2+#dNPlFsHpE^y{N7&Bb42`?xum@hc&2< z4?uOi2C8FL8UwmI@Etz@y1do6p{+`wI{ppbfq3u^%mJPLhd^p!PE$KX?qo87OO<`8 z1H1#RkB!mOz>wGx42dbhL!<>}#BeRe2G}}8m>wH~GRVkb?cHO^R3#O2kLQ_ZifvEpfJoTp@n~ zwTpFTV-mChOcG8PiooP703h}uZXL|WWr#8~%9xkXKjzT6L<54L?+#mEI_(^qCb#>W zm}wDncn#ytrEB41(Eqn&*T+%^X_+D$1F&|7F24DpmPj76mMeP~|*> z`M>_~Uylfh`lr8Dp$hx6o5Laaq>^@M#!96x;)d(Lof9m{=OT08v0O7Qu1` zqQGvxB{T!DTVr$drF%h2W|Vo#`}}igP7&x6azZHyw(OmL!5}3wAF!JX0#|SZhy=JQ z>`Si!hWl9482vJ_0F22A#u|r~SNdYqx?7pPKnnTAj9`ymap+PPL$h0QJ~BSQ?@kgW zlH?2|KE-}8EmEP(AazqP?#KPc#2%#@!RMaHcOJKAV-f^oEO;+}gMq(> zU{LvZn8hkUd9i}X{>rJs3a?ADPc#q6ZQSo_pgH)TMEboRXb+&--|ukq`U@$hD}Wj8 zGC+}!f_GqecH?WI7Bk`XzR%F&Y8X0=pQ{8b$cR4jwdmpxKG#n1C(N4^EB0FWS7Cq*R+W7U#l?G%=X&#! zk*lb@SX>`5GytE+FNf(6 zlEBr`7f7JFhxp7%m&SgCJ5FbbX6UVIzwSp&B@pe+Q(iJ9S$FhfsBhEudSrUx;bJV+ z#g6*BLj$jl6jdinTi20g{a%>4eZau+&L&1r(pE>YeLZrvo{J%AR2BpGW)wfX2svBC zEMIivYz@s4nhoxp5~Nc^{V`gDhBbGk{ybywFIV6qGY3o!`IgF&(PFQT=qgJ?*jKDe zxHmzt7fndx@+Pi=7J6|&Tf_QEg@#pif9BCSJ)}C^^2@xhphCi<`z7N)TKv`g?#xm8 zmo!l)>mUr(2VBQyYQvCiVcQ4&JTB|=v(^M(GD@tiV-kB`b-k+b6C}PfUp}FD)*Y$+ zdupN3nx{Fzjd+g7AEwn&i^$`BP3tWt%rcfxRl_Q-bHyx@n_6|u3p%B#4AR%y`)h(D zP@qMT4#sDlV6xA?UlF$booTzy5{-6!R(TKA7Iu{sRYVjo_TS6A*8Orczz&v2m0ns1 zXU(6AsgFYdp#3|lqAh}Wi!Y~cA>+^u*N)M1+LAbf(K!DSQ1KRcXNCgaU zBq+Sd68)a%5BI`pEeDH(pw9p|*Q6qH$Zw{aep~P?`klk-u@+ZZVevxOW#UH($$I4} z&NRx$BV9iiY>pfbl|9aAxTfdoQTh6Oy2F{6EPWd7k~YLY@ygcuF9&d!kutlld{aY; zvX~^7R;zomn82!5Tm(>mSV2UNXqc$y*N!$?>ne?lF}0 z6UxAI2ug1X_WriKY6;nQYLcl+3LQp%c*LMx5RxEcrq9W2{Dj~6-~kuHbL2goY3s4I zKr*pK@r$$tl)?-YoXQT%Ynr(iYND}iZ?P5(zKf&&_;%y_Sv1ft1c;%C6B{N!^;FI1 z^s_E+@~odP%<~><{ZR9*iKHx9rxcCHy3~WUQWK#OiJ#I8g7}~ls`}UJT3gk_HDLsPqu{VLG+yo zRzVU5v!dZVo8Q@;G@`BOsoMjq%CuB-ZDu5OLW+cZNfvvo_sg$cUg4TVwAQeR^v`uV z?-x@N-k-p==eK2O)pEJ#{sa&w_b1S;{IIjJkLHX=@A}!pa#lyFoBn`nsTU~UTpnAD ziNMuNsD;1%RAN5;;huzruzLUdL%)35oQ>bu?4&nO+0)aO^Gn&Q60?yKEeKFwmL$!dLD+b^5@WBw=k zUj-s`Hlc^2>?g8ypFFsupG+AhlLN%^B)NuKi+y32OmU*W5!RIX_1^jwLuORq!y=PO z2T3#E6#;01`=l$O zi;pH5KOUb)9CM zi6Z5cC`-W*l&i(FnO`DzP`!qPLqg`AfJuns5^|ii~ zKZ(yAJ^%3LY=p#Bdi;nfcIO#sEa)}F)lhGjM`TF5uhKX?`uHuO4=fD%;)xDPuhCDm zv1NcdyPfd5PMRyYr$P01>qv;RizoZW*MzSoR5(8}zUp|EeReDTw^!u+{PV-ATNxuQ z-M2u-Ts5fxMf^sS;i8~cMySkV!}Om#f0x2GW)0>r--l|yToGJCN~H9f1U0PDNJsVC zTy(pydCyk$?Y|J5Yoyf72>zJ=M`g)C%jUfqNS6{cdMWvz!?DA|F(& z_L3Kub~jZQf9X9qV}jdrx|E1DHK)jc{5e9R-n~*?&(P3nfTZS^ptc0Ec4>~W0Ld;C z@LDhF7+omaL8Hr5ZM#)P{&tm`fG6XvwA2dcvX|tXQw6e_N5TE0B)tUeNDY5X`)w8ioI(pOS>z^Kd$|prm zOt9$~$M+Dgme;GV`+3XKvsjK1^XmB9Q1GNi$_uI!gmd1-ou=io3W4;1r6c9rxCZGf zXO28!DN2ToF&g+{St(4emp+fvnS@3#G0k3l=lm8$VcSspc&?X>FL59y_Y0Al1z}S>HI}jAdWbvB!4wch3`B3oCj}#y@X!mc7<%C7`7>W0_1zz_5#=a57U*i(_NW z;$PJc*$!IoK;L6u(w;$rI#!J#^xp*UAA{QL8bPx%cz*=|C)$u<^&{OZv?6AX&0l+% z>SRsU4ZRJ!JX5@hHj0f^AK&k5#v5AI2|eVYTLa#r#e>IG-4>BLnUz!~7|K6+9w~C? zH9E8*3xpY%jM2Y2XTvdu8|bBGyK?+STl*RuphN$K;K1zpx=j9$O)Dime;J0XO_Vg z^ckpaw;b7|ao7^3U&JwF(sC^862o46D|Bya{QEITvW03vP14BH7m-UrbTtWDG1bO1GtU>^E*qc1-dB&8 z`bb_&z7n7@dhD~5M@4nKF|6*>Wx;hYUT^%g>GpDHg4#sozbN=j5I7=z73M}^W?eAX zP2kwcXKbU82e-4y=BPqfoqn_sCB9~{gr5mPvbU?o>=nTk?g%f~NgGyAd>1!n;<*Y&anwn+XM%mlEeEGpqMBnUlk$U1xPBs!8qQfc%*Xza12TnI3_R}dR-cJ2@ zmyvn;blOS==?8?T5A=>@qQto=DM>cQKdCAFvM^D4kk;Tv^wVusn?4>jb-;Izy#OD| z1YxjZioDEo;Q{y3X&I$i8R;=o*>5>QIp<{5o4gp5i=qctKr1C&H|-AZj9h+*(n3|{ zXhR9}MSQTZYN(7rp{XPYnVD;01{=(xqjIs-InDS$@qfq#8wzce<2Jnafoe>Ln|mMF zEmCI#KA^3XsX3XTz4qu3QZ7Y8ZQaxl-IlBsIOTbGjc_>!8&cJ_>()(+X&DK3PDaFE z({gOncuT2n6q=k~N3Q!w#+Wa-au`{LM*QL@JDzM)Bx!TuN-jvz(T=>0N&JSSt%pjS zGVIjk7FhS}P1ygO@KlYZ6BvM9+-zsJ_;gb_Xj*e?$oHcYw4gnsh;+AVjGo}p$8yPq zH*;uI9erYIdsDF_Q|20^`LpgddNjLt1*V^^%jOTq&tLjVRbeLvQ^YjnB;tSDkf^Q} z;&FIxEV!Ol=={->tZ^$$_ z0j@)+#AV1frdcV+7=2rL3+o5r)9kSqk>DY+J^OO;Rd6}$6ntexDa>42f03RILnR)~kWbU59LJAl0tU?T zkl}Z|SN)}+2MmC0s|X_b=&PR%02#hL)(y=?jLYZfJW|_|8NdhdqDN`}_Y#6fT5x$L zULO|$qCk8>#)1Gd_NPfrM_(ycUr0VxQSL-}JR*$&X{db3Q7QKU<=Z*Ha#sz*K&2bY zJwYX&tQ9=t3#boik>&b-@4)>P00Zpo=DbrsMOT0mfCTqsufbbvAF*mIb@4v~t`Qa_ z5)oyMl`Uu1m5%a6DX~JIaMRj<=*l>HEo3@3g3rjOkdjn34VT+oR(D0#WDHGld z@{6V=Gn74GfKSc+U$8pRXP~;(a-?|w4y0cU(lud%D3Aj0K%qOlz5l(hR4a8p=YLm_ z#z1vEngx2rK>o_|g^bg}adDU&o6P|<-k^`(RRW@%W+)r(uzMfSQ8P;@^6}|$ z^@v8>(u9WIvEDrTYdlDGA?ESn*|u%>GCLWkVfA#iP# zD0wE*Kf`4v+!vXu4)EgEVqE{bf&=-GX$ahb{_Fp~L+_FU;DnNt)nhhv*9h9>?<2Zq zPb7W2MK>1-Q$QGoGqNn(;1ZU(fD@=)s0@&3fPoBa7grQE; zYy@Zsg19=dj1A8%1@B}H&l1_$Hc*Tvy*LU_6|ykZq4Jl6JanZbSK$~kxnw8(45yL* z06=$6MKGv;7{}L8c1VBaXMP=D!|9$jX5rHKGuxZ5@v{_4x#@evEHbJyy>6d6wz@f_ zneAcv*5!zMU_}T1yng8ha26y2F3oJyK&=aOBpw<8kZ(p8(-u?O_&^G(J zuQ)+*$KY+m>hM+8IS~t3-}|Fq%B(J0_EHht7(GVzJX67l2-bb*`J9J)M_ z{(p|>KV1N7LHDKfeht`1XXHO!0P;Yb-8z19uEPHW(3UHw`k8xaef&Yit)hu$7ZQJ| z{EFu9K}gq^#~6+asL0w=w;h{4>5Q9FDW2#d7n~Zr9ainQjGSXnX!#RmG0g5b7X9{G4^pOAL&L>k)j2#q%&u#K;Cjfa-H`#)*1k#FNrS z0Dy_OP1*Z+NQqDTqQOu9F);!?oOZY=HE^N*q|!nSWQ&_w^0;Z;yq7sg|FUzAkCdE< zs2SWaiN?pPAlB_hMF{wi+j6wkR*pHlgozM%eG`*3G*j63mOhJg6*1ukGP3zx z+E2J)=?tHmgSQw8cJc5Gh$jF94TiusZ3H)%V{P&QbfrBU&Z3XjoL)ZhOWTzV^YL2V zON{5zoq1eRBS=KnyHPSZ%=judYy)h{C=ST0kAk(xTy+%ppICNYRFMaZQ2gMGw@uLm z%RrO6otJ$bD-i=SVIw$`M`)43HnX+H>+!RS{p^Oke-%+NAfiIh7T0^5P@I}jPJqi z2IORVz9I=%tsA9GN4>LN1I^*LeGARZ!K0BBE9H^V7FqV*tQY%o!7)gSuvTI!QVY{t zmmi&Tc{Xp6O?ejFfQ6qQm&N$B1x|p05p|k8#<7dRiYxi4BZ$dHW{=^Rfx`Js@`?cV`lB4 z`|f@@*2bek_pp|hT|OAA1od)xu}^U4?xfqB8Zrv>S2@LN$aCAlRpCeEm9183zgg8} zflPQWIklI<3f5g<@?MN$@ge@M#SBE6ndshCef%E)(k0 z`8_)K>bLy;VJzc6RIOF^#?OrST6LFYy2(A%AdZS0k*E!MJI!qlng7mpDL}h6Lg&=qXaN&cXi3AgK0Nmg70%qR?K(cN=$B(4LB*W5j-b!@J>uki z(GO?+_CC>0M;X@9<8H&Oe&tH&&@p^O6{;B*H|O;ZDPSBVJjw;cVWPvD6&tFqp(ndi z`w+0u%hU;0l6l;rZ#iMyy~A!){n{9!IciFx+8x+tih0kU?zLSzD%G?(7|gbib_Rh&DSe(lAPEo(i<-`!%706HFdnz+#!20x>I!_R2Pb=UnW& zN&L0&wQbV8&dlL!Ar6Ie(8u@xPE3CPVp(omD>Ud0^CD^>RI?v#?`X*=!d`pIUDHd< z*JI3eJ0Q)*h$` zb)j;%v*y&h;QrlY@O4igXvsMJOHnvGoe)D&CTl%W4Zrd&+spP^FKPOEsz%(Q?_Bu9 zfWXt?@@p-rAKcQH$rFC$PYMnIjP@+>6<6{2S?@`@G^s2d%v|}-8hVBtfHk|7E2&!2 z1Krnun=|>n3c|i)Kb8H;;dygYk;SqHV>iEc0sUf!d(m$FYC;3Vvt#w`Be9HzPi2wn zaeWpYo8-_h!d%a=Eib3?N^|Y>+@+7Ai^{|m)e?r<@>WuD+OmoBO=ZBGIrH2dg31on z#BJ8-pJ$gzUa=bm7jUQ%m4AKx^1$reE_Z3Q-01a#rGneo<)#jWi;Pb24?|aQ0bjFC z%%w3b3?cGdUg!-QCvE}dujcxYlhB*N=B;<2xCA~G426A3x>VMTR?Y+?S!0d`g){f^ zv5%`>Cs*V}+o_KLbRN92M*s#k*3xZAm{N!RvCq0&-|cuRc%iYOqrM?&SuMbv`T;&| z>;e&Z@Yn36u?FX+do27UQ90<%YPQ)d>Eu3XBskNxbG)6i^lMUTb8E$c4|Vf}9bMCZ z`@w6(-$7oDkWKVzE6t%P{D()uE!aWo?)e(?#M#0U6$Y4SeP= NOAA_CHANNEL_FIRST && (x) <= NOAA_CHANNEL_LAST) #define IS_NOT_NOAA_CHANNEL(x) ((x) >= MR_CHANNEL_FIRST && (x) <= FREQ_CHANNEL_LAST) +#ifndef ARRAY_SIZE + #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) +#endif + enum { MR_CHANNEL_FIRST = 0, MR_CHANNEL_LAST = 199u, @@ -74,6 +78,10 @@ enum CssScanMode_t typedef enum CssScanMode_t CssScanMode_t; +extern const uint8_t menu_timeout_500ms; + +extern const uint8_t DTMF_RX_timeout_500ms; + extern const uint8_t key_input_timeout_500ms; extern const uint16_t key_repeat_delay_10ms; @@ -82,8 +90,6 @@ extern const uint16_t key_debounce_10ms; extern const uint8_t scan_delay_10ms; -extern const uint8_t menu_timeout_10ms; - extern const uint16_t battery_save_count_10ms; extern const uint16_t dual_watch_count_after_tx_10ms; diff --git a/radio.c b/radio.c index 3104f91..3118a3a 100644 --- a/radio.c +++ b/radio.c @@ -931,6 +931,7 @@ void RADIO_EnableCxCSS(void) { switch (gCurrentVfo->pTX->CodeType) { + default: case CODE_TYPE_OFF: break; diff --git a/ui/main.c b/ui/main.c index 272c016..1889d59 100644 --- a/ui/main.c +++ b/ui/main.c @@ -28,9 +28,9 @@ #include "ui/inputbox.h" #include "ui/main.h" -//#ifndef ARRAY_SIZE -// #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) -//#endif +#ifndef ARRAY_SIZE + #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) +#endif void UI_DisplayMain(void) { @@ -53,7 +53,7 @@ void UI_DisplayMain(void) // #else const bool single_vfo = false; // #endif - + for (vfo_num = 0; vfo_num < 2; vfo_num++) { uint8_t Channel = gEeprom.TX_CHANNEL; @@ -61,7 +61,7 @@ void UI_DisplayMain(void) uint8_t Line = (vfo_num == 0) ? 0 : 4; uint8_t *pLine0 = gFrameBuffer[Line + 0]; uint8_t *pLine1 = gFrameBuffer[Line + 1]; - + if (single_vfo) { // we're in single VFO mode - screen is dedicated to just one VFO @@ -70,7 +70,7 @@ void UI_DisplayMain(void) } - + if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF && gRxVfoIsActive) Channel = gEeprom.RX_CHANNEL; @@ -78,7 +78,7 @@ void UI_DisplayMain(void) { if (gDTMF_CallState != DTMF_CALL_STATE_NONE || gDTMF_IsTx || gDTMF_InputMode) { // show DTMF stuff - + char Contact[16]; if (!gDTMF_InputMode) @@ -136,7 +136,7 @@ void UI_DisplayMain(void) if (gCurrentFunction == FUNCTION_TRANSMIT) { // transmitting - + #ifdef ENABLE_ALARM if (gAlarmState == ALARM_STATE_ALARM) { @@ -162,45 +162,40 @@ void UI_DisplayMain(void) if (IS_MR_CHANNEL(gEeprom.ScreenChannel[vfo_num])) { // channel mode - const unsigned int x = 2; - - // show the memory channel symbol - UI_PrintStringSmall("M", x, 0, Line + 1); - - if (gInputBoxIndex == 0 || gEeprom.TX_CHANNEL != vfo_num) + const bool inputting = (gInputBoxIndex == 0 || gEeprom.TX_CHANNEL != vfo_num) ? false : true; + if (!inputting) NUMBER_ToDigits(gEeprom.ScreenChannel[vfo_num] + 1, String); // show the memory channel number else memcpy(String + 5, gInputBox, 3); // show the input text - UI_DisplaySmallDigits(3, String + 5, x + 7, Line + 1, false); + UI_PrintStringSmall("M", x, 0, Line + 1); + UI_DisplaySmallDigits(3, String + 5, x + 7, Line + 1, inputting); } else if (IS_FREQ_CHANNEL(gEeprom.ScreenChannel[vfo_num])) - { - const unsigned int x = 2; // was 14 + { // frequency mode // show the frequency band number + const unsigned int x = 2; // was 14 sprintf(String, "FB%u", 1 + gEeprom.ScreenChannel[vfo_num] - FREQ_CHANNEL_FIRST); UI_PrintStringSmall(String, x, 0, Line + 1); } - else - { - // show the 'N' narrow band symbol - why do we do that here ? - //memcpy(pLine1 + 7, BITMAP_NarrowBand, sizeof(BITMAP_NarrowBand)); - - if (gInputBoxIndex == 0 || gEeprom.TX_CHANNEL != vfo_num) - { - NUMBER_ToDigits((gEeprom.ScreenChannel[vfo_num] - NOAA_CHANNEL_FIRST) + 1, String); - } + #ifdef ENABLE_NOAA else { - String[6] = gInputBox[0]; - String[7] = gInputBox[1]; + if (gInputBoxIndex == 0 || gEeprom.TX_CHANNEL != vfo_num) + { // channel number + sprintf(String, "N%u", 1 + gEeprom.ScreenChannel[vfo_num] - NOAA_CHANNEL_FIRST); + } + else + { // user entering channel number + sprintf(String, "N%u%u", '0' + gInputBox[0], '0' + gInputBox[1]); + } + UI_PrintStringSmall(String, 7, 0, Line + 1); } - UI_DisplaySmallDigits(2, String + 6, 15, Line + 1, true); - } + #endif // ************ - + uint8_t State = VfoState[vfo_num]; #ifdef ENABLE_ALARM @@ -214,163 +209,120 @@ void UI_DisplayMain(void) if (State != VFO_STATE_NORMAL) { - //uint8_t Width = 10; - - memset(String, 0, sizeof(String)); - - switch (State) - { - //case VFO_STATE_NORMAL: - // break; - case VFO_STATE_BUSY: - strcpy(String, "BUSY"); - //Width = 15; - break; - case VFO_STATE_BAT_LOW: - strcpy(String, "BAT LOW"); - break; - case VFO_STATE_TX_DISABLE: - strcpy(String, "TX DISABLE"); - break; - case VFO_STATE_TIMEOUT: - strcpy(String, "TIMEOUT"); - break; - case VFO_STATE_ALARM: - strcpy(String, "ALARM"); - break; - case VFO_STATE_VOLTAGE_HIGH: - strcpy(String, "VOLT HIGH"); - //Width = 8; - break; - } - - #if 0 - UI_PrintString(String, 31, 111, Line, Width); // centered text - #else - UI_PrintString(String, 34, 0, Line, 8); // left aligned text - #endif + const char *state_list[] = {"", "BUSY", "BAT LOW", "TX DISABLE", "TIMEOUT", "ALARM", "VOLT HIGH"}; + if (State >= 0 && State < ARRAY_SIZE(state_list)) + UI_PrintString(state_list[State], 31, 0, Line, 8); } else - { // normal state - - if (gInputBoxIndex > 0 && IS_FREQ_CHANNEL(gEeprom.ScreenChannel[vfo_num]) && gEeprom.TX_CHANNEL == vfo_num) - { // user is entering a new frequency - UI_DisplayFrequency(gInputBox, 31, Line, true, false); + if (gInputBoxIndex > 0 && IS_FREQ_CHANNEL(gEeprom.ScreenChannel[vfo_num]) && gEeprom.TX_CHANNEL == vfo_num) + { // user entering a frequency + UI_DisplayFrequency(gInputBox, 31, Line, true, false); + } + else + { + uint32_t frequency_Hz = gEeprom.VfoInfo[vfo_num].pRX->Frequency; + if (gCurrentFunction == FUNCTION_TRANSMIT) + { // transmitting + Channel = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.RX_CHANNEL : gEeprom.TX_CHANNEL; + if (Channel == vfo_num) + frequency_Hz = gEeprom.VfoInfo[vfo_num].pTX->Frequency; } - else - { - uint32_t frequency_Hz = gEeprom.VfoInfo[vfo_num].pRX->Frequency; - if (gCurrentFunction == FUNCTION_TRANSMIT) - { // transmitting - Channel = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.RX_CHANNEL : gEeprom.TX_CHANNEL; - if (Channel == vfo_num) - frequency_Hz = gEeprom.VfoInfo[vfo_num].pTX->Frequency; + + if (IS_MR_CHANNEL(gEeprom.ScreenChannel[vfo_num])) + { // channel mode + + { // show the scanlist symbols + const uint8_t Attributes = gMR_ChannelAttributes[gEeprom.ScreenChannel[vfo_num]]; + if (Attributes & MR_CH_SCANLIST1) + memcpy(pLine0 + 113, BITMAP_ScanList, sizeof(BITMAP_ScanList)); + if (Attributes & MR_CH_SCANLIST2) + memcpy(pLine0 + 120, BITMAP_ScanList, sizeof(BITMAP_ScanList)); } - if (IS_MR_CHANNEL(gEeprom.ScreenChannel[vfo_num])) - { // channel mode - - { // show the scanlist symbols - const uint8_t Attributes = gMR_ChannelAttributes[gEeprom.ScreenChannel[vfo_num]]; - if (Attributes & MR_CH_SCANLIST1) - memcpy(pLine0 + 113, BITMAP_ScanList, sizeof(BITMAP_ScanList)); - if (Attributes & MR_CH_SCANLIST2) - memcpy(pLine0 + 120, BITMAP_ScanList, sizeof(BITMAP_ScanList)); - } - - switch (gEeprom.CHANNEL_DISPLAY_MODE) - { - case MDF_FREQUENCY: // show the channel frequency - #ifdef ENABLE_BIG_FREQ - NUMBER_ToDigits(frequency_Hz, String); - // show the main large frequency digits - UI_DisplayFrequency(String, 31, Line, false, false); - // show the remaining 2 small frequency digits - UI_DisplaySmallDigits(2, String + 6, 112, Line + 1, true); - #else - // show the frequency in the main font - sprintf(String, "%03u.%05u", frequency_Hz / 100000, frequency_Hz % 100000); - UI_PrintString(String, 31, 112, Line, 8); - #endif - break; + switch (gEeprom.CHANNEL_DISPLAY_MODE) + { + case MDF_FREQUENCY: // show the channel frequency + #ifdef ENABLE_BIG_FREQ + NUMBER_ToDigits(frequency_Hz, String); + // show the main large frequency digits + UI_DisplayFrequency(String, 31, Line, false, false); + // show the remaining 2 small frequency digits + UI_DisplaySmallDigits(2, String + 6, 112, Line + 1, true); + #else + // show the frequency in the main font + sprintf(String, "%03u.%05u", frequency_Hz / 100000, frequency_Hz % 100000); + UI_PrintString(String, 31, 112, Line, 8); + #endif + break; - case MDF_CHANNEL: // show the channel number + case MDF_CHANNEL: // show the channel number + sprintf(String, "CH-%03u", gEeprom.ScreenChannel[vfo_num] + 1); + UI_PrintString(String, 31, 112, Line, 8); + frequency_Hz = 0; + break; + + case MDF_NAME: // show the channel name + if (gEeprom.VfoInfo[vfo_num].Name[0] == 0 || gEeprom.VfoInfo[vfo_num].Name[0] == 0xFF) + { // no channel name, show the channel number instead sprintf(String, "CH-%03u", gEeprom.ScreenChannel[vfo_num] + 1); - UI_PrintString(String, 31, 112, Line, 8); - frequency_Hz = 0; - break; + } + else + { // channel name + strcpy(String, gEeprom.VfoInfo[vfo_num].Name); + } + UI_PrintString(String, 31, 112, Line, 8); + break; - case MDF_NAME: // show the channel name + #ifdef ENABLE_CHAN_NAME_FREQ + case MDF_NAME_FREQ: // show the channel name and frequency if (gEeprom.VfoInfo[vfo_num].Name[0] == 0 || gEeprom.VfoInfo[vfo_num].Name[0] == 0xFF) - { // no channel name, show the channel number instead + { // no channel name, show channel number instead sprintf(String, "CH-%03u", gEeprom.ScreenChannel[vfo_num] + 1); - UI_PrintString(String, 31, 112, Line, 8); + UI_PrintStringSmall(gEeprom.VfoInfo[vfo_num].Name, 31 + 8, 0, Line); } else { // channel name - UI_PrintString(gEeprom.VfoInfo[vfo_num].Name, 31, 112, Line, 8); + memset(String, 0, sizeof(String)); + memcpy(String, gEeprom.VfoInfo[vfo_num].Name, 8); + UI_PrintStringSmall(gEeprom.VfoInfo[vfo_num].Name, 31 + 8, 0, Line); } - break; - #ifdef ENABLE_CHAN_NAME_FREQ - case MDF_NAME_FREQ: // show the channel name and frequency - if (gEeprom.VfoInfo[vfo_num].Name[0] == 0 || gEeprom.VfoInfo[vfo_num].Name[0] == 0xFF) - { // no channel name, show channel number instead - sprintf(String, "CH-%03u", gEeprom.ScreenChannel[vfo_num] + 1); - UI_PrintStringSmall(gEeprom.VfoInfo[vfo_num].Name, 31 + 8, 0, Line); - } - else - { // channel name - memset(String, 0, sizeof(String)); - memcpy(String, gEeprom.VfoInfo[vfo_num].Name, 8); - UI_PrintStringSmall(gEeprom.VfoInfo[vfo_num].Name, 31 + 8, 0, Line); - } - - // show the channel frequency below the channel number/name - sprintf(String, "%03u.%05u", frequency_Hz / 100000, frequency_Hz % 100000); - UI_PrintStringSmall(String, 31 + 8, 0, Line + 1); - - break; - #endif - } - } - else - { // frequency mode - - #ifdef ENABLE_BIG_FREQ - NUMBER_ToDigits(frequency_Hz, String); // 8 digits - // show the main large frequency digits - UI_DisplayFrequency(String, 31, Line, false, false); - // show the remaining 2 small frequency digits - UI_DisplaySmallDigits(2, String + 6, 112, Line + 1, true); - #else - // show the frequency in the main font - sprintf(String, "%03u.%05u", frequency_Hz / 100000, frequency_Hz % 100000); - UI_PrintString(String, 38, 112, Line, 8); + // show the channel frequency below the channel number/name + sprintf(String, "%03u.%05u", frequency_Hz / 100000, frequency_Hz % 100000); + UI_PrintStringSmall(String, 31 + 8, 0, Line + 1); + + break; #endif } } + else + { // frequency mode + #ifdef ENABLE_BIG_FREQ + NUMBER_ToDigits(frequency_Hz, String); // 8 digits + // show the main large frequency digits + UI_DisplayFrequency(String, 31, Line, false, false); + // show the remaining 2 small frequency digits + UI_DisplaySmallDigits(2, String + 6, 112, Line + 1, true); + #else + // show the frequency in the main font + sprintf(String, "%03u.%05u", frequency_Hz / 100000, frequency_Hz % 100000); + UI_PrintString(String, 38, 112, Line, 8); + #endif + } } // ************ { // show the TX/RX level - uint8_t Level = 0; if (SomeValue == 1) { // TX power level switch (gRxVfo->OUTPUT_POWER) { - case OUTPUT_POWER_LOW: - Level = 2; - break; - case OUTPUT_POWER_MID: - Level = 4; - break; - case OUTPUT_POWER_HIGH: - Level = 6; - break; + case OUTPUT_POWER_LOW: Level = 2; break; + case OUTPUT_POWER_MID: Level = 4; break; + case OUTPUT_POWER_HIGH: Level = 6; break; } } else @@ -379,7 +331,7 @@ void UI_DisplayMain(void) if (gVFO_RSSI_Level[vfo_num]) Level = gVFO_RSSI_Level[vfo_num]; } - + if (Level >= 1) { memcpy(pLine1 + display_width + 0, BITMAP_Antenna, sizeof(BITMAP_Antenna)); @@ -396,7 +348,7 @@ void UI_DisplayMain(void) memcpy(pLine1 + display_width + 20, BITMAP_AntennaLevel6, sizeof(BITMAP_AntennaLevel6)); } } - + // ************ if (gEeprom.VfoInfo[vfo_num].IsAM) @@ -404,32 +356,21 @@ void UI_DisplayMain(void) UI_PrintStringSmall("AM", display_width + 27, 0, Line + 1); } else - { // show the CTCSS or DCS symbol + { // show the CTCSS/DCS symbol const FREQ_Config_t *pConfig = (SomeValue == 1) ? gEeprom.VfoInfo[vfo_num].pTX : gEeprom.VfoInfo[vfo_num].pRX; - switch (pConfig->CodeType) - { - default: - case CODE_TYPE_OFF: - break; - case CODE_TYPE_CONTINUOUS_TONE: // CTCSS - UI_PrintStringSmall("CT", display_width + 24, 0, Line + 1); - break; - case CODE_TYPE_DIGITAL: - case CODE_TYPE_REVERSE_DIGITAL: // DCS - UI_PrintStringSmall("DCS", display_width + 24, 0, Line + 1); - break; - } + const unsigned int code_type = pConfig->CodeType; + const char *code_list[] = {"", "CT", "DCS", "DCR"}; + if (code_type >= 0 && code_type < ARRAY_SIZE(code_list)) + UI_PrintStringSmall(code_list[code_type], display_width + 24, 0, Line + 1); } - String[0] = '?'; - switch (gEeprom.VfoInfo[vfo_num].OUTPUT_POWER) - { // show the TX power level symbol - case OUTPUT_POWER_LOW: String[0] = 'L'; break; - case OUTPUT_POWER_MID: String[0] = 'M'; break; - case OUTPUT_POWER_HIGH: String[0] = 'H'; break; + { // show the TX power + const char pwr_list[] = "LMH"; + const unsigned int i = gEeprom.VfoInfo[vfo_num].OUTPUT_POWER; + String[0] = (i >= 0 && i < ARRAY_SIZE(pwr_list)) ? pwr_list[i] : '\0'; + String[1] = '\0'; + UI_PrintStringSmall(String, display_width + 46, 0, Line + 1); } - String[1] = '\0'; - UI_PrintStringSmall(String, display_width + 46, 0, Line + 1); if (gEeprom.VfoInfo[vfo_num].ConfigRX.Frequency != gEeprom.VfoInfo[vfo_num].ConfigTX.Frequency) { // show the TX offset symbol @@ -460,6 +401,16 @@ void UI_DisplayMain(void) UI_PrintStringSmall("SCR", display_width + 106, 0, Line + 1); } + #ifdef ENABLE_DTMF_DECODER + if (gCurrentFunction == FUNCTION_RECEIVE && gDTMF_WriteIndex > 0) + { // show the incoming DTMF live on-screen + const unsigned int len = (gDTMF_WriteIndex < (ARRAY_SIZE(String) - 1)) ? gDTMF_WriteIndex : ARRAY_SIZE(String) - 1; + memset(String, 0, sizeof(String)); + memcpy(String, gDTMF_Received, len); + UI_PrintStringSmall("D:", 2, 0, 3); + UI_PrintStringSmall(String, 2 + (7 * 2), 0, 3); + } + #endif + ST7565_BlitFullScreen(); } -