From 25bb583140ec8a1da4ea5b35cc8d7407c4665a41 Mon Sep 17 00:00:00 2001 From: virtualdj Date: Sun, 17 Dec 2023 16:35:37 +0100 Subject: [PATCH] Calcolo fascia F23 per bioraria; fix #24 --- README.md | 5 +++++ custom_components/pun_sensor/__init__.py | 17 +++++++++++++++-- custom_components/pun_sensor/const.py | 1 + custom_components/pun_sensor/manifest.json | 2 +- custom_components/pun_sensor/sensor.py | 6 ++++++ screenshots_main.png | Bin 26728 -> 8481 bytes 6 files changed, 28 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 60adb55..0f4ba06 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,11 @@ template: {{ (1.1 * (states('sensor.pun_prezzo_fascia_corrente')|float(0) + 0.0087 + 0.04 + 0.0227))|round(3) }} ``` +### Fascia F23 + +A partire dalla versione v0.5.0, è stato aggiunto il sensore relativo al calcolo della fascia F23, cioè quella contrapposta alla F1 nella bioraria. Il calcolo non è documentato molto nei vari siti (si veda [QUI](https://github.com/virtualdj/pun_sensor/issues/24#issuecomment-1806864251)) e non è affatto la media dei prezzi in F2 e F3 come si potrebbe pensare: c'è invece una percentuale fissa, [come ha scoperto *virtualj*](https://github.com/virtualdj/pun_sensor/issues/24#issuecomment-1829846806). +Pertanto, seppur questo metodo non sia ufficiale, è stato implementato perché i risultati corrispondono sempre alle tabelle pubblicate online. + ### In caso di problemi È possibile abilitare la registrazione dei log tramite l'interfaccia grafica in **Impostazioni > Dispositivi e servizi > Prezzi PUN del mese** e cliccando sul pulsante **Abilita la registrazione di debug**. diff --git a/custom_components/pun_sensor/__init__.py b/custom_components/pun_sensor/__init__.py index a41fba4..396cfc6 100644 --- a/custom_components/pun_sensor/__init__.py +++ b/custom_components/pun_sensor/__init__.py @@ -22,6 +22,7 @@ from .const import ( DOMAIN, PUN_FASCIA_MONO, + PUN_FASCIA_F23, PUN_FASCIA_F1, PUN_FASCIA_F2, PUN_FASCIA_F3, @@ -138,8 +139,8 @@ def __init__(self, hass: HomeAssistant, config: ConfigEntry) -> None: # Inizializza i valori di default self.web_retries = 0 self.schedule_token = None - self.pun = [0.0, 0.0, 0.0, 0.0] - self.orari = [0, 0, 0, 0] + self.pun = [0.0, 0.0, 0.0, 0.0, 0.0] + self.orari = [0, 0, 0, 0, 0] self.fascia_corrente = None _LOGGER.debug('Coordinator inizializzato (con \'usa dati reali\' = %s).', self.actual_data_only) @@ -263,6 +264,18 @@ async def _async_update_data(self): self.pun[PUN_FASCIA_F2] = mean(f2) if self.orari[PUN_FASCIA_F3] > 0: self.pun[PUN_FASCIA_F3] = mean(f3) + + # Calcola la fascia F23 (a partire da F2 ed F3) + # NOTA: la motivazione del calcolo è oscura ma sembra corretta; vedere: + # https://github.com/virtualdj/pun_sensor/issues/24#issuecomment-1829846806 + if self.orari[PUN_FASCIA_F2] > 0 and self.orari[PUN_FASCIA_F3] > 0: + # Esistono dati sia per F2 che per F3 + self.orari[PUN_FASCIA_F23] = self.orari[PUN_FASCIA_F2] + self.orari[PUN_FASCIA_F3] + self.pun[PUN_FASCIA_F23] = 0.46 * self.pun[PUN_FASCIA_F2] + 0.54 * self.pun[PUN_FASCIA_F3] + else: + # Devono esserci dati sia per F2 che per F3 affinché il risultato sia valido + self.orari[PUN_FASCIA_F23] = 0 + self.pun[PUN_FASCIA_F23] = 0 # Logga i dati _LOGGER.debug('Numero di dati: ' + ', '.join(str(i) for i in self.orari)) diff --git a/custom_components/pun_sensor/const.py b/custom_components/pun_sensor/const.py index b56af35..42f57e4 100644 --- a/custom_components/pun_sensor/const.py +++ b/custom_components/pun_sensor/const.py @@ -6,6 +6,7 @@ PUN_FASCIA_F1 = 1 PUN_FASCIA_F2 = 2 PUN_FASCIA_F3 = 3 +PUN_FASCIA_F23 = 4 # Tipi di aggiornamento COORD_EVENT = "coordinator_event" diff --git a/custom_components/pun_sensor/manifest.json b/custom_components/pun_sensor/manifest.json index ebfaf0d..76261a3 100644 --- a/custom_components/pun_sensor/manifest.json +++ b/custom_components/pun_sensor/manifest.json @@ -10,5 +10,5 @@ "issue_tracker": "https://github.com/virtualdj/pun_sensor/issues", "loggers": ["pun_sensor"], "requirements": ["holidays", "bs4"], - "version": "0.4.1" + "version": "0.5.0" } diff --git a/custom_components/pun_sensor/sensor.py b/custom_components/pun_sensor/sensor.py index abeac78..49a49a5 100644 --- a/custom_components/pun_sensor/sensor.py +++ b/custom_components/pun_sensor/sensor.py @@ -20,6 +20,7 @@ from .const import ( DOMAIN, PUN_FASCIA_MONO, + PUN_FASCIA_F23, PUN_FASCIA_F1, PUN_FASCIA_F2, PUN_FASCIA_F3, @@ -45,6 +46,7 @@ async def async_setup_entry(hass: HomeAssistant, config: ConfigEntry, # Crea i sensori (legati al coordinator) entities = [] entities.append(PUNSensorEntity(coordinator, PUN_FASCIA_MONO)) + entities.append(PUNSensorEntity(coordinator, PUN_FASCIA_F23)) entities.append(PUNSensorEntity(coordinator, PUN_FASCIA_F1)) entities.append(PUNSensorEntity(coordinator, PUN_FASCIA_F2)) entities.append(PUNSensorEntity(coordinator, PUN_FASCIA_F3)) @@ -85,6 +87,8 @@ def __init__(self, coordinator: PUNDataUpdateCoordinator, tipo: int) -> None: self.entity_id = ENTITY_ID_FORMAT.format('pun_fascia_f1') elif (self.tipo == PUN_FASCIA_MONO): self.entity_id = ENTITY_ID_FORMAT.format('pun_mono_orario') + elif (self.tipo == PUN_FASCIA_F23): + self.entity_id = ENTITY_ID_FORMAT.format('pun_fascia_f23') else: self.entity_id = None self._attr_unique_id = self.entity_id @@ -160,6 +164,8 @@ def name(self) -> str: return "PUN fascia F1" elif (self.tipo == PUN_FASCIA_MONO): return "PUN mono-orario" + elif (self.tipo == PUN_FASCIA_F23): + return "PUN fascia F23" else: return None diff --git a/screenshots_main.png b/screenshots_main.png index 24f375ee1ec0d66c433003bb9837ad16c4e0e5e2..b582b1b4785ca77a021217ebefa5e60723a3e874 100644 GIT binary patch literal 8481 zcmchccTiK`x9IT;3Q89NrD>>9q)63Bk<9wph!nSDH4c)^iJr~0wPE! zfb=)Aa+|9tVQSlAQI;=+nDA0DB?l2J^H060z`;13Z8F1Mjh);f#lhyaPuI2C}KyafQ@FAoIZPKawn;>+y0 z&~74WG?c3{z#l^-uGEqqoZx^UL|}HbAyB1{NCX052bC~?0HEug{0Xi!vknUf141PL z=AlJ9lciA|zoGFRL}DKZ00Q~f1Ay{alI1C(LcIrP*4l@0 z2oR}1m^dU#&pQxSc|gSY>!arE-=iyGz`?pYTOcS@LLY_Q4wV2$LBs(7pp6Y*Wk;Nl zA!27|2MmC9yp^cmCjN+rp6uYjal;sd{LIQG@c`ow1b5zPt~ zA_M@66Nx9jf4j1V!SwwB`tdHhAfO>iAK;Z#8x&MDp5s~?1r2YR1OWh3$=cf;@e;5? zb#dS@aRIwcgaH93Yqj5V;sN@o+!f+*9Jn^vR6BX9Zg5RP141N@`2fHYq22oWq`44D zTd_Uy-4+Cd0VIGLQLY73I2=w~-qbLzGtLl5nj#R0(1At~PsT|LEn%LcsHjNX#%}DK z44)IB@OXUytPB;LGkyX9NTBqErrYY=gxnG#ilGt`gKNa|dLJ-2j@TUv@h$f?l}{?~ z$`4A+>6$71G3rx)4g-KyfEwEvM1i#s2!w#Di}yzB7dy%W-KsY>cH+SL!&9i86Joh9 zWE+bb+&KY)+~iGtiG813QCJm#3J_=w0$KxrusM`Iajk%~0dvFy01yH3Eg=%Ow~54^ zmCiUg7?l|`QwSR)9p95RadlUqkTTFPIc|80I9gQbU^NWc&>*SCbq_UDZ!$8vFMrDw z%0$R4sglD-*~ACpZtvp<^|B*VuyucFcTdI1%g)c;3+8=K5hAtTRQaBajPs+ql7fN% zm(8?5YlG3W&h1KOstqmyUUqgcbW9Jd|CLecrnT0~2DVQQkb7^0?96XIH&6LY^-re9 zl{<}wGiDTQzkJINeUha zI(LgSnOHJ5R!^d1PD=U=VzXG}mhFG8y2&SY^bu6@5mf#EBt9P-9Oimpal?ssQ1%pV z>XJRvOYKq5c;T{JQWTJMV%eQ()6-8z*YkT4ZfDTAFl6{_zuZjtfgC?su!nVCd|m^< z86!)uuZOS1_O5V^+!{8e4wC0nM(497FYw+8*RQ^p2wE~onEN#H6Ko4FLW-1le#3nC zf$DNNNDNTrVv(hOyzmN!B+yZ)Cn3!h6Jj`_-W{PDVQ_3UI})2C%#sBeuX~FQ_;7JN z4_DaLL5R2A7LA}+`ciDD+7VNyh4$h>G?um+gjtloLtiaMNn?>SynfY%(5=_Rb*ui7waUdx341JaIjv5j2+Hz(q{3R=m_7#l3~rJ)4$> zr3(#dyW7&&;mtoi6p{&HcZ5b{(;9D_4R*&^K&egqJSn@R!Y40k))~e%H3Es+2)^FS=W93P#fe=8ge>YQfe=~BBbKLQc zRt-XEH0u88+qGa=r3cF2e(>7kF!f$%HR#wla> z+)pA)h3|kIqs#i*xSS5!UcXm?apZ2=2z6Vx=f{b|lLsMuo zq}=q#C&Fk;i>l^1TB0V$Y;4(`yS&aIQfQ|2tR7#^IoH(mW4}Eo5wzp*Xy?%xs{*IH z^*q@cs~0rYzHrH*vT*5|%YMTnm1Fgb5ZMHjNNt`lZnddn66%pFdBM5h;If*XquGmI zoSt}`O^ZkLT9ozfly(CXSR=VuT(G|NBWl)qyzsr4n>hJDW9}~ol1cp zc9fHW>Y&g-I!otar$olC4=q+Z4(g@1;_>E5r%63mZObqo0U2+U4+yIe+-?xwmeQUd zd2!qX{_OLbwRTr~Jn^-*vp_{sDW-MeY1E_bYEB;fb8!dPRL>noPXqk?{1%(&^(^>_ z_f8rvG=n9vA>L~L8clTR)kg&cL0GC@elS&-QL=@>`UYtEW%tQG?e;Nyf0J@p^Ktl# z+J!@k^V2DP<|UhyIcsq=*O{dCA!yvnm#Hyw{zf|_!0h>Yg>J> zE3qQPefNvopwQR3hL#Qq+5LTOcaengYUPVsfSRYK+&j4clJ)VQ7~GrC-WnRs6pgts zn$j$sv=kd0At!pJubWG^C`NR=N)qW|HxO8yeizmG>OyVIf7H66JsA1*8^~CZvu{qK zjoKX2o1#IBWhH1>EHCK(b5oBHJvB0JcdZD;BWP8O_cwQp=6|(5z;!tzifZ7i!b%sI zv3|wEjPrlhkdGWjZFCRWKssN^uuF)>VOlRbC^{<+x@hwZ@-_b8%y~>(W4(qX_S8A& z;}3Eh-dsy?uVK?FEjuZ5J4%S071Y@slYqvnnX48OJmtUfH>5p#c{i{8pkfAkt1a zuHDl{cv+vpIN3qtHTVxQnzOP`1JK=mY@#Q_kj?6bDS7)kc_7VM9eLhzdrc;JGZjx6 z?f3=3Aqx|^EAm?BZg$H-6ze+LYzT}W1h*K4vOJIYpO>>_IY+1L26vxjSw{UKDYzgf zIeIY_=G{PPm!uvpcev5*K=q+3(MiF1J*Q2oP;GaxV zq%@1%q~{s}`r<|Lv=qXMJm*aG9K-Tk^d5ZUw`f(o3+4T}KQ(o~uLk|j1xn#w=f#(BqB(@#7<8<^erh5$hF=59f<(FMr&>n*{wXwf>7@D zbiXLVKx^ohbaHgbCRL;p^H9`7g7NG#i{~w^O-9ZA(Sh)O>4fIm$sP(0agwZ{)g_;HFy`MHZ6Y@|`kH`BrM^fY+I@84__u68cNk4d1apO`qO&5i4decSkyi`~6 z$0+{MHg>J#Vi{ZtLy@3t#l6G^UPoOG(u(+o8WL^<$)|4b{5lSA>bl2%us^@?d@oIS zA9k@3Dimp!_8X^j41f06Ua7>3PS3d9#>*JhaM|y$+=jT=qirm5#rt~?S&xDq;zQW9 z9A4jDr5UoeKiuNJ@jWQi`_Rbq9@?gEJJRgOni9kp%?jnU0?50hqyXolQ)axWM1=Eh$cY?4~q3q$-e-`$uIu{63=h2jwS8r07VC!Vw|7WWuLk%bVKswz#kKvwg+<+`R3o|=$2vkDGa(t+L})LrpO{Ja~sA$kJ&H1 z!s%SM-DH0klzx*$Qm!?~of61rWn{hIUpbEMZe2l3L^f}Mw~AU2p8B|`#TT4fn5*>N+fx~bu0w6-U~ z17Y&+v0GoU_msF+7guwek56I>_C(=y{P~{b1%l~DNuPbynq#9-5%*c9!}FCOk!gw^ zg9dSp5T$!aRZ8tb4lPSs!RD(Ql5+^+!u7O>Zu+y|4_-5QqcLSor@It8hZw+yT&+`y~Q zN@@WXB}3APYVhV2giGG&28Y(b=WgxKVcCAWtWrb!qH*%Cw0XX~qOrM1u+FkfpFx{k@CVh9J<-u`*H4YO^02M8J^%EDf5sHh<;(Qx zMC^%HfCG?9K6(Y*W@?;f>#Q7ue;wCX)|^=n6v@DbPMc% zO&8IIqyA8*bn7JQX-dl&p9@#s{xT34ZZbSj23Ux=Zzr7cz<-GVf9anUeqTOmm`jlk zbMrC1wakU;LQ_iVgD3EOrc+m-)q{=?B;nt~ozUeden zk#Ir8FRX*SR(}YYCg%#&S1vIkin*taH|rgk`QIRdd-Fd}A^#?uo;D@w6=+tj_?{^G z=6vyJn%{0LfAhX5`ZL$kl5idHF@1vU{v`Xo!H#b--IgFLgHT{n(g^iK;-!M0qGyYVC^o}V$w7%?0g79(!-~)V}r>xh? z>E)bdulQfuABgjw*$*#dDm)zNGey~VC2BE^$D7aM60-D2CK3=V~>70 z`SRI=|D)#qd!mqmW-q7R2dZ36`P1R_i@nNu$2(g-RH;IjGlJ=5esHF>A;MpnSIf8k z0ZLT=Z^)n1_+%*eR(0jY; z9E%dyU#&wtnR*7*+x@ugNipFDl*W!S6xrSWfaj+)T$a}r*<4ufd8^Yw0Kt`KNtZ?l z;fAu$CuXu!2Oq6c8;#vemFeS>j}}{hCh*aJfF*k3cGq;sNpl?!m@Ch$ClbZx-CgoJ zfHI@_QJ_rY@8DA8Lx}*SdN)Ih87V|QM~#9SIzlOs(tGV(VyC}?x$7sSWPXkZCnou^ zS}Aq48EEdR?&jUGYbjvTjB`3;!tN|Xqs^rAPT!-6_nEwe1C+hSbXP@|xF-|^ti%F; zGs>@1iW%a6L@|FVn|(s+V5IkkDWRPO{jp>e+S7Im|3L80vKSv`O9mF+?^P&DI>w)#o9aXUgZ_)A~@BaXxLvE#4&Zq1)YXlj7q^l zr@w-@=gtW1ewM6$o`fL@a0MNBi@!IspmZ#=yNv>l9lZ#MeP0l0pX>Dby)Gl| z>R{3!oUp8U9;JcKpp#GMxQc(NtPiu@Q+`1#{`{a=P|{@HJawBk&c(HgSm`a(Ec zM$`N3AM`!CHY3PS$<2~*41aL?%QwqF@iLgMnbKRi*7kx?jvgX1n#f_Vf^R7*|9Kbk zzk7hAv}gO8nK)vfyyp3-#W)^qGGZv3NA#Sv$v2-(S$BM?XPk8XS4S)-asjv+qa3md~fYduhpY`%)aPV>n$V|rKY@;z;iWZQp6oj)w^k2{9IL? zCsKS&Q4G9K=M=Q<9<-4Eb7hUzrupZ}W@-xCmxv8iD&bOTHHD8aIY!n9(>kvgdC#Xy z8eRd<;6z5;$CcWJUOZ<1qaAe$xJuQhfu22A{^`HuD4@B%$jF% za6`S0!PgSMlRO>4h5Rg!;=?qt2^yB%7L@JL zh2GIKJpw5TUqf%YbfsWMf~UIpE;uoys6mgiyUJogAF%WxW8lO zNWz^5%~V^e1`qy4I{~_!sEAXfg+;MAc`z5hZR(~KFSqTfulpw|m1XLIOSa*Ioud~r z(lUEamI}}JQ@$B9Jv|vya}=KVa2x`1R5R$h+0=Dagq{iD_hHs5z0O;`%lo*LSD( zUMp1q;jc`79LwKG!Ca{+TgTr1ryv^;((sFk`ioI%@uM1$)lZ|U66I3DM;WbqEbv+x ztu<#!4TC2iUjjx0{@}lcg+6!qJ=!_GT~)l#!koHSOFpt2cY!A*7c8*P*W9g?ZsfjR z=RR_`f!8su&TzzYlbvRV?GoTK+V$=Qfka*a#kQ`N(JaO8VD&d)^)AQBH}(^ zPxN&8`*C{HHJ7d_kLD|ETJ$XeRF}8t%gjUmYSqg$4$(jT-={cizFQ9q&WqLTbiGHM zQVb53^m~dlVv-B(`$V7IE}y1=*9cgUH($gi&WLx)#tkqzyAPNgCbOnk{dMn1Nk=#~ zq0DQdyR@0PT$|1si@W^#v1Wgn6twYcb+0j>^)B7WsBZZrkiT4Rd!*7tPBJ(8y4_2( z$oOwLuk)8vANRH0Qu?E8GPA%rvd7+gbjhuCGcEvm^Yn1P;^^|MeyR1~(3@t^>g;RS zWfAlL7ZU6iYbqWVgDF_^Mh%U8kNO!Z^h})!vssu}voHquUjSqgzP-aLLq_b(G4$)*=4|l^4U) literal 26728 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

3rrYHnuVIif0sk zqlJ<8RAN=e_2rzA7C%M6Co8-SuO@f&)>d7Z=9wn>1YhI5yF9_c?*>Clg6xlLA5k-R z?na1wKh|HB%bI~ALVUl;>$iJV!}4G-&&3zs%goNGWtS|DEAzH-39uYdrK8#^*wyXJ zmBrZyrbIfZPf?+rDf=t?>0o2rDZ*WXuyQZmUAl{C8|_V?fr~ve zOpl3~AgHT7$uKlID~|L#M(NSScaEhx3>>1?N%HN6?X;s{DCAWm~7@0}qSVCW4{T0%p@BhD&(=I=g)4UPD-DC(G z2_||p&uuCO(16KU*eZDnhds%R`2-#qb0yz^%T;BV(s%B%5Z&Y{S!}G!B>@2Q^17=6 zmEvdAKnHgqhx1cpG8uZFh;&M)(&Nfqt`=2D++Aan)G5|2Mrg_f3J8HTi=q{=5ZmkF zTJsygwSH4;s#>N#W|(Z$N%4L-kcYpQF=U7iS4bdYD{MP7c6=SAoVnLdkmk4V&0i@# z76w~(JW{LZs!zZT+0xa={= z`e;f74LlfDC2B+((fKgs*oH&eqHgXvSIK^A3e)sjb9{WZ!gsR;NyzMSc2di2%jRUg zPv(ZE^moS9*;c}F|87po-ZD=l)ncLKrC*(@nB0sSc#nP zr;CiNGeBe^V|M{z4;Ut^QQ$_`X@CxFf-gK>9w7(cL)- zokzLfdfESLwoLA8U}@T2FKO{FMI7?DRuYmmzE^Xp9X%S~z1RqC`^G)^nyFe$J@)0e zqcM3e$80i)V}@D&TudEXfmiW{&_^zY8Vz4C*k)aAk&%Emw>A~%3}VinfEsKUXp2e9 ze9qF_ymz;QQ-qAy+>5XZ^=8 zFYYWTv?mGL_8IDfs42`BSBfd&8J)It%}2@!Yr#ugBDtx=^aZU{1;*Jx@!`rN>aIqJ zM%5>|oT=m~Rf|zY%8BrzQ5pP5ZG=dWs5oSh*x#qW?<+++Z3?;0z?jW)R*qX41@@Rd zRZsA9&YLZ(&i^Tu!?gb$F~glcNpr;P2|{q^K6cJ-$T> zkCd$jvpJ@AlAgXKfw5q<3SH#HrkBb=D`E%?TTvmf*nxjOVfuoW!e~#@Ysg-CFXacT zoyV85Ax$O!ZZ*SUN}K$FA3Sy7#vM)L4*asAGPGC0z-)y>wS~Y>pO)q*EC|4f@7A?ejGY#AhmQ=YpNA3C6ejG}VPZ$6aHb}E zc6UvadlP8c90Cda$PfY^D@-{)63S|L$j%{+t+n&NIOeSAam{(W}4*`VTiB z6n}4f`=BWH-2m8p?$F(+C zTNX(7SfrjSL|=~LlFGVE>cU!Rb;ydbW>sW1%B< zAkTTInSkBptM+QzZoSpwk8V0~D==H8OWM1@X5A0X%$DGa-GO~?gBpmSUB~q~7jg*W z^Ho>1s+NtH;!Fp%2CX906Vm%*U-f|rh~HySFtJ&c-^31EY7cgL zfJ$AL6q#|I8!K81vxc7h@&B7zCh`Y`t8;DeIy(a+5ZCJ|*F+-p9syg<%^Sys4>dpt zD+?Xh6<$ktGHEda7*5H?yv~#XdeKht+c-PwY73BQq}um^u7B zm+@gPOQCvOuj#JS8;!HOsg~s>mKkL+)?5dYz8~q&+*I#!y75Tpdi3_UpOgI(5N8{7 zppgl7sHme>jTt=L6r|qV|AKS+<{zUgr;LtUn1>S5)Ud$i6~ZuwOn+0;l#5mWMd8#w zE756oE?st57~*m`7^sYw6DOu_RqGU?VyjI5-&)!MRSijFZK@nA?r2i-*2Xk($MxP8 z;K*tZPmM$$bj%SS+q3TrNd1x%FIhVcg{6=iqCKuw9vw669|S&0rb&BO#gj7cLEL{z z>ek#V+SQ60>4u2>?k7+3JV!bsFR&e~vEgDaQOR-%{GP{HNj4)7&04Ot=Eyyelr>~m?w7KiQ+>>Zj8Xy z1?v(YTD)*!o}UY8O(Aw_GTp2RroY-d&$kO{}E{+LGayarJXzdvgL zh}Dmia=NxDcfDk_msHY~6A89DNoy+FWTXEX3A2b>*K3AIwMUJ6vV+z}=nkbSBCayi za&q7ndqqX~tsQPzVmkBLxcSa=DkX=l{kWL+P_#t>gwcmfRv`HZVoqN(O}R^Rp{5VB z#F&G>r*n`qWp|lBjEr;IyBEBge$q*3mS&#yOYkePDhyoje{_QdZ>4O^!D`PkC>*^c z6LQQ|qA^1*kX@EU%mO-9DozPlj z+aI749Mb8o0qfOH1pO}(yw4B)hXg-ORu8K#*n!B$R%JTdE>ed7Ubgvl{<&El3pg{EzyCxp$=8ZLCzK}TM?C+q{IQO zs2a!M0-x5|@sQXW2x(Bxy0sNtpe50~(Glp|(89;CkxU9&7ZI8714On$OJXs1vDAJj zY}Kp&68wx@bQ*}uY*x}}@p4yF{rkiZxk37d#K%Uy1hk24d&()P`;&3F%=e_bmd7PYzIfi8U* zoN%mG$X$|vqRgiE;$71_)o}SF+~9u2|4{U)1yUxTGsxe%30|BqwI>PRL5Ait8DlQ_ zHid`>Cs6Bx;5$jVyK=P2Znf4aHCN2hiGy@9_GPGJ70p*jWWnii{wlWb?$Lo@jMjI# zB8gar@APBT1TNxmw-+k9j$11t&b1B-QlxuP_?l|byHIrN$>6z=DGyLe-S0MtMC@S1M*-mWBB_9Aq}yM4!+f z<;;Mq%RxfH>tAY`jC}A&x0lKwh2a|cE0j=grA zsB__B(eVzEek?M`;-;LCj;L;d3_@v@c;3!>TABl4wLFTeGL8FZz8YJ79Kw#dECpip zUi@D4y>jT^0-~o^`VJlI>dId)V$|2EMoliTq1Xz|0WVSJS|nX{aGo~ z-O&PMJ-N9YsNsg`k_+-eSNZry{eqqB&^f-D^ zFv~8cPOdrk4xaV-OFKJ5etOEcUiDoAS<5O>Yat5rXqkikGEb9#u_?lm(311G@dNEG zpECLipGnJV5uil=HSlyg8I(`X-hk|H=;-KZP`>Z#ZzZF;^)mynm(S$C_B>bM?w6v^ zPCDUJlFvu}PVJSDDnn!_irGfIMV#Khbt!7j-1g>)iRX6DRDCf>Qp@Y{_rUPDlafOC?f7CQseR+IWP?Jt2NOU_Lkk=*K?zD z=G-!ug#_;1S=iLj%N~MLNkV+(b@a~}DY?_2Y(K>##!ktY z`K`^@l*gRUOZaO$;ZZebUFX22v7;){v@Dc*$QEU)tZRuiTH<*vR~g z>tT>WZWb&mVhYs@TfhS@rK=X@_Je9QT48?QdG4D?FvQ=O-{;$5@_3+oYHqq(a4Bzl zBFXgcmbn6-e0sdBJ!CBdlVYR?Ml-XD>)YLL86XP5=?{)hF|n|^S}e7-ng`9P z9HRY4nS2V~kVarsO0Jw$APPnP>YK4(o#BlP__ukF6?lUIDAI*^?9rUO!m zYX)C|6qdqXQ`ghXxzs|NXn-J1-S(G0RCM^)^wz9FP5@^G){?G~ta!1me^bK9luGgo zLkerM!`~42T`Q)jV|*uH`jHDGw~NxVx1%&NkbjvYpMmSh#~1}8Sr(?aCb;mo0B{u&#PZAC+fRlWZmS!{xPMJSdX61R}Z~zUTk51c)G;40&a4#4! z#ReLVaCmp>UeJP>-AfY$xfwX{H2pP^?s(<8J03d$$V^$hh0TH0E<2L%X7?qqlF0^k zo|6+2%ivpCOeER;Tq_E>-n_SfDHDB}@U&Fms=6=YFr!KSF*g#4Ev2(8%$oai>AkC1 z?uf=DyXs;;($3IQ>0bJ!|HJXCpmgroL|T&q@gr0Mp0xH)kqEtjE1z!XSb-!gp%4i% zU>WUCCc#mnIC;rlhHg-o`_^AnLX0U>(2wr>hIhV{8TypA8`#mLq1mOa@X3Xhn{i<< zNv&b?fQl*h&((Ln%{m7? z2(7WoFg4v!#aqHWt0JWi#&cm7&`Gn%qUR@AtUsE1$qxlt0uEy1YV03X*%S7pousd} zFzic9so>KGNBol83&4uhrIMV7r4&%Qw7$a=myKWIGTsxvX!OKYCA7`lLpT#C`~PDK z?T&OM?qlcSa;$XoFMz2*P~^c*Ess=h_i=%=z|hX%eV)2?Or2A_V?E>)ctMd0rdhgb zhZCZ;bS~yj{<~3gJz*%Rv|-F&?_`p*vDROidd+r~j90}vT2OtTnpO&sh}SBJ{@%-p%lga9QG6Tqs$d82*n)v`{<|O#FZXXSh|@U6H*%B}NyG3iCz0nxG!*52p>`9E(6Pa4DQoBbf*C9T6%U$3t*ay?BfVSuH zavL>i(mTrv&4G!6Qx9Lpy{6a}Oza*edtYc10@&r`=^Y6R!1#1dNYlQC=G4Uk@cxL3 z^GKq7V|TDz z&si&wVHeY1h%)noP&WA>U;O4}smq%$uOW}gFG9Vzu@9W1iDPCP=B1x^wke6i=mhV{ z)TryNgUX+#uhbMWjCmiwurnB=BHXp87QwSyDHG=S@K$(k$32Vv8Mgahor9#e!GKrf z3Ax!lBl~jV^XJcLnM0zjd;78_t;HSa?UApN4p9i;JG!|}_-ksK| z(1Notu#eu}f!K}Xt!KqT?UEHdp;turfX1Pc(2|}fw^Q3>2#=z^QGe9dt|1O^N{De9 z6kXqfVqXI=Sdt{p0+5^xg9c_whK#{b(xNd6CGBbK>eQ9|N+H2C$_?S8EA zu4N8YUESWlPg*&N^uzV=@X*oG2?`3zLj7_Nm5adA;VK%i?FnB4QaMTM7!PxT;;urcsXJ^Fh; zCXw}(*I5-6CySlYM_V&>j_bn*>mvmKuL2{GB$K3+q>-eTeCj~APmfIw#Y=9VI6K@6V1_;m6%UmSRbI&rtrtcYe+HH%Lb0U4=T5fd<>eLhJRg