From 038e015ae8c001b942ad325eb63d006a3d0c9184 Mon Sep 17 00:00:00 2001 From: Julian Metzler Date: Fri, 8 Jun 2018 19:01:43 +0200 Subject: [PATCH] Bugfix: Check for updates on boot interpreted failure as success --- WiFi_Shield.ino | 20 +++++++++++++++++++- firmware.bin | Bin 345248 -> 345536 bytes 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/WiFi_Shield.ino b/WiFi_Shield.ino index 38b4ced..9411987 100644 --- a/WiFi_Shield.ino +++ b/WiFi_Shield.ino @@ -90,6 +90,8 @@ volatile bool btnState = 0; // Current button state volatile bool btnPressed = 0; // Flag to check if the last button press has already been processed volatile unsigned long btnTimer = 0; // Start time of last button press (only while pressed) volatile unsigned long btnDur = 0; // Duration of the last button press (only while released) +volatile unsigned long lastBtnTimer = 0; +volatile unsigned long lastMillis = 0; ESP8266WebServer server(80); WiFiServer IBISServer(5001); @@ -264,6 +266,15 @@ void handleRoot() { c += ""; c += ""; c += "Check for firmware update"; + c += "

btnDur = "; + c += btnDur; + c += "

"; + c += "

lastBtnTimer = "; + c += lastBtnTimer; + c += "

"; + c += "

lastMillis = "; + c += lastMillis; + c += "

"; server.send(200, "text/html", formatPageBase(c)); } @@ -343,9 +354,11 @@ void ISR_config() { // Calculate the last press duration if (btnState) { btnTimer = millis(); + lastBtnTimer = btnTimer; btnDur = 0; } else { - btnDur = millis() - btnTimer; + lastMillis = millis(); + btnDur = lastMillis - btnTimer; btnTimer = 0; // Discard presses <= 50ms if (btnDur > 50) { @@ -482,6 +495,8 @@ void doSPUpdate() { */ void setup() { + WiFi.mode(WIFI_AP); + pinMode(PIN_STATUS, OUTPUT); pinMode(PIN_CONFIG, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(PIN_CONFIG), ISR_config, CHANGE); @@ -608,6 +623,9 @@ void loop() { break; } default: { + for (int i = 0; i < selectedOption; i++) { + blinkLEDStatusLoop(125); + } break; } } diff --git a/firmware.bin b/firmware.bin index 4a223c0f5f627def0c735dd42db1f0ae7dbe3ed0..042df706e9deaf1860638ac4ae29a2175d560e9c 100644 GIT binary patch delta 20239 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 delta 19979 zcmZ|13tUuH*FS#NK67RO4+sc|f;wkF1p{U9l9k9nj#*wp^PU=*n);ZMnrWG!Ipzfw zIp$U)!%Jp)2}3<*)&uA$DjJ%ZmMNMS@D?H}A~L`48L)ca|NFPkclOz9uYFs4?X}mw zQ2vs@oJE1TvTyU49E0FrP~mBHjP>!b`WN_mR|pm4ioZo_8{b&+P>1>UP^6JQ(r}-Q z*~%>!Rk-p6!NXdlob{{c7KAFw`_cD=*esN};ukg+Y+C@7DYGMrr}dnlv|0Tk;3Jm9 z^4bNCCK{2qH0UM9&acip6I@8$tD3mtD^}OVSL-2g3oxvyiw^+C1NovWJ_neM?+joy zupcM}Zmr2X(|i<(j#pc&>74@AKA~n&a{1&<34K>2gL<`9SPREr;mSkTAxXeL=bdon zzUvUvzb!d}bSJO1xk)dUxmA6Bd^odTRFlWsT1n%~4nZMgC3JVB5 z)e~ipoki=V@jCVyY>W+c%F*v7E)bdGzVU8-#jH%^vd1$n^$qD)-te2CmL9scAe#Wu-Lyh zSucadUTnfxgLtfg#qpv(4BzQ2-nul2*57oNBMmI}1hAypHSkE9$$A<*Qjy8} zGk6?_pYp_mN7@Y*=Pr}=1X!F-ll8c+e0FC8j})i3=3DSMzBO47Lz`sB0h86KxA=hR zn6)oO%g*QZ=H%+l$u;Q$cZ(V$px&C?JW{%Cx}1|{bWf;~I5Skm(Za*Rgj2`Kd?zMC zEjDW6+a&OHyxO- z4tu9VntwsQwE#m9%u*WLSLs#a+mT;y8iJ*KlTzk_WHYirwqAD~5-|qKH8<&7R1B(p zzo{q88Pp092`YH0fojzaMKILPdeKe6#~*IWJ`*g4&b-f*235ls6c4(llkjoYP1$RL z?a=e<`UZO3qv+R~l+i96NtrJg!TPgU$&kl0F3w5#=rUm(#j(XEKm5}gsI zksK4yfBS@gDdKAMI`^Zx`16bE;f+b5qYHY!5`+QSuK`N?hYy`nET2B*<7=UN9BJ?#S)p=9r zbjbRu(N%1l=Y^P*Y?4C{k$_M88zvd^$tfWFY{w`QQ`(|U`Dsz+LZ!`GKktePwDgL5 ztV(2m&z+6}mu!)nI8Q#3EwMQQk#4B1$IyP~2PW%Lgk43)Hj}l|<=o{0n-OSf5~!Ja-nRcsa+JtdEh`KF(CI z?nz&g19kK2_=zF^YkL0IAhJ5$l8rGXtbGzK$FA=%lI;DUfR6rZ_jiNRLQ&=>^r1o8 zpQ5mOX*;HvtZNXf7dA`=gl*5R7q;_lwA;}KKX#!(*p5l{!gfB?3C>sav@+>m!j?|E z6RPwn|5VuaUTJ?z+wqcH+EO{#W;=U6mG(J4F1d{a{DPS#Ym%EP+SBxv2n^DDrd|an z&$`A1_}3c+X@>g4jL2ec91#e#ey1S^tO)7hoJp zyX&crRFgGRCqjwd)6GVlw|$CfT&SOQpH6j5)@jxsT}A_RH`uDV+C-U(XIuBU3!G%K z?$tl+v6H|i!#3HI8f=pz+m*1fPLZCtZIiv7t{Tz0>O|`WO3^0WMNAP+yT$0%bLVom zo=Z6mdj5Q!uIC0_gq36!l zsLatiYi3}aqqE7{MK7kaso-4gQ*E}dgEreO;F2sRYe!w1rH-bAUuqk)S!$u1Q?oi? zW?SYgQ$Lv5BKV5Cu@!|W>{JSw3(aROy)AInud2B-&(VE#@houuq~^_fp4lzxU$a^T zOY@9fLp`kR!XiT(tY;~Ts92KM=KWuZrmA%xG^I&u(ClRay{@6NjsA!XJ=MpnEL7eY z?L&#`-r3=v)yPl_2S7!~00l>DmDs{jcG zGF(%4e>jrPs7>bdAg4NX&Ok3Y1KvDvD?{Bg=QF=guQn9bPcO=wR;y#uRyMaSt&0x@ z(-pY?5eT~iGclbjRMkJdJ#(H_6VqeUq>~a>-!DCGv!Kf`fDlZ#Xz%77Ww|gV&QamA zKdHOhw-(NRem8SP2eZ@L)R!rLJ&uz@iXHPk^7E%hG(LIraq(1HzWcLlfk_Y|I<)O} zYQbZ;9?^}RUf_-`Hb;Addu}~@lkx2#FY>S<(_c z!(yZLm&Z`XPmKvPYer(Rg`spf^yEcG<*duTOg%ogd77hCz@pp4u@8adOFgknP@zLk}f-PZq}9iBm6+Bb}v%iccCBlFF{oDZcN zb@+9b>%aE$I*)gXQv3_d-WBy;z*moz-!U4VEv=4?MrFJU1v)nvm0wVVfFkVYT*}uj z=R9@(JcT)I>X-AnGAT~IH1EYm(#E>_eVb#0+To*k=6Fs`{b)UNeyTQ^KZ`js)n)U8 zJO^SBWav?hx_y4z-qI4ul5^JAlI}?H_=6S4%H9ixpqpo#Tb!eyK$cCy_1GKHK6Zl% z<}&AOoZQ!^xkVZa>*^cnXUQpwRFu7SvQH!_kJMI<+&7NblryESMs94MWW3#2Szi;^ z*rD&EGA=9CH6bpi!zj0G^AkH%?Na8~Sqp2T8apQ#Wl7;+9FSsjMuB&LV#~HDAJ&0= zp3#z%EC;r2B`$d25|ry|`vpy#NR>uqYTduI%x+SLE(lGFm}IuC#B9g}lCabAP zUs7x(!1#B}w$3Ld&L2B0}4dFqwdn9egrcmzqB&C`RXnhyC3_;<4Z zqeDgkH9O|$8?-8+m$x})I^1vXe1jk}=|fPRyM)``gEu_E$dtA>+fyWPOFtBNx=$^G4ZwK9=CBk|DiN%;*s{1{M+?fd zYH2J}det~Qjfzks;djLor-xB-J+k9Btw!=NHXQh@#*8Tf&I613G{KaZSp&;nU*-`- zYHBRVf234Cf}IR9D(O#P;scG!tw(Sc?D*(VqkG2zMrBC#2+=v2lmHiYnhuearRvDV zW-_aD76*CuTB*Bq`AV?*+2UX5vN~|+pF7%2m zm}EJCt(ci!Q@dnzr!MNd8OuX@pvPmT>GM1P$feNm<4nd$jW4#9^qJafX#%CHDNEy7 z@-lV9(t-4g`f%xXR-B=3UN({Kr#%1VHuCI#3FT+Jt!z~eX~O7J9R?V*2X=Sn<16b!W1LiC*^?} zrl!yZ)uBG)Rg50YSIxFwYt((}g&@BNC^E8Jgxu8!y81?Sj_i*Gm;nSO}gw(;=?Z`K8Zgx{WWzA== zrPZQ@5;*jRWmuws0Kg0s;nXk!VHD5<=mQJ|l7UIUbRZKdn68JwYG4bH3lsq*z%8H( zke8!eAPVRN3{K$12UK7?fb$@Y+=rX7=b9D8_)+B z3M2!w^Db@qTx7d4)p^_Y81q3notf8tdvo&9owoCc>wZI7X5P3RJ%}uMTfZ4YbWio& zX`?^Y{yS&*JMTadQ5QcS$N=*r_dm@qXggiKrXNe$Ogs( z`nh(}vb<5nCn&JGq20QO1su!BfLTpA(S_EiGfza&^1SsYKA|R&`h1KHl}jx7Z94{_ z=}vF;<&vS4t8OTHQ*=_5>T$9|^Cdrnt7jv421?S1{1~Tt2>rC=ko}3;|71IQU!8rj ziaDNDr=FU~>{rwar@BkYu$c>0<>wFBmF0Qse%?$Jq1u0WlT|VG>tC)tzdsYr1y%yH zfiXZ5&=rUP%z!W8p~F+LC87C(kYuY`t{y$}3e~8AzxJc|^TzzTl&Gm%dA7B;_l=lN z363zq9BWp*)bMjd(DvEqQki|4dgt8lG*dnL+hBH3RV}}7VB45_==USkLCrjGW35i8 z&Hrew-Z~$}y!Fp;`azBVqnv`($O|34?E9**yBJ{?s?>28S~YQM)y0W2)0a3)l!Sv- zXQjIOf}%*ftIrQuAPP#ypM3qy(lRXXMh`6FY=Kc{lq%KVE_7!0yQ<$sa}&q*dgj^p zo|^B4E$n*Jq@+vqt^? zVl(3|{rEde{q15~TBx$psq7Y0XOwoJ{p#k@eiWK_zjO+btd6}rjSi~kE@uUgxQvqA zb~Dy(H_r?pM?BHsypR6GJUXS8UHO74)MZzr>597l>UNmriPsj>s=WKxS`oARsX=8^ znPZWCW@CTlM;@ z1#MR&{;HtiYO{*B$fnM%=;mY3d}zLGws;GL#pGD79;^7GnV|&r$xX}$KEgIsKO=6~ zp3heo-A!Qj5AurdrV%}-_PO_hf4gGvE>yb8i%0j0iZ)W4Vs*{E4zyT3axV+J{t;C@ zSkN(bLseXm!@F{DqN|asrcR$Yl|Q*GjRm``-mhv!htK9Yx{) zi}vCFL7Vk|(5C;JwjU#4TLn+6&XrK7J4W4J#L>jNmEk(=Q9UiKV#EPYt9^Rq@#11k zv-J3ZNQ7f??&KdV+TeNj$ffdvM>}sDo`}>#cR;KUT-43|aoOPJPcOs)zxrV`Up~!M^d>U)w-A>Hsrgdi@~M7|1jJv4S6~U?jnveC4UDbqYb8wa3uhT*5DVE)Va#vRp|TSL^`N9~$Q(!&hQOlj}GyCif~?>=hE?60a` zHG>$gN>XZ`m8#IZ)!zNFw5bp z*W-|Zj+PB%`w>(T$7B{0mRFx~HClx($7UHIWytzC8=NO7C9Z@TSM2)EQV25kwm5?C zd02HRcKuu8nd+>^p`nhZ4Fx-HSI!2HIV{H9L2{QoU)}jQxQ{)c(qh3bsJBH9ly3a* z%7yWN*N&?7inq8D9;4#7oW6QK)a;K^>s#uf2G%ZzoBTy>t7wM-^&UIl+tSzD{EeWRAt^8+BiHl_piju`>h2*!KR)@Zz>j*a94ODw1imjAJVpf4j4C zB+Hm8vq(8I^iV6IR|4*v8au|T-CZ4-=V5i4YY;11tsZr0Uebli!R%qAcVr7S>4m^g zawwdJe&VFpeXs?z<%o*yib1jE%e+02LMwO@QHQAJPITo`;jy+qGKY3Ix-n{`K%Lf? zwe5bZBHAyqpld;Nj3Xz@jAH+skZZn*O&F80xk{Av)!Wng7jt}`DMrP&= z;O{Yt39`?805(}Fb3yIAo$V@1qRkFp{sW_DXdy3W)S4-WxUWcd>cj_&)RL7o;WI>v zpj!U99;EOh1nqo_(4NDeOV{H=7x)Q76H5BzD+4aRVvm#a-^h0^eKI()4m(5a%lh)> z25N)c2?jD#F&}N9L8c4(U@77JM+3!DQ-0S#?Y$1_w0X)r#gj)$lxW)N=6T4cO7v1A z$Mn0(yG}<-mvWgOlqlRgAix#x3wQvsc3-059*wUSpoG=RZT&*slm6tRe5f=1!dLo` z-S2>&)+=G8o@N-PP(HumL(etN)yZz64~RQ>Y-4)X@AIcb_(cO?f3o@ejj4n0a-G~) zFTf`;#XuSSyT-J^Z?sMwpYkDt3K(bgr#JW{U+U%8M<>th|CvrUtx@P@?)0UN$`-8O z!Oihx0)EYYpaKY2;d+AJ2jN1#$d6v6soHTrx=GCg2D0a}Df;FD7KcMdBx$ zP>^rG|DqD*o-0(91LQ!|@vsR!+qIjUddY=zNH_V}hPYHL9D;9x9KX4!qnmiv6`Rv6 zF^2}^5Vhyy0%)p~jOxt%j{xe*#Q*Z9fz+R3_=G@ui;W28rvfR4oLmf|$mS(~Vyl8S z1srz8mpnvQfE;9Ay^i+`g8KZ*GlJ-2+RX!+(s}=)Ep_o%=fPpXyAXr!uV!%;Olefa z=LJ(7?dAEw)HJ~VN4-N@opoPbL#w=h3d$+oTjq;EIu`a#y&sb2UG+B zl|FX@HTHGOs7&fGcvH%mk1d++H=$`2_t)iWulF8-dP*kmoiLf0Z*_}6U*{_1Eh)TkGKTs zWKxd$)iZQkLt)PAbq#`Fzn;&q(qy*khIY+L;~AaiuXdtAEO$NM+=(U{#_!uXP7CNv zp%Tm8z+<1M!7P6RU;I3EF{YyJ$tpkeJYDnJvjJBnh^MRCo)>5sgS36SQ$8KyC%aP< z{}N1${1foie!`{`Va^%;pgWy6%-g+lu68D#`VrZ9>jdh}LU!}13G^0i=f5S;`|QGJ zd~hO-pcz_TB8?NNf;aC;Da?D1_F+$Yn^?p?e(NO~Z_GV|V+Bh6<^Cg%fVF2OqW=H2_z#GrM#5D?9Iz=XlK zGNWZYXMjd={$oE_$EA9jW4CbVk*fsRWd5WdX5oMMyRTAI=h|=G!!uIn!P7LWu7J39 zzzsOwad^{Eoo?SE^sIIXrN~?coK^XmSLp#Oxx`N-LAi4-an_%X8gm~&RW9>W{poo! zaPI;15oXYe0n`Imb#LU9zyMD3|}#XnnsS)vlu-E%kiX0 zKN_ybEYVGLJGAIux&7!hesT!C$*zpzU4~+%9LOgOrMYR|IzO7)sG;J-DF2~-EKyBL z2IUX8*ev<<>_3HojdZpJCL!8`T-)n&KB*65b0)aQrCN^``JGkDtp6CD%%?(<4!F)| z;aK{BpoG*VT)e|445PLzcO}mnMsIl?)$=NAU38d>!zm%61lc0O1VQ(u{R%EV@g$F8 z!P^j&>SZZTqHo;X=`JYoq~Y);Hu6t~(+44$SWA#W+3|#>Km`Ss*hzWpvZM&~A%Es| z3TgVTp6{vI67&}=rKl&Gk9?iF!zIanou+#WpTKCKAn8h7ypgvUL8+|ucD{TBooAlk z@V7_O4f>W39Yy>5e6$UvMUcEvHoUW~c5c6#@rUKW^l|11hv@@7iN35gHWH$7qpAbQQSenpgy(taj>qk>~@*B`SU%uuII2%7`KfOUtYB?Uw@IW)Z>7siKx+s)$ zR;9+}>Gv|xdH!t*9SZP7dPACWus-Dro-vwA>2v<}n^fc5eyh8c-KM$6sNGin-WY1p zX6O*bcFuC508=;A^K+mnJK}M1z#BuGlEg#2i6)s+RFTr{exLm$#cn<9zZ_=YCYP7dU%O zTQ?13Bwcw&v3c-c-leHNdp09~w0FH--N^^dz@of`e=vjI3;IDXx~D;yeJ>^^=6Oqq zC3byRcugMf(NL1Ll=tX$1BLP*KA>5V&wl~d2*T5{UJ2B>J`($7iQ5;9bw?8>-JgBs z9hJW^nU3g}MfmKn`bbXur*-mZsLb5Xpxi3W4Bs2nMYeR^eD#X9BGPabMnI zKH1o-&qFA0Q`Ctc3^D$oOpy9NO_gz45N#j3K zY{C4y1+?5U-JQX=M)qZik(Rjk$}_FsG|pGDuHzjuXe5o`D>AT<8}@TrivLRa@}-nX`?+};R=mx8 z<}&I?Yxp)j$l#^RXsBl|jL;L8AoSn~%i;2t@TtqGEj-_~%jx%K#x09h3~3S;EhjA5 z==j{_;dg#?wA@umSj3lQ(wFp*cUb{bZ_~!Epw}@|w1O;pNyK{Oxr#cFL3?f${VB0s zSGAVegYH9U45ZSV?(t|ddf>8tpKb+nFEtmAV&ry6$SbM5^c+Q|HKv%hWHXhTyk z%Uh=0uhUmI-TAfFVIwtSQrqmg5!qV&7c|Hy<)VbH+M2BtK!)CHSM=6)ZlhO8+6$!) z(4-yor6kQp-==Fj^RR?Tw0bVB=E)ibYJcsfNo4q(&;49`Ln8-K9KX7k!l<+6`5he< z4GF8}CTPFz$Bia@1?fjp$usE-#TJ{x5)Sh9|D_jL30nSN*yC{CBA*7BqgLwLEaPb= z3`<)*;vPo*Ibo5N!dLR;`BdOlby%@gL!+)7=EDo9UE`~&u0xeB+|(i4C9W1wT#J?P z39IuJ+m>qzR1OOaaQdKPGb4=Qw+pD1k5kVV-53u@ku9G$FQn$JzSn7&-)>vjH%GVi za-fG_gkpI+lD*w7x-k}m*9xhPHo{L0eHsU8wP3os2a?bSvHfe&ztR zH)bDDY-bN}uY)wlcm<6vxyqLvq>e0D%XIl<+MH3&-vCcTyuDTQ>5i7~|X&{y2toBUJ>t@X}9 z?o41QcvJbTlT_~c&2m%@Ph&g(&nbGhQKla4eIAb8QhxIkHTQM6)4iY0;(0vqXWHa7 zT&G%!gJ}pq@H6db6!kP7xtz~FO>vEy>jeE;rRj2h@HE*Z8B=7Y=J^YKEV5qLdDdBq zY8ku?Ojdgh)XG3j^vFNk0pDf({8_T~B{xrWJx}e@|H1P}k1oLLijKIi|H#$57`ux5 z^(@w(bX}_WpZvGA3Fqh>Yu9h7>3gX#XH4O1K844Fk*Q-nUt)B4w*!d*K60R~V*#>9 zE!8HSr~TC8#|(G9)*IEJeperPDv>>!{Q_n(wdDOv=^L-T5bar@>=O67M8oJdA9IPa z+5VfHU8dfRcQ0|5)HT{Y%DH^RWtvE<_~FZR&a)cX_TRx{E&kP?v|Jkc7tZB*+!boq zs=b~IhXwT$E7BeN%hfH+y)Lv_qAj?Bg^F#v&QDyW(QMK+9(#=vS^iZ%;~IU<^6zlV zb&55XVB{Lbc8^=CC@i3}o?x$XHTVyc?kTVu!>XvoOA&fX zL?1o3`%^YV^pOKcTf#&C93A8Xa&pH4GV4snCc=XxU+V>3B|>z9^R~HJ(Rz1T3hlqZx*hEtArPHCUi zQE%AzHQ}~YAYH@55|NCZT-Z~u*LQ=0<=Uw_Lm9PGqxG~!>2S2Qu%{H8DPJE;4PZ7t*lnojy7jmA{N?_E!j^ZyP;_9 zEzD@ZircvjyGX%WU|aT*$da?QQSI0%BTLQJVy$d2vHezUaV+y{BxPcnq-$&9*at+t zcwjtx%d4cKF8&NqdRJQz&uYl0+g;oagRseFv8}Z6WeMzsh^aHERRNlW(fxUvJH#7! zjP8ks$klq^{TRn3Qn+tH1NCe@^+(=1k$pp|_Ddo=CK)rc!)-a)+U8zt2T7ry;apG~ z_6j>DvfON~O+VI#HOmLb^j9smchK7FI7=%>8C9vGtq%^D)3 ze{d^JP^xw?iN#P*Za<4H8D*sQwb+XB9o64ro1LI}4PZe=NKhHdJ{KeO6P+m7+Fj4M zuT=`MCrc4x4wxM$OS73$?Xo^{CFWeFJG|_5X7_w)GU}E6sVDC;f?2Q?8a9GisT*H1 zg0-hUeBTIm9FE$;kt~_c@$!)@(wsL5IsRaGAG)a8mG3&~Y60knpQdoE9oWk3WW-rnOK6NyEk3~)9H%BuyX#9V4z3@31yj>0`={hSpYwqv{^4Zy zlQeTO6pHts!U9{)oB#&7hjq_a7)wjoT${zLf4n&tk2z^7pFf2qd9Oq>E2da%F`Mvy zgkPEh6-ng2sq8twE_(6GB{)uAZk4t2;i;^obGMq{_pUO64OHweEMMW>wd6fR=@!ktv_}CrmcOGt(yN>yK{Arge zHuC1vmmYE>ws;gfj3U|B!K96gT$#%XImWF179$D`@&kg*f$+ZDoB&1KJH#-E(a(xfZsc{e_29_vPD zc-B1DhYI<{d2G99*UeBlpp*8=M{EYsvs`wtgUmRFpK`E0UiolEi-6)Xp0$8oqik)~ z$IOFhIG?wWO{92!dm#&9B~_Z&B9>0LS6H%`EoBF<@#ag|E1pRxxEMz%xcyW1GOf~{!KVLj`MWh`m~8|Zbi z3fvIt>h*l_29{_{MZYpPYo|8A@(1PM(6a=DZkVSFdk8`&gr%D`pD&oVsJCkirqNqk z?=7qV&nJg^U=r|&Gb z9y=|zP~LhE+tXvkVAK_%;P0F;pELA`yMY1 zj@C+J&r+M%zghNEhrho|C`$kK=$Db)+f0#z`Ru(gl$l@h8+%!M7jc~e`ImWczdDFtj~=X{J` zF%XcACqf9X098O�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