From 7e5f6017a4e97d91e9b2ef8a1f95e2e0cf023324 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sat, 25 Jun 2022 07:38:53 -0500 Subject: [PATCH 01/15] Removed UI App Files UI App files deprecated due to simpler use of using input key "E" to refill. --- ui/modules/apps/FuelStation/app.html | 95 --------------------------- ui/modules/apps/FuelStation/app.js | 63 ------------------ ui/modules/apps/FuelStation/app.json | 14 ---- ui/modules/apps/FuelStation/app.png | Bin 16447 -> 0 bytes 4 files changed, 172 deletions(-) delete mode 100644 ui/modules/apps/FuelStation/app.html delete mode 100644 ui/modules/apps/FuelStation/app.js delete mode 100644 ui/modules/apps/FuelStation/app.json delete mode 100644 ui/modules/apps/FuelStation/app.png diff --git a/ui/modules/apps/FuelStation/app.html b/ui/modules/apps/FuelStation/app.html deleted file mode 100644 index b674263..0000000 --- a/ui/modules/apps/FuelStation/app.html +++ /dev/null @@ -1,95 +0,0 @@ -
diff --git a/ui/modules/apps/FuelStation/app.js b/ui/modules/apps/FuelStation/app.js deleted file mode 100644 index 6614e1c..0000000 --- a/ui/modules/apps/FuelStation/app.js +++ /dev/null @@ -1,63 +0,0 @@ -var app = angular.module('beamng.apps'); -app.directive('fuelstation', ['UiUnits', function (UiUnits) { - return { - templateUrl: 'modules/apps/FuelStation/app.html', - replace: true, - restrict: 'EA', - scope: true - } -}]); -app.controller("fuelstation", ['$scope', 'bngApi', '$interval', function ($scope, bngApi, $interval) { - $scope.init = function() { - - }; - - $scope.reset = function() { - $scope.init(); - }; - - $scope.select = function() { - bngApi.engineLua('setCEFFocus(true)'); - }; - - var promise; - $scope.addFuel = function() { - if(promise){ - $interval.cancel(promise); - } - promise = $interval(function () { - var v = document.querySelector('#FuelValueIncreasedBy').value; - document.querySelector('#FuelValueIncreasedBy').value = parseFloat(v) + 0.1; - bngApi.engineLua('fuelStations.addFuel(true)'); - }, 100); - - }; - - $scope.stopAddFuel = function () { - $interval.cancel(promise); - promise = null; - }; -}]); - -function fuelUIShowHide(b, t) { - //console.log("fuelUIShowHide("+b+")") - if (b == "true") { - if (document.querySelector('#fuelstation').style.display == "none") { - document.querySelector('#fuelstation').style.display = "block"; - document.querySelector('#FuelValueIncreasedBy').value = 0.0; - if (t == "EV") { - document.querySelector('#EVNote').style.display = ""; - document.querySelector('#GasNote').style.display = "none"; - document.querySelector('#FuelNote').style.display = "none"; - document.querySelector('#ActionButton').innerHTML = "Charge"; - } else { - document.querySelector('#GasNote').style.display = ""; - document.querySelector('#EVNote').style.display = "none"; - document.querySelector('#FuelNote').style.display = ""; - document.querySelector('#ActionButton').innerHTML = "Fuel"; - } - } - } else if (b == "false") { - document.querySelector('#fuelstation').style.display = "none"; - } -} diff --git a/ui/modules/apps/FuelStation/app.json b/ui/modules/apps/FuelStation/app.json deleted file mode 100644 index 3982608..0000000 --- a/ui/modules/apps/FuelStation/app.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "Fuel Station UI", - "author": "Titch2000", - "version": "0.2", - "description": "Fuel Station UI", - "directive": "fuelstation", - "domElement": "D)|wh15Q3w!_Jq zcQ{>cw(mG7&93Qww0U+KlW}G4-UkFt>8Nej*V~glEevE~IDn(E7w~!|%L>Nxki+6V zgW&^GdWbEb(d+Yr=X#gh!K!D^*FS^K(A)fup`Y#a^whsfzr&+1lmSL6sf+dCVyWHz z=r$__eG=SIEE3;~XVJQKbY10~b#6s7WTE}R*q8aLNfYNU)+FBKz2J`Ean^OmO#+@9 zJm$k@ch)p>S<<|uGdngn;Y?VtqLx?CkaI@`HiGc48}K5a;;rUoho_D&Z;HVF{$`48 z{W_!X^j|(tHSk+-xpMqAp!lRVQ<2o44enkA%dUqr<-6kiriW~I7fiOVQcX_xJrp~o$iD@4P6eX)k+nskp*rSOu?;aE`om@Jng~A z{MP>6v*&5m(f_D+cT~uAt+TDF1M_{h_toy2-_ 0cGF_Pty?!(jvIX4 zsUex`o+=n?(s%B|Q4+iWuHHRG2Hr=a<$7C88?Uyzr;V4zC0^s6eEN-*cmGpGie%RB zb@3OACy9G)MfZEEY#ztM0N>|}0XeNN2ohcDqjQ)p+!ICj@mz O+e0}yQB1sD3b^97MvAE!wixO5EOb7+KAi>5 zcdX5xcz|18I8|&h+b;x;wDy=BrMXU>n4Y~{-^0u}k+&;dJjVM^`@sM}GAdD?eg4Z% zijwg8H|XHJgNrZg_i;R&KWe~q>U5>8DJIW_K^%BF(m<5=yqRz))cr8(C=8w~U09W0 zgE>lH%$-slgzDX%1=jhp5JS y&l1vE%+?gS?iq#PT>gU{`V>4S9k LS#tH071AAwE@%FYmM`gBmwuEXMDefdiBU`0k=gK z?BakzTLyDtHLs5+A;@E3QtE%Xo9%e3H20#Wd#csx<; =91rlPU5S{k`AhwAtIg z5@j`6C^ 36nTxlRV2ajVpw=Ud3^=>EK+R))9KX?s6Ib8hH)I?xWZff)29=vWDk z 39yVnVC_X+7e2y85d-F{1r zZ`T!eIWvmnLxhpIzOT&vKid5PYecjDSB~9n2XNHnl`A(npQ_UuTe@$m4c{K;vmMVm z&bnC)9{P5Fh>;}7eEK4vGo{}P<_eS=i3_&XtQICeH9n8j4F>r?>SPjld4CB!f1hj` z&$qkc`lfppH^#U38TwWvXuy)5*^e|fyX&}V)q5|8!*cX`h~cVSJ<2=T`iHf4PxV0Y zF{gBw2^eMTk8>?PXYaF~?-oWYZS1mNe`TzDj`5KNG-VvQ6ov`bv 1S2M(h@pv9EtF)dj-QyOzTPal-7rN8)TrZjf2x)0k^fPrq z4&3MSe5`%}6VaQep0}sb7P6Q9K>s7%wXc!+rW3;FL&qP w>y4wH&wk$E2XQ>E!Bny?gk zjSr?uwyuSlY3Qk%4ly~f0#PRDI^~fH5BKNM?8&pU?D59~eMYBOLvy4^+*9rC&g&fm zeXmZs?$(}SMziS(=@5CTk+CioZtXMlT@L*3m} 5IR--&K#D&xBF>L z{}4=0-^OuSJUBH5KXMC?MK6@viWvrOY )o82BSMv?`z2D (g zU)VtwXN+h~t~v?^?1bf)|Ke0Q&o9Nd+hcPcmu(YZY(4xm@SAL_Uhh*>i^FQW-^1mf z`MsL!x;s*ComTf}nyoTDj)Ms>m_>_CIV-AYz3w``-ocMQZ&a^8ml8VX`Q-(^dOIh7 z(U_o=p` F&5HTB+Hsz7= 8YbFPEfI%JoA{E%SA-|FA!- z)3`6!CG_SsS;*7#!1Jfmr7>t8MrWB|#1j1CO0nENV`MkNB?T=A$0cnEr{IiR-mM3| zoz?2KO)lwsGWE?EeYT6NbXXzueF)!^*u_5P95JJWKEpdAP$v{Id7SErE4*gh15-z# z{ru3|d^Ec+xjq$EvbxcOU^*K3dX+cu?pFp&;9+^s%NAa(;A!id-@@{{tJbR%$G|5r zZ;vVJgKN (xJwR9FkVaGMWWAKrd z13a!zb0bY=BRXF^*8;#k2w#nG+@DwqUuBN_?Q-~%ic!L)0e(uxD0i(M>JqFR4IsYg z86pQ^I(AsYG#dMGX>QWWOG|a^B#RJ^uh?4AtG0dugzt{OO~|oyyWM2elI|sUaXLd; zbqJ&t$~9FLIu;~-4vd8-0064aOe!2sYx6J=EjOJvBR~}!ay{v(kJ@;@&N%IyI~P!( zK;|$&D$XGedt@ZsB17Aob8y>xDiUc2J}}r)=Y{W$WL`}~M;iPHau)}al5cn}ehYWI zuFf>`u6XHU*nmSaAr1^iGW>*7w+2>1G561{f<^@RN5;6jJl)R2UPMmmsB{V3xBYwm z&z%lJHio(-(J*fFd*UDBN|I3`&U`fNu|a963)>X^5h3!ou6KHG2YaVJrE!@R%@qiI zG-rC_2XTS?=*GEbOE`|{sGYb6FMWp32_g?EMDKVvAofC)C$>Dhp7cdtFA`WfjvJnM zmr649eZXa$6?>1i_V#*_n^$p?EXQ(y%L6=7o5nq)w!v|!0Kw(LH=6Mb4Gnv&761i{ zqL&QDs~GcG!^>#aJeQube$WOed`eWA<6q3=u=vC9@1HA!L#Gu5PSSO|U(1yO+jk3c zCCjphzsdMF`SX}$d#y*0d;{{i6+Q_DJ=ZY=ju66y3O5$;mhgdQ1~{N(B%GGRw9SBw z>E2$ v^mQRe^NWPtWC{cZq}G6QZzZA5PxW3eMg7n>|JQZPpRD zo%Hk0Pb{S>lz~d?;}TW+!1GrTudOIrQs3ixIhHQ$+ALxJM=&4ro04&T-GfGR3!@s# zwJk~VW#AC3GsSkF?;QUivoOpk?h{a28*MX3j&Ga2%*Jul9<)6-i3>hB270eQEy)3a za36Co;`M%`m|qgnvS>N2g Mg8JgSBfu-(0y7HT4M)r-#9AX+8>S-7k#mp(WT}HI{DZ^M@HFH~L%CJ)| zb$z8MIeaz#R)M_ZK6O%ge`q$7tiy13=O8y=(5JNEe!5w^ jV@Mw3uHSk-l67> z;uyBdMe3XsiEwT2*Yn)RA~Ym9(-Iioi>L`dE#U|=-7t^pIayYG)MwI0UvA0^dyWk> z)GHpnyfTY|f)=>CsGEH9-fr2oifby)gQ`RC&T9LPTdMFbBJO2`^QI2taAc9bh%=^) z8)qu$ph?t%l$5NO#Ye_ p<$LWyf7Xnc^}I(5Dy;$2Zt9bv&mQ#!G{vKS5!_Xrvx7^Z87F zP&t#%ZjJ?MU?7OeXXAUxMuT;98?)RUs1VjXhN?!^8R6Ge^HR45!=nRh{@A^N5(UL5 z#7g0h=Hy=Ky&xUuuLaTd{yun0`?xJgz23)2w5eM^(A5V?23Cp`4wF+9aTs}EhC}H# zrPQB-`yywd(fcaSne|&S3CeF2-32& ovzCJaxrB zCmwf5p!YEt8bduk`Jp3J9%Kf`(5HsImxocWYoO!^!`C-C#AaaE@7H!2=L7wmQo*>S zCnr`{LE>U@rWp+Mqp zWdj 6eVj7msSQ@Ro|GrQ;Siv1jB-)5}bxVXFLQw>B?GjcW&L;OPi*s$=RifNP z97ssZKC%^qmhY(vO3eOPCi0Lf5AU(}4Zp{D3IWvQE+9jup}g0hLB4=n7))1~wGo}5 zU)d9Wa`K8qL@g;7+T6e12;Gl;^~304s%y=Ov9{l(z%Br0&Kdz@R>{S&`OBlrI?U?n z*3jfs_C}Nyuo%uFrEDQJTPJ!Msa2d6Vw)!O6x*a0;A4g}7=&=6%mfOem@RiYj|hXK z>9N@uxd~AJ6snsoD@y`{5V22mPE;;=LAhAaHNJkWgM-j larU+Po81Hq YPQpA(i%OhCHw9v7T44Q{ zxtoyQl67)Mv{2ZRRVPMF!Be^mHPMpqC&!eds@PlgR}FR^6Ny1RnZimzwY2=IeeXDc zZJ4;}`rFr-978$@w_@A)_O$sVrLs;fd>GEjq_JID7*~Tf{Rj^bFZt<04xgH?G oQ>@PSP?q(-f_frk9f8pg~U~xZa^;XtUnLa* @Ip}G7?rbcg~V4*guZl6D4n)65>HKBvpE`Gi*kPh2Lyq zV!=mojDO1Wp<2@_!$lQMe2<6Rp3eG&VtR9kbp8lS;gBLZjR{>6h5D|F&t?u rM)U zZ7>`zqS)AVG~M|?wklC{hT)Q#-9>EbpW*b7prW43TEg$e*a|fgw+7EJo3^>>oY)nv zDe8&85HbYE5>vNZq6!ZC_7&9Om=fkv2pysj@3;)ba`(l9N;mTn31FIj1mTMC+gW0o z-rfw;96>CaGW96N6eOH2&s6>Dl@BI0I}G302UeMpwC;Y;(o3@lY5J_=2WP`m5eT~V zfPPMr?kuB>ka5@qViN%9R5>!qMdj6by^}Q| %&B=R+QsU%_hWo?3i}nz B`W#>cQWX2W&bbyUeM`(uYMXjb#^s6Y_ z ^Yz_EYr9x*(0KXA#-oFDH^~ S_<0t%Qu|RAx156Ws9RjkX<{B- zvPu)knt^z4^-xwiTVKnVqUV!E9Jp z@AjT(hA5W8q9ACVuf(+`@}0G236n*zGfDP@rExjtox2`Db!dqbvL&U5uEym(HC4gl zH{y;LAZ99z<*3EHC|0W4W@_d_z?lz7?9(?T^<%1scORAO)MP9MYS8eUu_}*+i8IR8 z S&B z5gNLZzxxA07 zm0e!)CC{ja*dE*~g<(`5NJeie>vL|TD%U<&BiBjdtRucUo{RfV-JYO*{<#^Ns1^ir zRfEdP!OAvC%Z5l HbHr$vJ>Uup z)%Y^rX=yNwDuTljFQ)ud0|Z`Z6h1Q>y}4m;r>65jIyd0ePN@%8@jFH1K5;52mP(Y6 zs@0IFjatu;l?RVyqyKO*pXs>ELyFyDsOL_C2(>X0VGcCoP(&The`Azai{ qkBUzLGXs8=9m~tvgrK?G~&U&e>b% zHl 5qc*q(-z6!e(?5saSY3(WX=99 ztrecJSrulCG;i^Qw-GK~IqEWW%zPd?)x#*|TI-xKJ@qb80(qfYt%Z$K1?WCxr;IyP za>yOU46}Q5`LPVtTjS@j!iqvwe6#dO#C6G-rAY+wU3%6E)n3b#N&FiD$w+5d6&o&j zrp^UioP<2)vhX`i>i4Urn3%p(G|BdO^hi$ uZVk&rmnsKPHKc!U=j+TL6|g&FON zbGe{Y07w8%3)qL&+2(xEM!I|`pN@;avXEEW{*6cgE&Ky^pJYs9Uw-?$%Z=%uYpldy z;91!^O<&sDG ?z~2c-}zJNpl{MU|Cy zvC1-4Q0DKPC#xG6g(wU zaPx#RBeJtvn;|Bn{t6uXD5YMwzcGi_;hIZ`q|Kbigg0;n%Qo}S7mFF&>c9lmQ0q02 zh)1-PoWU8!xIJ3m>tZxADx2y*tC#)!ttClCSUz>A&6?YQHwgzzH`waj24T?$z})&F z9I8V|_2&<{XtSFTC*rO6Z!z%l5=69u?R7A`*oq;Q6_^O$L}ix4I?5ZFMmoz=aB+N@ z%aqWC{f|zYr?7?d*-eWYCkO{~v{HVr-HHi9gTy~tDLE`HWres{DRg>F2znJ^wHzIC zdnj9}qJ!A$5`{^V(8L$F3({4!7e3gPUCH3wEgV9))6y@5estIrR+MIl?Sw=JOvhJq ziw9)|izaW;DK}yHp9~S^WT#YyP@@Dj zZhY@Lob)+(%pE*NAXVh9I0H2% ziZO?|Y3zKO+1@&(dU6C|P2r#KzNz#H5NiM*KTjo%__8U0$a7Oueamea^YUaK%4 zw2)lFj$!vAD0~>tvD}c~9c>W4NhmWmOD~R=P!TvN#HT7Dw|H3WB ?D{)bhv|@OJ;DYPhS|Ri-0&L#5x-B z^Ay}L !qV41=)|BC@y`L-2C;WD9!APG|oidD880Bs6XVj0_b^HKAXB0!b`s%mP zZ`V=|oPBC2sWQoBXtoEXG!gXrO;V}{+(P%`O1q6{>u8rc4tZ#g;LLL9r2N8zEV&Z- zJS6>vm$JA|MZ~w5mcu=q@**TaAjOoh+?HL5o$y^t^(K ^Y17oz%jh@;)4!=Xf)|E9U4U7sw@4jj~<~k z8C9c89Vm_b?F&Uwyic}A2`{OMTT!CQ!Q&RHdvW0ccFL_YjAnRJvzkn#O>3<@nHfkL zRWV9lHt=KGLEDoslUxF37B^qCNGW^>b@CYF>N}^V<8X`^xwWBChLMQ@wB6E0M`cKq z>Rl@h;bOvQ <%D})i1-OsBBd9KWKk+n-=b6n`&aZrC6BkN7FM43m5xQ zley!z!ikU%$IKwrM}$DYQbel(guQ!xNTJ-td^fR+ZsyDC1Y+l_h|MoUvw*ic)Q0v9 zIj0W1rOW!g`qUGhqFv%pd=Xh*^{QeQ_lcWnuNlJx%uwj5N?oncR91FX8qu{u#_ah_ zFZ?APW4}#)J431AiHdvKl(A4y$Z;EO^d_HSyUo~$h0&zb#jNxH>U@>WP=AIwohssW zKTA&bo9kqVO`MuUt#8Ea%f^*ELEaZkLwKvSW)bdzP8i9)usr9~x@dEP9+fv!I*wuh z(v5U2{ven5VDmGXqtk0x1}0Jwa&iPhSan9yzLkh}D8D_`r?in1D&(}cKeKH=Rk>P~ zVa${HLMbPYWVZf$D{t82u_^%&7S>(GopWbO=r_5@ZySG?tY9^sYBO${>S#hC56NuH z!y0m6(scX$Q-Bvy{0Vbw$#nVo7xBb#YVu$o;@WbC4UKpO p`WzL(o}*F=J} zMuq8KyJl4+v%Ads$Vssw;6X5M5_%cxOmJsun0-Eqq%f2BUIr7+b|_R)kh6-^6-hD_ zqOqTm60T8H4kfXhn7}gHHKK{*fmn(xz|wOQ${3p!Rn0uhT9!ycp$!ide%uO^-aweK z$=Kq9k*hpEQXoUks@!LKlBmsHqX;Y~&R1;&kZGS<@HF4xf~xqokKYf3$p)V)@)ZG; z=>kyMq#<1yeO2VM93b%>FXV&LxFqo@3d(Gtyq(}1iLvvx$mxe_UD7`6eZC7;mm^Om zy)C~_C+0kpFNv%d`zVYT6Z;SpBO<7^%0tJ2@o*QAb_A)ZCF&ur-u}gFNt1sDAPQqd zk1J8fpPBshIk`-QtD_*f#9XULPl+I4bn&PEa Qp7 zI3Hz)GX50z(%v%Ug@jPX(E2K$l$qILsxUFg=j<_yo||M&ej6@b{qmdpa_r%EH@Ipq z@5K|ItxjJV9Y~pXXuz3cW|- C;<136g64IXRpo(%6=SW&vyqg_^y0 95jSlQsWzxSQFy($D2d1v4P_*iuSw1%ULU7qQ z9zkag3_$Slb9dV-;pkQ@3G2ej`1QgOO>=ZDSR`(ozA8rpbUI@pO2-~a2{ROsHnnSk zxH>7V_FakJI0qCDd)Ndh01?w)Al+wsk~D)2Twm5{5VmHEKBTw#R0}1J-+J #g s^SDQAFe!(T@j zIXY}K-JmY=m6n~nR!3S`X6LaveAzXMs!%CSW?=mCI*b=5vdo)(Q1j#n+Usk$Z;c%< zQIl-XPmSGM(~B^B6vK#LIQr@gFd+k3Q2=Ob&dO=UiG#7x@6tZWULkp0qHR}8tLONl zBq`U}k@bkrLa=dCu(?2;e0DsCC)Q-lo ziZ9jTf~?O1^0MXKONtsl%EP43E;_07|E_sAC3cJ;HMMRqp;eKvSE_p10(A)(e?iEg zQ8$dzS#*B?dw1ZtVsk*Eu4z*MLG%JbCDjAo{&<5eIgq5#s#`62im|$HsA#*wU_!6& z3LBqL)AX9&9G|8vsDJEx4M^RBgJL`Dti+A}41bdu4!4E=L%s1KZpI6CY?DpJ&W`#l zBCVz9tI@|HOup&d(pE_5{^27JSOh8hJv=ibJ~9!#yjN-NbM!BWKL-;&yw;Bp5eV zipc$<)==r6`53CqJ_Pw8g~_PfUN|AWi@KEQc^ureg%_j@c`%&PQP&URoPdj$3)ZIF z {@AbVfhPYUy(J~x^Q^kE{GK{4 z`Y6FY#L_ncddk{XIDP*f-Y9 )MFm&@vyt|x=E2xd1=-#d3n>pCN*K| z{Lg~3Afg`*xB7jP%^QuI&JaHk1hh&TX>vXw5l0!{P<~(JCu5pegexelXU i3j;Hi0MD5i|DU3Q%turpb#yU@T8W`T#3;sSSkNT5sw9d^CNl7S)z^Ti%7sNR(`Q zBr7nIp84J-W@omkiG;$RO}#8X7bIVh0J@B*!ufVQpwq|}Z=4BSvpMk*wM{#Z?rdNB zU{w4O3xOl&ZqNsWQZ&EaY$gRd*TW$0OG8IwBYp 7=zx^|04%gv|FxBp?IdugPEoIq+k!^BV#FpJC(%H@ z@CojF6-O&Dct~0rGB^@qls!xw(g|M35SCO1$jQC|S@1|5l5?2#EiPrWoogBvTdY011Ic=(uC *6aQU1dy~gkpj#r&Kx&b)yJjHEarj|CU R80m z)oK0(KhaNeGC9AEcbL|T Gn=hfMD>nqxoYq yVQ5VlA!X6iF#4-a-dPfr)`!J ztPuBV!jnF8axoF#UV}?o+1LG; UZA1QSdD&v}>&| z>ZDQvRbpY~5cViXps$i>4i3Ur{7A_U!owcpQxP$|VHah)6i2Ex9LumI+a@fQUX#Yi z@b#ev5OhU@y!hv|%FsVG%K~g_2zAMYrjNNtQ!w$V?&ERH1mqY&>gwn_Ai4^>tu!Y2 zHKxq46rgkWN=Wf9D$ekas2H;FHdj|r5u##aQFMoq^bb)N XJ~WlMx3oA!u?6y^P)*@IM+p^(d)4tgbBcOnjPoTYnSGS&vdYfbHn7>vo@&^p%+ zMI~FL6WJ?!>S8don-cg`gg5bZr*9<~P9{TKqIKP|5ro$V0J~lpxfs8}`PoKD;l`MV z)H*WJ{QjbufM>@$N+`d2G)OY~N!Vewk$bIH<7BO)De;{>&rMgkD;GnzZ&bV`d!t8< ob+rYB4+-Ox2Dvqsd9P%sa9Gwp#}IyhzTz( Date: Sat, 25 Jun 2022 22:09:24 -0500 Subject: [PATCH 02/15] Removed breakAllGroups Disabled the breaking of all components if engine is running, will re-enable if requested. --- lua/vehicle/extensions/auto/fuelStation.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/vehicle/extensions/auto/fuelStation.lua b/lua/vehicle/extensions/auto/fuelStation.lua index 9b571e3..7db50b6 100644 --- a/lua/vehicle/extensions/auto/fuelStation.lua +++ b/lua/vehicle/extensions/auto/fuelStation.lua @@ -24,8 +24,8 @@ local function addFuel() if storageType and storageType == "fuelTank" and electrics.values.engineRunning == 1 then if math.random() < 0.002 then - beamstate.breakAllBreakgroups() fire.explodeVehicle() + ui_message("Turn off your engine!", 5, "fuelStationsBoom") end end From b010b73ab79a174c71d2fac52a61ac3497764e0f Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sun, 26 Jun 2022 10:09:02 -0500 Subject: [PATCH 03/15] Updated Utah Stations Added 4 gas stations to the Utah map that were missing. --- levels/utah/fuelstations.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/levels/utah/fuelstations.json b/levels/utah/fuelstations.json index 73d268e..aab099f 100644 --- a/levels/utah/fuelstations.json +++ b/levels/utah/fuelstations.json @@ -3,4 +3,8 @@ { "location": [ 812.5, -157.6, 144.3 ], "type":"any" }, { "location": [ 811.2, -150 , 144.3 ], "type":"any" }, { "location": [ 808.2, -150.6, 144.3 ], "type":"any" }, + { "location": [ -799.32, -86.98, 296.821], "type":"gas"}, + { "location": [ -796.56, -86.98, 296.819], "type":"gas"}, + { "location": [ -799.32, -83.66, 296.821], "type":"gas"}, + { "location": [ -796.56, -83.66, 296.819], "type":"gas"} ] From 2730f20afa1920eef106d76878d0827e570fdb86 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sun, 26 Jun 2022 12:31:44 -0500 Subject: [PATCH 04/15] Revert "Removed breakAllGroups" This reverts commit fd21f17b823ac35bb6999ca5f72225039f48dcc0. --- lua/vehicle/extensions/auto/fuelStation.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/vehicle/extensions/auto/fuelStation.lua b/lua/vehicle/extensions/auto/fuelStation.lua index 7db50b6..9b571e3 100644 --- a/lua/vehicle/extensions/auto/fuelStation.lua +++ b/lua/vehicle/extensions/auto/fuelStation.lua @@ -24,8 +24,8 @@ local function addFuel() if storageType and storageType == "fuelTank" and electrics.values.engineRunning == 1 then if math.random() < 0.002 then + beamstate.breakAllBreakgroups() fire.explodeVehicle() - ui_message("Turn off your engine!", 5, "fuelStationsBoom") end end From 6bb77c30cf76f34b7df2689954a592dacc3a5928 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sun, 26 Jun 2022 14:07:06 -0500 Subject: [PATCH 05/15] Added Fuel Leak When the random setting goes off to explode/set fire to the vehicle, it will also set the Fuel Leak Rate to .15 Liters/second. --- lua/vehicle/extensions/auto/fuelStation.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/vehicle/extensions/auto/fuelStation.lua b/lua/vehicle/extensions/auto/fuelStation.lua index 9b571e3..199eddf 100644 --- a/lua/vehicle/extensions/auto/fuelStation.lua +++ b/lua/vehicle/extensions/auto/fuelStation.lua @@ -26,6 +26,7 @@ local function addFuel() if math.random() < 0.002 then beamstate.breakAllBreakgroups() fire.explodeVehicle() + energyStorage.getStorages().mainTank.currentLeakRate = .15 ui_message("Turn off your engine!", 5, "fuelStationsBoom") end end From 5aae7e1e05e8be149f54899f6738f59cf3688658 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Tue, 28 Jun 2022 10:33:06 -0500 Subject: [PATCH 06/15] Added Pumps Added a couple of pumps to the map, as well as changed two pumps from "ev" to "gas". --- levels/italy/fuelstations.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/levels/italy/fuelstations.json b/levels/italy/fuelstations.json index 25d1dcc..c622614 100644 --- a/levels/italy/fuelstations.json +++ b/levels/italy/fuelstations.json @@ -28,6 +28,7 @@ {"type":"gas", "location":[1216.699,-807.445,145.245] }, {"type":"gas", "location":[1210.02,-807.812,145.234] }, {"type":"gas", "location":[1212.06,-804.469,145.291] }, + {"type":"gas", "location":[1214.48,-803.720,145.676] }, {"type":"ev", "location":[1199.18,-797.823,145.786] }, {"type":"ev", "location":[1202.29,-793.992,145.764] }, {"type":"ev", "location":[1113.25,-686.448,146.031] }, @@ -35,8 +36,8 @@ {"type":"ev", "location":[1124.09,1308.87,143.007] }, {"type":"ev", "location":[1156.11,1305.27,143.788] }, {"type":"ev", "location":[1165.86,1304.98,143.981] }, - {"type":"ev", "location":[-730.8,-1327.5,143.2] }, - {"type":"ev", "location":[-725.4,-1324.7,143.2] }, + {"type":"gas", "location":[-730.8,-1327.5,143.2] }, + {"type":"gas", "location":[-725.4,-1324.7,143.2] }, {"type":"gas", "location":[-543.223,-210.488,231.101] }, {"type":"gas", "location":[-547.45,-207.176,231.119] }, {"type":"gas", "location":[-539.732,-206.318,231.144] }, @@ -62,5 +63,7 @@ {"type":"gas", "location":[137.447,-270.667,193.566] }, {"type":"gas", "location":[133.501,-265.86,193.566] }, {"type":"gas", "location":[137.447,-265.86,193.566] }, - {"type":"gas", "location":[133.501,-270.667,193.566] } + {"type":"gas", "location":[133.501,-270.667,193.566] }, + {"type":"gas", "location":[1417.133,1554.139,138.878] }, + {"type":"gas", "location":[1420.436,1554.253,138.877] } ] \ No newline at end of file From 5790b0da2c010518cec9ab5b73a988ff0151282f Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Wed, 12 Oct 2022 10:38:38 -0500 Subject: [PATCH 07/15] Added Necessary Files for UI app I added some files with the correct extensions to start working on a UI app for map devs to easily add fuel stations to their maps. --- ui/modules/apps/MapDevAddStation/app.css | 0 ui/modules/apps/MapDevAddStation/app.html | 0 ui/modules/apps/MapDevAddStation/app.js | 0 ui/modules/apps/MapDevAddStation/app.json | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 ui/modules/apps/MapDevAddStation/app.css create mode 100644 ui/modules/apps/MapDevAddStation/app.html create mode 100644 ui/modules/apps/MapDevAddStation/app.js create mode 100644 ui/modules/apps/MapDevAddStation/app.json diff --git a/ui/modules/apps/MapDevAddStation/app.css b/ui/modules/apps/MapDevAddStation/app.css new file mode 100644 index 0000000..e69de29 diff --git a/ui/modules/apps/MapDevAddStation/app.html b/ui/modules/apps/MapDevAddStation/app.html new file mode 100644 index 0000000..e69de29 diff --git a/ui/modules/apps/MapDevAddStation/app.js b/ui/modules/apps/MapDevAddStation/app.js new file mode 100644 index 0000000..e69de29 diff --git a/ui/modules/apps/MapDevAddStation/app.json b/ui/modules/apps/MapDevAddStation/app.json new file mode 100644 index 0000000..e69de29 From 3e04b75348dc8d250b5b5c770356e922ab63f121 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Wed, 12 Oct 2022 10:50:18 -0500 Subject: [PATCH 08/15] Added Beginning Code Added some small code to the beginning of two of the files, just starting to get something in the works. --- ui/modules/apps/MapDevAddStation/app.js | 11 +++++++++++ ui/modules/apps/MapDevAddStation/app.json | 14 ++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/ui/modules/apps/MapDevAddStation/app.js b/ui/modules/apps/MapDevAddStation/app.js index e69de29..6aa9374 100644 --- a/ui/modules/apps/MapDevAddStation/app.js +++ b/ui/modules/apps/MapDevAddStation/app.js @@ -0,0 +1,11 @@ +//MapDevAddStation has been started by Sky777, part of the FuelStations Team, adding Fuel Stations to BeamNG maps!. + +angular.module('beamng.apps') + +.directive('addStation', function () { + return { + templateUrl: '/ui/modules/apps/MapDevAddStation/app.html', + replace: true, + restrict: 'EA', + } +}) \ No newline at end of file diff --git a/ui/modules/apps/MapDevAddStation/app.json b/ui/modules/apps/MapDevAddStation/app.json index e69de29..c7c77df 100644 --- a/ui/modules/apps/MapDevAddStation/app.json +++ b/ui/modules/apps/MapDevAddStation/app.json @@ -0,0 +1,14 @@ +{ + "name" : "Map Dev Add Stations", + "author": "FuelStations Team", + "version": "0.1", + "description": "Use this UI app to add Fuel Stations to your map with ease!", + "directive": "addStation", + "domElement": " ", + "css": { + "width": "800px", + "height": "300px", + "top": "100px", + "left": "calc(50% - 400px)" + } + } \ No newline at end of file From cf6cf8318ab4cd41a4ec2a85132b165b3c96d766 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Mon, 17 Oct 2022 12:31:21 -0500 Subject: [PATCH 09/15] Used BeamNG UI App Structure Slightly re-structured code to fit BeamNG UI App creation instructions, available here: https://documentation.beamng.com/modding/ui/app_creation/ --- ui/modules/apps/MapDevAddStation/app.js | 27 ++++++++++++++++++----- ui/modules/apps/MapDevAddStation/app.json | 5 +++-- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/ui/modules/apps/MapDevAddStation/app.js b/ui/modules/apps/MapDevAddStation/app.js index 6aa9374..9bbd874 100644 --- a/ui/modules/apps/MapDevAddStation/app.js +++ b/ui/modules/apps/MapDevAddStation/app.js @@ -2,10 +2,25 @@ angular.module('beamng.apps') -.directive('addStation', function () { +.directive('addStation', ['StreamsManager', function(StreamsManager) { return { - templateUrl: '/ui/modules/apps/MapDevAddStation/app.html', - replace: true, - restrict: 'EA', - } -}) \ No newline at end of file + templateUrl: '/ui/modules/apps/MapDevAddStation/app.html', + replace: true, + restrict: 'EA', + link: function(scope, element, attrs) { + //Optional list of streams used in app + var streamsList=[/*Streams here*/]; + //Make needed streams available + StreamsManager.add(streamsList); + //Clean up after closing app + scope.$on('$destroy', function(){ + StreamsManager.remove(streamsList); + } + ); + scope.$on('streamsUpdate', function(event, streams){ + //Code using streams' values + } + ); + } + }; +}]); \ No newline at end of file diff --git a/ui/modules/apps/MapDevAddStation/app.json b/ui/modules/apps/MapDevAddStation/app.json index c7c77df..ec2bdc1 100644 --- a/ui/modules/apps/MapDevAddStation/app.json +++ b/ui/modules/apps/MapDevAddStation/app.json @@ -9,6 +9,7 @@ "width": "800px", "height": "300px", "top": "100px", - "left": "calc(50% - 400px)" - } + "left": "100px" + }, + "preserveAspectRatio": true } \ No newline at end of file From 26c5e242bcadb2eb512a17065609c89abae0093f Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sat, 7 Jan 2023 09:01:41 -0600 Subject: [PATCH 10/15] Added Fuel Stations for Johnson Valley --- levels/johnson_valley/fuelstations.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 levels/johnson_valley/fuelstations.json diff --git a/levels/johnson_valley/fuelstations.json b/levels/johnson_valley/fuelstations.json new file mode 100644 index 0000000..4b26ab8 --- /dev/null +++ b/levels/johnson_valley/fuelstations.json @@ -0,0 +1,10 @@ +[ + { "location": [ 1368.578, 1355.079, 118.712], "type":"gas" }, + { "location": [ 1368.578, 1346.765, 118.712], "type":"gas" }, + { "location": [ 1372.497, 1346.765, 118.712], "type":"gas" }, + { "location": [ 1372.489, 1355.141, 118.711], "type":"gas" }, + { "location": [ 1382.309, 1355.141, 118.674], "type":"gas" }, + { "location": [ 1382.309, 1346.767, 118.680], "type":"gas" }, + { "location": [ 1386.066, 1346.767, 118.676], "type":"gas" }, + { "location": [ 1386.066, 1355.116, 118.681], "type":"gas" } +] \ No newline at end of file From 119fd888dc03ba56ee3bf054899a645015e12dd8 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sat, 7 Jan 2023 09:17:47 -0600 Subject: [PATCH 11/15] Fixed Stations Fixed Lua error not allowing fuel stations to show or be usable --- levels/east_coast_usa/fuelstations.json | 2 +- levels/hirochi_raceway/fuelstations.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/levels/east_coast_usa/fuelstations.json b/levels/east_coast_usa/fuelstations.json index a84836d..27321e5 100644 --- a/levels/east_coast_usa/fuelstations.json +++ b/levels/east_coast_usa/fuelstations.json @@ -15,5 +15,5 @@ { "location": [ 625.651, -183.448, 53.2 ], "type":"ev" }, { "location": [ 622.667, -186.129, 53.2 ], "type":"ev" }, { "location": [ 619.97, -189.098, 53.2 ], "type":"ev" }, - { "location": [ 617.164, -192.107, 53.2 ], "type":"ev" }, + { "location": [ 617.164, -192.107, 53.2 ], "type":"ev" } ] diff --git a/levels/hirochi_raceway/fuelstations.json b/levels/hirochi_raceway/fuelstations.json index 0bf578a..3fae381 100644 --- a/levels/hirochi_raceway/fuelstations.json +++ b/levels/hirochi_raceway/fuelstations.json @@ -1,5 +1,5 @@ [ { "location": [ -423.444, 327.058, 24.7 ], "type":"any" }, { "location": [ -313.5 , 62.4 , 31.9 ], "type":"any" }, - { "location": [ -311 , 60 , 31.9 ], "type":"any" }, + { "location": [ -311 , 60 , 31.9 ], "type":"any" } ] From 52bbdbcba4b12e211102bc38e4ef9e94418c5afd Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sat, 7 Jan 2023 09:24:44 -0600 Subject: [PATCH 12/15] Changed Gas color to red At the request of Yellowracer on the BeamNG Mod review section, I have changed the gas cylinder color back to red instead of yellow. (Not sure if you want to re-implement this or not) --- lua/ge/extensions/fuelStations.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/ge/extensions/fuelStations.lua b/lua/ge/extensions/fuelStations.lua index 3818ad0..fc64239 100644 --- a/lua/ge/extensions/fuelStations.lua +++ b/lua/ge/extensions/fuelStations.lua @@ -8,8 +8,8 @@ local fuelTypeMap = {} local ePressed = false local debug = false -local inactiveColorMap = { gas = ColorF(1,1,0,0.3), ev = ColorF(0,1,0,0.3), any = ColorF(0,0,1,0.3) } -local activeColorMap = { gas = ColorF(1,1,0,0.5), ev = ColorF(0,1,0,0.5), any = ColorF(0,0,1,0.5) } +local inactiveColorMap = { gas = ColorF(1,0,0,0.3), ev = ColorF(0,1,0,0.3), any = ColorF(0,0,1,0.3) } +local activeColorMap = { gas = ColorF(1,0,0,0.5), ev = ColorF(0,1,0,0.5), any = ColorF(0,0,1,0.5) } local function loadMapStations(infopath) infopath = infopath or getMissionFilename() From a519e84f7a3786e880ec8a13a8520837dc2169d3 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sat, 7 Jan 2023 09:46:57 -0600 Subject: [PATCH 13/15] Fixed Station Cylinders I set the X too high, cylinders were in mid-air XD --- levels/johnson_valley/fuelstations.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/levels/johnson_valley/fuelstations.json b/levels/johnson_valley/fuelstations.json index 4b26ab8..30f5e97 100644 --- a/levels/johnson_valley/fuelstations.json +++ b/levels/johnson_valley/fuelstations.json @@ -1,10 +1,10 @@ [ - { "location": [ 1368.578, 1355.079, 118.712], "type":"gas" }, - { "location": [ 1368.578, 1346.765, 118.712], "type":"gas" }, - { "location": [ 1372.497, 1346.765, 118.712], "type":"gas" }, - { "location": [ 1372.489, 1355.141, 118.711], "type":"gas" }, - { "location": [ 1382.309, 1355.141, 118.674], "type":"gas" }, - { "location": [ 1382.309, 1346.767, 118.680], "type":"gas" }, - { "location": [ 1386.066, 1346.767, 118.676], "type":"gas" }, - { "location": [ 1386.066, 1355.116, 118.681], "type":"gas" } + { "location": [ 1368.578, 1355.079, 118.200], "type":"gas" }, + { "location": [ 1368.578, 1346.765, 118.200], "type":"gas" }, + { "location": [ 1372.497, 1346.765, 118.200], "type":"gas" }, + { "location": [ 1372.489, 1355.141, 118.200], "type":"gas" }, + { "location": [ 1382.309, 1355.141, 118.200], "type":"gas" }, + { "location": [ 1382.309, 1346.767, 118.200], "type":"gas" }, + { "location": [ 1386.066, 1346.767, 118.200], "type":"gas" }, + { "location": [ 1386.066, 1355.116, 118.200], "type":"gas" } ] \ No newline at end of file From b21d00f9438b9c4573d6c4685d0399cebd1acc41 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Sat, 7 Jan 2023 10:01:14 -0600 Subject: [PATCH 14/15] Added missing stations on WCUSA WCUSA had an update and added fuel stations --- levels/west_coast_usa/fuelstations.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/levels/west_coast_usa/fuelstations.json b/levels/west_coast_usa/fuelstations.json index ad1af03..2ed9277 100644 --- a/levels/west_coast_usa/fuelstations.json +++ b/levels/west_coast_usa/fuelstations.json @@ -31,5 +31,17 @@ { "location": [ -190.027, 522.874, 74.800 ], "type":"any"}, { "location": [ -190.019, 515.983, 74.800 ], "type":"any"}, { "location": [ -193.976, 515.983, 74.800 ], "type":"any"}, - { "location": [ 417.285, -229.916, 145.06 ], "type":"any"} + { "location": [ 417.285, -229.916, 145.06 ], "type":"any"}, + { "location": [ 911.720, -478.980, 162.200], "type":"gas"}, + { "location": [ 910.511, -484.708, 162.200], "type":"gas"}, + { "location": [ 914.614, -485.808, 162.200], "type":"gas"}, + { "location": [ 915.821, -480.193, 162.200], "type":"gas"}, + { "location": [ 919.287, -480.880, 162.200], "type":"gas"}, + { "location": [ 918.268, -486.388, 162.200], "type":"gas"}, + { "location": [ 922.523, -487.425, 162.200], "type":"gas"}, + { "location": [ 923.666, -481.806, 162.200], "type":"gas"}, + { "location": [ 927.410, -482.584, 162.200], "type":"gas"}, + { "location": [ 926.139, -488.050, 162.200], "type":"gas"}, + { "location": [ 930.094, -488.996, 162.200], "type":"gas"}, + { "location": [ 931.128, -483.548, 162.200], "type":"gas"} ] From 41000791d845c99b971d50f3356bcef2ce27e276 Mon Sep 17 00:00:00 2001 From: BuilderSky <67489968+BuilderSky@users.noreply.github.com> Date: Tue, 10 Jan 2023 21:58:41 -0600 Subject: [PATCH 15/15] Editing UI App files Trying to make UI app functional --- ui/modules/apps/MapDevAddStation/app.css | 0 ui/modules/apps/MapDevAddStation/app.html | 0 ui/modules/apps/MapDevAddStation/app.js | 8 +- ui/modules/apps/MapDevAddStation/app.json | 11 +- ui/modules/apps/MapDevAddStation/app.png | Bin 0 -> 39211 bytes ui/modules/apps/MapDevAddStation/tool.png | Bin 0 -> 114052 bytes ui/modules/apps/MapDevAddStation/tool.svg | 190 ++++++++++++++++++++++ 7 files changed, 203 insertions(+), 6 deletions(-) delete mode 100644 ui/modules/apps/MapDevAddStation/app.css delete mode 100644 ui/modules/apps/MapDevAddStation/app.html create mode 100644 ui/modules/apps/MapDevAddStation/app.png create mode 100644 ui/modules/apps/MapDevAddStation/tool.png create mode 100644 ui/modules/apps/MapDevAddStation/tool.svg diff --git a/ui/modules/apps/MapDevAddStation/app.css b/ui/modules/apps/MapDevAddStation/app.css deleted file mode 100644 index e69de29..0000000 diff --git a/ui/modules/apps/MapDevAddStation/app.html b/ui/modules/apps/MapDevAddStation/app.html deleted file mode 100644 index e69de29..0000000 diff --git a/ui/modules/apps/MapDevAddStation/app.js b/ui/modules/apps/MapDevAddStation/app.js index 9bbd874..b12f497 100644 --- a/ui/modules/apps/MapDevAddStation/app.js +++ b/ui/modules/apps/MapDevAddStation/app.js @@ -1,13 +1,17 @@ -//MapDevAddStation has been started by Sky777, part of the FuelStations Team, adding Fuel Stations to BeamNG maps!. +//MapDevAddStation has been started by Sky777, part of the FuelStations Team, +//making it easy to add Fuel Stations to BeamNG maps! angular.module('beamng.apps') .directive('addStation', ['StreamsManager', function(StreamsManager) { return { - templateUrl: '/ui/modules/apps/MapDevAddStation/app.html', + template: + '', replace: true, restrict: 'EA', + scope: true, link: function(scope, element, attrs) { + //Optional list of streams used in app var streamsList=[/*Streams here*/]; //Make needed streams available diff --git a/ui/modules/apps/MapDevAddStation/app.json b/ui/modules/apps/MapDevAddStation/app.json index ec2bdc1..73e37df 100644 --- a/ui/modules/apps/MapDevAddStation/app.json +++ b/ui/modules/apps/MapDevAddStation/app.json @@ -1,15 +1,18 @@ { - "name" : "Map Dev Add Stations", + "name" : "Map Dev Add Stations (WIP)", "author": "FuelStations Team", "version": "0.1", "description": "Use this UI app to add Fuel Stations to your map with ease!", + "types":[ + "ui.apps.categories.utility" + ], "directive": "addStation", "domElement": " ", "css": { - "width": "800px", + "width": "500px", "height": "300px", - "top": "100px", - "left": "100px" + "top": "350px", + "left": "350px" }, "preserveAspectRatio": true } \ No newline at end of file diff --git a/ui/modules/apps/MapDevAddStation/app.png b/ui/modules/apps/MapDevAddStation/app.png new file mode 100644 index 0000000000000000000000000000000000000000..febedd89e7bdfec13291f25118f552ced9b4bed8 GIT binary patch literal 39211 zcmV)EK)}C=P) aTcuJf9dr os)x9k)w{224Hi_J0lop^Ic9N(c!4;* yD!o7t)N04MsEu>aB>t;B5#b;Dos^s*GO0C(NPn* z|IgFbW@o(V;Uv)i>bjqkKyV*u)Lr-Y)O8zYK;Q+qHrxIR UzubFocXoExW^Hzs5qHgAVW8Pe-zkVxQ0OYy zCqU}e)Ro#K0G&@Ip=RA#>yHmCGK0!lb@$@~#tOkGf^NieO*{uByTvYjd~}T8&9JGy zE&-cB8rG1t`gleXDg;YIjp!q4f+);VmbLSY9euYOj+I|8AS!X5sy=;1)VzLJpX`0C zc&&>&_6wg$l&LwJ6!w^CSoct)*KhD|#{4Lb45+fvuDW3nk;dPAmR%sKyis}UWk#af z)xw8f+Di220lWDHortE@(FD7!AX<9Yq4Kreh&O{~XZDIjKWBC96!bSygX0m77ycxg z+1BoI;i^QP7ie>y+)k9=-8jL23lR&Y5|onY%oZWzzGvX;r80dfN1{#FBEpoJi7GC% z+h-U;wCj=9N$gI<6}449s`5mAyE`v@eV(XO1?RirD~V?J)nD{l0)!VVoLUmec-c?e z4_7oJa-7El%(sa~?uztId)Vr)2vZ(YJtR`rQl?f_wm$PrR%F$Hp=o+UvjbNUZiOyO z+6~qWoik5w?-gvtpV7g5-FGoj{{c>;UxyHl%MrOLH8Na=1t$GDk4^Fy(b-_3-@Y2) zqnk3dT@|alSWx^~1RtkM3NQDaBMM)~t0+;BG9Fj1P-;|piB{D&mrk>sXvrpXzLZD7 zNVL1}`iSz6_YyT6qyAYtiRfVtagx0kk?EN*Q?ZQbpGf1H?H#T7a=23c?0z&qK}7SF zuO<3bOBuJ{u1+*0!0}!sWU%Zmvnqd|SY&LvU4aBG<3Wyyr}?1pm#3S@k1vNWWwf6a z;7gS1n5wm63{j(n>M6DMAwDsp;K6=Gel_f$)ENglt;8IPM&Ngv@}(*_YK&L=;w^fW zO+XnSb0j~jQw3@$e 0x ztV#T2SjN=leTS;QU=5Jt&WjSU$>_}kpVpd(swhLvu_-sTTSZjNOv_(ENDUqIblEy| ztFpU{_tDSXRPJ3hP!s|b?Uau`n(Rjh*wE-f?wQAk0 |^Dqx_NhPgWj6*=C#~D(5Itsd6MDBXj619YB2bSY`Sl5#yDkT1qJyx<46MktWUl zH*ant)&M!?ujI+T*Xi)*PlNxX(_hB&`z);0CIPCv3&vR(q9z%*u=;UH_4xP^*?MIP zadmVPJ{9Hv-d#`O5~2z`@xt>mORDCEJ&fu_5u zMqN-6)wv(OD37}}7J1rRpoZ~|zqi$0l&7zR*_!0sPUn(d7fQ6ap;qr4V1pRM_Zp4T zw;q#GqH^;cUb3x3hu0hOC?~)nI=no+m2f2Zn+%IpCZZ9?oHsmbPqeR#F{39KJ#t!K zO=&Ytjlw39XL;1qbdoS_^$S+6u6h^bTT?GeEn``q;vw#1ehvDQ&4UV{sbTtBQAB)g zXWRYsY8_G0ZQB1;Lx1k57MGZ>6X||14`SIceV3=BGN~0tQ;6qK>vT2kQsq8HEsU{E zb_0Wl$yo6JSy4~~!GK
AEyN+ZxhMWRkKmqR#naFpL&UEg|eRY+vT+4khp_r-fI1Z-6M(q=%?;=D-sJN zdQ;z&zYrC8W7mP@B09L*@XK}#t-t)VHmRnwav8j5TKnauvq6Lw3aEpjV;o~>nZGaf zWaa2lqE2I7m2}g9m6N{~Jl(XY1eVD5rfk#%GNXl`F3nl2!3~|H@-Jo6RvV2mt-gzu z8`m_Zl@Vu&=Clyk_@Zhi7{oJ;P4MX}(nt`lQGhmeGf44^TO|lVcOf`OCL*B@Z=w1X zOH5-7Ki1xtXQ-hcnW%+<|N@$cGbb*e5Xfdk9enbuUUZ E`sCY=ePnO8Rsu&zffZRXPE)(E0JeYI;JV=MJTAzwpXmD1rDp6ziBeBOqr zN^pes8upcB_j9XNI}WPjr&gqbzIJJUqCMU0H=Hg^ KE>XU{Q*`->TBD1xe+Z$ZC-THQO1t{S;^jbq>LZY z^B%@a HLP^bja7CyfONkPYF0LlD1*8C z=AC@lfe `@)ax0Gn&&d_Tv8!!x>%8n3}2Tp}6791E&bi9>a@eCLS|Cs7cyL3)g z>M`RRTw9!165gXX8rn%?nb(^|e+LEf@nCqfLRdqPfvNiXo@q72TJW;R>00dBZX~?m zCbM@%Y!|gIsrC%RBETY_h%%0MWGu|k+SuQ@{0cL(g%KHZB4cInohU3eA)~JJHMZgp zvAm?C8N07x5#gnM?&4LE5Rb@f4&{liDvcf3JUNv0DdQJZQJ0F@t?u!?rCiM$NE4N< zwN2%B--mX_ImJGIjNp$K)vp$85*#!9`{Kb4Zavn9XyGCI6IU)0wegE6>YEz{vVtn^ z8Vp?lW`7|qW^L^nM?A|hEhcp kDL%Wn{9^ xB!c4_FHFr(KXB zLxwoitbmDc!5nOUFbYcPsnn}_$V6?QNH+lf?y5M`5#_JQECwpkpvF!V0*Xu|Dso!5 z%TS=_su=qy@oj}D{Cz7;Yh9LM)zDYj@l8eS%NCB@lj2vX7kMaNhNFP%9aa3M#{~Hq zGo4pdLi~R*chz|-6_%n!k!{^>#BT9clz84+QbpUouw0nXHx$cKR}Ps@s{cZSRn39I zu6V*Gf^&sK!t~H9Sl?Y~TIU!*6gt(shh6{th*>LEiJE;roe!npJRVvY3!$%;m7cO9 zM8-OFj}l-li>0bka!p^qPbheq^G4+VE?o{8?VEcxz* 3E@EQ0D^h)YTmoqX+@-**Ag zFB(N?u{iq9AsLK)PhoabDl)js1p#B07M}VR(}{w|Q4SGXW@)|Yf)<0<*}@C;3Up~x zx_Pdtb{B)ko~*og9DRFCzP`3^mT76l<-^N-MvIS`qFhuxE+wXzXrKGNDdh3dIX* XUsRM+DM_tfpHS)eSUR70s{Lc5k?|R=_O4p(vd!rIdsVpj zP82N??)-;bg+BM0)aOV(m;X-<|B>fcJ~bMVCJQfxY;gonI?b9Fad4A(PF}2@?QUY? zMU0p-fBD!F-o8gd@tnkVLJ}$&A4}(B?UQ^geUYUQw4%*6;rUZ4r-ScUFsN9;SfdQq zq<8NTwj9WT&4=msOMP#`-pKxt#U9xFkX5DTH&J!Uk6o#n!^|OfjuUzLMy_}b6{+|j zrm9uY62(?$XoOUl66T+;a(tnz?yM&p0^Mgi>!&Pp&}I)|*#8u*N?;evZZ0ch8bCDo zPGtMz;Ol*mZ(!uyGB)`VQ&p)|OL8kS1nKpO94A@wsh`@RL*ygu;`PwevBU499^3zI zeCbI;TX7cTiSxYs*aIlGSbOa5HXNu+6X{U~iWTPOG@6i~d3}`4C@ZXw^dyG^qlhLC zQ!OouUB#n&v?J{DKxOO@yMCY u*@bnNu`DvW1>SFgG zA2e*Hv ^LvHCBnBeloXd(=z?3KWvPW5zEG)R zd&K{VifH$DJS_HGu)-x9vXN0sv=T0xz{Ankkxlq&s2DwWcvJKg4Cds}%yB40G-!(B z$(LEM%hn^Ta0*o1J~timy@F~Kn`?Y6w3eyhiM+6d^IMEV1Z=7>5{U3zN7@PYKM}cK zb@ HnTZbI$D|^5?jd{R32N#1|pOC)=S}-kO~A^?*H{ z=#z-cLY+@u9gj_)Uer82+!wdkJhT6UXw4(XG rM0`z5O !#z%O`y|I^lng~!@6cF*ysW0%M7D#xK zjQ5iHGkdsegt0;&8#?cL1wU&KI#j(p8}@YyYG>rZ_wmfeqEdL!v4otTRy)WUZ}K;r z%v>cEFn&R}EuexZQ;erY(kdU9wqafF^^z1plD+~EW6!;&cB~Q3p{1Fek$)?aU zd}k4Qh-i_t0{=CLCg`*Syi$QLC-B{isOvi2klfxlu{lLu>24e7C^`w{GQfTDw#bRz zV~93hFizVIK8qF;vQ?T3yFz^hdza-1pGLSS?gh 6{6!TMnEhc> ze-jdZdK+!q6&RgLJc_m!mRHqVzvVYRff0iQ5c>%vqQ%98kbJbkjEY(0x~ih?2cq8| zQ};4Ca6Hc^eCh#oZKf0s9gCNSjS-c$nX63~Ak*P}nZOWEPzf)j1`!i@Nm?Nt@`nEg zp`YZ7d<9tWrSB$GpS8obaA#J-ya5vI=g1P0wzBY8D3fIno_TmP6B^v8HL6WznxhNM zVIFR{jdIDzG*D(Cp|vndJZK?l`4NTt{D$x&(X|y6in{a`)IIrN(^T{kV|1I`_90+q zA%Goy>kTEir~+quxrvX4{}>^sSP<&Ri_Q67OEuO<$e9i`c5!Ay6%T~#a)o}Sh0t7? zW2ob1BT-P`Ic=!ErOQKj5e9}3Z%z^6>poDf41I>P&rc%rIw3(Zp;80oj+YR{3+_f1 zNs$rCj|AmMAWbTwR9;Js7WuPzY_JKME&=-9UQeu{c>t>^^}+mvuvyG%b(h~}T+#iy zeIb$ma#g3Af1*!(CFIdIfNw+mqrg{b4XHh(7VIo!r^9k6>ys_zIbeK*ggQb$$go(z zTC$x|!x0t>*+olu ^tkuo3)k z?r3Q4jEZ=4YUJ?EorumW)Zyta18=KvQLssuC>#-eL=bul_4M1M&5p?F?01D!L;iw) zCHNk}KNyo?xSwN+3YnoFf1RDyR7Q*HPZ!nj_syjXe}-@2lJcMYLm=XFL1khwLS>H% zneGt;=ilhl3b2`H{vgT`7+&*H8>l3$v#%C#6gc&w@YsIlDT%@~DTJ|-Xdk#YEHv;J zB&3D9W6e=e^BrU^AVBF-hK|35{d)8YlrXC~HK=e7ecgCNMaL#EqPIA#(+#-yGun@r zOq3z{K2n&hJD7{19S+PE;9K nHI3ihJQf+IIWKiLxq|w{4R8sePJqXBHLt| zfHB1ab8a2F0zOrEDipJvO+SI2g8DubOFl@83cJQ|B&{PPrJyNz0_muIMr{s2eh3SN zRIDT<&IVJZLx`u&Z6Q@TGtybaaZZ)}P*=}lesN_M@D2+<*h>!+8CaS*rOOSNVY7Mi$)plFU=msLNaR$;8{PYiW5ySdrEgz$_TaUj zQQ%*R9($J_p1LNRrNJEKw403ujbLqsJsAII$sIc9!C0&(MC-Z7ml3kQ{G%-nN4zn= z?NC77vf3>xw(Kvvyrq{72O1j7u3!I?C7PAg1j>ueOP@}fhn2l$BRy~VV^*+CAzaQ> z!Ae}VzPfd)$IapxrOyZ#ujInWe^pTMg%v7HUzWN!7Ak}3VoxDs)?N6Hw$>Wc8f#4V zG@i6o=K(e6{^pl2@Z2zfwM>I)S&~CM=5ylXOJw8tFGAt?yg$M{kq#_S2uYJSQtV?T z%y?s`cne{>4WH5eGlwc$=KUT1(Ox6Rc+{x<2D*h_`qp>DU~;>zvENzD*LzIyxz+Ls z@J7>00SiuVA(~EWCsXxXdQ7`ci=pW;J>$DfjJpZAjvS$+iv7BI{Ia1i-n;gNt9 zoX>{CH21S K&P=5Q3i9AU2@&E4}+b&D0f?0Cm~mme1%i8kpnjxcu- zhhhG$ilirzSh>2!ABbq__o~?Ka2g=t6DB`45KYH4jE4%p!oNQsD`39PGf^SlAJ3ga zQ&C!@J&ttS#A8DtabM#xa~zWikp~My#7r@rKjZsLpG-lUvYbrG#Lf|x(s&l(jOY)3 zH8^hUW8vGfj)%4K{!vRTQE91nBmBihbOnFRccn^!*aVuyT$ETjYqdo8^y*-&O+Qmj z%(>`a>9)|hqf<`u3PC(UY&Zu#4>9*=!FWpau@LeWV5KNY`|?QY`IeV=yokIkUn4E8 z{@1|nZ|Z9-g^ai7hXfZZ_l^F^l(W}Jtl2Ac^)I8PFDtKVn$s8CjKR+X&tT hx^xl1S!!CxxXW?64Wb+ z4aO&ET0VjpCW-$tR39^F@|m-kIg(J{U+GyhR <;jT?P&($YFfq$=u3zH8O#;kMS`1e +t*`1uc7&(x9dNf9cB!4F7 zz_*wKBH6L(3_5UM4XCKQtpUlehOcBszHAQIu^!as%SQ1%Qx~bNSmIyjP?A13PTF2@ znDp! R;5@9vwQ+ae^^%K)l?x(Vu z94=vVfH_e^);wWpe$Uhx8=9tkK*q1Qp?}Y%Bc #7&o`TX$yi4MmOJCM z(!18n`yXoPnW&ni1(ginSq`Luj#=yPEX@g+T#;oJY6$;U^GiVT$)plI2hw9m+a|%O z{x=9hk^H-bjI6=uELMsvpAaTp-u*r}mtN61aGVvZ&jqo*AI=r0n z&`w-3ChV0R&Jx9hads}JpF(YQ?O1I+?*%XoahVk}-yzz+TWjRdOP1lBLE#yQGf6TG zY$h^4=s#zzBN)Qd!L<#k%!|QC8DmEWC!*iC8>Sz6f& 76_mtzCs Y`*Z>#R z&E|uR5jeRqSiAJZP@?5W?E>>6A75Ujv8u8- TVqW+lu#B6TABPa1deqn$TIU(m{atfXsjY z3*s5SU%>Zi?relX0T*w+&^QPDSJnP@q8;kRG5aOCf5R0Ur_DR;p>BM4wPBnJ^ awd)?xXbzwijy7b )kaE z6v$5*3RPG6Nk$RoPc)4RT!I7tmBmedP_s_CUdW?&fR(AvY@XQ-H#aQN?^S`nDJJ9L zgIQ2M4_W!LU5L(9iZl|`rei|D2K6gF+R3lk^yiOUL%zPj33eQ*Sj3gP^A(jWV1#9L zNo@%gD*dLn7jH3?$Hvp_;r?cbXS?0dqVsU+eeci%_OoMBw|
f`cF^jZ zF0CT9ArK7p)*Nv}MoZv`{}cy!R`xqlfg7e9 h*mWZcGgC34FVR0!^$%g>gZLHUEji0eR_LkQ z@R@3cqPqb@{pl|>?OoBpWfRyLo56 ZZLzsK}T58%8-S0c*eOS2`mdkq68*%|Y<@ zpv(4XaDTW^oeFJXAtSqZ)94CQA@&ik1yls^pIPFl0JOC$pketajic!d(c_Gf Rd z#zYhYT2mhkv)mX}bT^CoDnI=7cx0BDE>>|i8fJ}g|E;gfM|B(dzEJ`hjoV(B
3Yph^!a>tTtfiiO$}>BhbOqTSDB6w;M}ks||V5cO=RK3aA< z(Sbj7&BY5*(MrEu!?zoe{#pVnU12xO=Q*1f?-?QWN4m#nAHnv}W~WpI!N=5s;ji45 z6PPwDrEq7CtJkH4K)#Y)zfXfWY9{B!g}q1-PJlEQAg(M7i- zJ~CGKDcjWBO6 +et97-J; zvCcss2SN;|la0*Uogr4o=?Bz%i(i8cqNfqno#U+XR@_f{YizJ@qS=ND(=2@9VWc}g zFe;gsuoM;JHzAildWI_*jYs)U@nOeym(#V%RjtUU!PT~NA_VXM{pH^P03ZNKL_t)K z$j5e*>}S6okJErh!&@KkV5R@}QHRNSP>!P>gbzxEhShVoeeEDLfR=N@SDnsl#gpHr z8PrFMqdXR_i|}{;fbx*T$^5Us;IJ=`J<-TK5r6uietamLB-7FzzY`t0@31y28vKOr zI**KKKo2*V=HM(GI^igPnO?vkadl-hxJP45>)AURmW(fle|1?=(rG`;@|{w&&CwsW zsak6HyO)N^A3@bH!T|!NrrymC0x-UK|8!B0DzXyR_g-r+yB~)@JE^*G1wwdkR^zQK zqtI?#40RL`Nb!Lv^byL6SL5?0LYk=pen6YH+Ek!vYaH|?A(@t>*6Ca~S;O mpn&p^%6Q9upk%v4KXZ@43ex3ORsRg+u{-YcInM z&tk;Gs^j%|34`MY@%eLPpoPyG@8eVE#NbFa=|>Of&0c_yYC@1WK*mY9=NgKf<^pnS zj*4N`_gU$tTFbAQ)kFam6ib58UEQB*uIu1|a@ZRFe0TF`JP4%OLmaLa$IyEIB3&2v zcQu@chP{*?`M-@ XU!0V5Vlp+hQRT+dgz(F^$!7EZsa{*=P=tP-F6G52IXM5 s;u|6k$zM-2(NEplA%(e$# 86NMpAW{2tr zdQZXS>u!YR14(|`P$s4HQcC(EYVf1_Oj_ilM^$5!Fu17#*g}&N(%o4oB-Dw*iSu^| z1TOgGzq8B?f*bjCT$masW}J@GG~%&~$frjw%`IHU!kFC!=4ToYD-Hvxa*bn{OJ_9t zNp?v6{8f2tRm4!VA_l}}$%degr2H9nEIe|*Kjxk%99tC)g@xi>`mWyZ;x{H2(fqSf zECuW(lA@>RCuT!D{!#J7M341d*s#nZ=vvb*`Vr|j3e|-*csAgiA4CHKvxN}ous?Hr zjB=T)5p*Y-O1AEl%d%|6REG?GydZdE!ra2zWm{2RG8~)5*QB0-E2@j=d$=k h9?xK&K{u zDU~lDNykO0r;7)eo4)X*uJ0JS`;Qc!hYg4)G@SGNLjzu+flS$8T$mOK_*lsM6Ca?f z3iH7id8Vf+VC}KA@y-iKH0?H4UC|D6pzAz!dI$jfHFU+$7K=v34YfRG#*XEEe8vtD zw@cVxW*;#hBx(*;CMYxJbd52is}wix$GBcwL)TrGz`*ZXV~ArM6 mjwwYjhVuFNf%z84WySKYMOB zf@s$h<1em5iC*6{k7t39{0*s&G&hyOs}E~!S_Hx1%vV3gP%$Rl-OYMAuSO4h$nZbs z$uWJwN2u8T4W?unCz_YNxf0v|PG8o{*%uArfnkR;1dS;trj<7JqSZwq~(Oe+|8f zjH7{EA43|~1-PQz*VNJBAFS=1F UtyfQi;14(c=8h?o?uPlG#gKF~f=dV1){OEgbwx-OI)|vrBa{C2 zA$YzdCkDO`xbs@+Hlf~>B|W7s#@PRf4)3X{tHV>QS>-bccH4kgpVek 5IuRmE8m?CfVUr$9c{~w(LD0j&q`1cOXJEX+2-cP>$hW@=5w48p{ zn98G -joXK_Z>ELh73rq@ZU>qw@GJ1^8X%3cB1f5XewZ_ioqIk zl3fUAQx1vv+8jIM-!BAU-}ieQ(qg{+Jp#*6x!k=WEs}@s p$bZK$Fv@s%Nlh^V*c<$yTD~wS#u;hd`BKT754?_1V}KxkPJ?SS-u4%rM~z z7P0c?(UiE;7K@POowT{J$Tp{sV922%DrZM8Ut+taf3;^THV(uy$jh(MCE)irR}5N= z)z?+#)kZ8{1y$i8j%A@pvhMk#EyHj{O>?gz4MF!}16I`Wf*iZ`>2}6^&DabUPk(*B zd+{o0DE{IxveaE{+s)(aT(S7)In$IvgAJ(54Ft6Zwr@s7KHIPci<4t7c()1|gk6y4 z6yys0uo0Az|7E3{ahG|I7K??`W<0;TJU ^@>>`>g}Zc(p>2U)slR=rBf6J^2v9#}~ij1A1kug^Hh++&ETWW!SX;Nr^wh o7 z3jy$^K4la#U{!k*MN$_lUHPqXJ7bPJx1jpj^10g{Z``jqAyxa9p!;YuwNu@JO0YML z3%>~!;FVAQUX~JyL%qFzE4KrJLd_dFVq0k2OIAEpMwy!RY1fH#CNzxI`JaT(gFxB1 z({pR7@lXsaEoRROeqZ#a!U|{Hg;jv2YEKZ&?D(X`5N6(GG{AVO;KS5x()4yq_lMH0V{O{aCgR2BTx Wmq>^G-WGS^ zhV7T$rNdVrLb!v^)Hi&!xNB^!X5&Q_{BGmEqL&aj2bI1#&|{l-(gn%FF?Mt=SgBdx zba)j^mT&aS(Cn)GqWa XEeD`WD1(Y^V7) z8o&a6N2u`DIo6Ao6gSj;pn_aa|1A7>Xh!wq{)!g}SCkDC+QmYD>yZC~$>r5Je3qpx zlEt2fD^=ON=VSlXPb}$#q5jo=_H)uZ5M}Q2Chh(1IGj|F{iYAaNTMopvXcZ-3HH8i zsRmfqB4Yu5Nzx27hVe|I)W8o2XT_O#W;GuYx>?wnEFA{H35fX&0)bx_0z~(>Y<_(& z|KJ)@@c*rW$o+(MLi-O&*18YE`c{!7Tl}9V=)4IE4l+P{>!G -d#Y$j@T=_ zQPse8t~ *s1sthwWE7 (*y zZv6t01#jeqqEH3%{>Z`5kSwSioVFMQQZqK)Ia4&9#C()O$JQh `5Cu2oES$KuweHp&T^Fo%90xVo6j z>kC4q^tQg*12neM6+*9`$6Q(e2Y;Zz5dM(TQJecJRAJK@y1prbIdp5g?Y@^Wr{B#M zh^F|d3pdO`W;FOxFN{Z@VyItXN!Xop80y=L#ueHgSj_WN=gs5_o$U?Ew5gyXYU)qk zY!{{w9fTDgN-NzARZYV+oiOECrY&~`bUqax+*bVPi3YE{ZZ;V(wb ?P_pR()I z8#=4PDp_tW{Mu8R%wNLhKxG{H`34uQ5;l{*9%`cSN?7w*=AKu;JVTqWCqYTY35;u0 z!hzfG2ey1aNsTk5^)Q9~50y77RJ)1&Z0)D_=&>?Ey5&n+JxYe}D+h47+FOe)-&e~2 z6R8!snhzD1Bp|QS?kiSVli@qdfeZASu;`ZzUuO>Ruam80u99;gIR_Fl2a+3lLgr>N zt>hf|N^>CjHr21RV3OHN&Vhu?f#e=NA#*dCR&ow}r8$t?(7)1xNoFfK2NE&|lJ7@P z$lOe(_3=57d@uUP=h-KOU{pB8l*+>sa3B2>nE0xKsHtnR0?=1gB43snHS7L8Xm&E{ z>ba_FtK^3MWoy$%P ORjhynQ8xFbQf0tTeP>p*w8fP12QHz^slyRx=?*eHuUk;7EgjR z=0^3tM0ty_=3e82PMb*#d_$&n61;%ERf1lu-nZDpeZ|G~r|o5)3B@PlwbHxR%ljYb z(KAss3P`AAC)4@Q g)ak4gIr|nm`27u!gvgGa0^<9AIf+ z`}i9WG)(A|sd>XQ$qoHKQ*YB_Rl3c8hTCLDKQ{+5vIYsEz{P~n%&Qv*#BS(m_K3F_ z4Ek?%74jc|+2Buw$u(5J6m3kT{)=AekKt|uH{H}T_hM6PnTc+fhQW&Sg>;>1JMdTV zjchT|Q9+?P0IQ-g!GC~3UnZC+=Vj$#( b8AD+t( z^{&casu?d~Zn{?ah_YAQVpC~!%KW0tURb+brC(3T$C%K#siP(mR&NKn=(C=HJ$#
Z;m)!N5O#PfKoaYS5;Ya8=9mAMRi_vxGIvIqTUjYWG* z7^oUe)G^d}q$tYw?C!``3>S4w4RNXPXeDgA%#O%(i&^o S(|8vzskEX7@oZ_Y`6oiFqqQAdD k~JY_)%&kxVIutU{8c^q$*w%4S(Lcuub+otay2@EB~UYxI-+HxpyEM z?2!G6@uhyo#RL(2qV@)E2 wGzjy=}5_BsnTq=$4OF!#}3ZNTY&p6xs83M){Q`FnQ+D=Pe zWh830PTS|aJyGkL>|R;Kn 62o FD-Hox$=!aj<^fTMb^5O7RWRqA*;rDyhp6v) zaju`9D8&LkRJsc;!#zGgGY8>**Zp*99j;)?rwYjlv(%$Cp`q?UF}aTYea@ip49sbD zm&;?jd&ET%^~q4sJb_YJ{bRm0yXZJecbce|Qos3h7L?ZnW7(1;(NHz^s&HI9(fWUe z*_SdAIj1%}*Pvnaau$1)#sv}H0m3swFj4B?Sy%+>Q%jZ3?Hn5Hs=}&^x$*r!A=Jse zBfhga<-P{@>>ISxpTc~0uc~6x(!+@M-HUk4x5eZJcj2{G-#QJt4$VzJMz$xav0mSx z1mdk*T0K>BfJoQHyp!iaeO_ZKcoF=)wBxtca9`PzvSmR$D^7+zR$hor_uLglVBiU> zd#hb6vg|69 y7lwG;A$HL!S30tf_+<4!dlY$mT+_q+~1eAmWmTRNGA`&_mAQ zJA`KlcZD4%WVGog)|(Z#&}&FqBKM1ehY1yl>DdwmBv&l(g-aBFM+gmFTc2L>Gr-@> z0(b@+?Cn&~Tod1u>7eAw?y`e~jF_2HlgV-czyvs=q5x3M!Pg9hdtOvnm(F~?xg{ r#Cs)WxMu{e5sD}|4HLj&)3 zJ}1%Ik@lwCXn2kp^kdBsD1TiI&!p}FS_Nno9mlmud7+aJPCLC8>?J|y@2PSOO$qz! z&W1%U;Ae4gIH~Jlgfv~zsW=3}gQBJjlBVN)ji!L(U|jlm!>*eWf*B3{v<_r5)DzoB z2BKWcY5F-diQ?G~0`25qcK#*DprRMlR1ooG&itJT$~R3>-5iO#*3u|96)c8|Uq<`G z=}@9yeGS8pp)B2(I!-9Uh?bPoEV6$`zAY~qZf_5PeA8F?bBWAS&uFU2hJ(LfG$$NT zpX%>a_g7A_H1z%&lyhb;agq-8ZQd5mL
7|*hm;wHO;U@?U z+K`{R@WK`}%TL m( z`J%;@%*sH-v*4Ly@dBgJv1QUMbd9S27POm!-E!}RL}z+M9<-Z;3obnMGuTsfyu=qq zw-Z}(Z{J0hna^T26638;^b4QCm$TCNC}SQ?{{!P%$QdwzaIaa{nAo_QXCCE7Inv|K zrg @<_;W#+eR z`DR)8NQoXefINi14~4NOcxL32ZSf>O37$1Hd+~8ZPbwKs&|2U<; w(t &^A<~qVO)k&$*8N2DwKwjN6Emc6^ zg3rg?=bfZ1p6A*cI`WyQM?=_bTv~&05V;c6rm;-oU#hzs 1B2YkB}O;oHC{6nR^4cA7T~Q zXsf?jetnJljc|je>&_j$N#vT*etMC^7}*}utaZL7BjNcPx8DKpQ3=%*_v09e9M$;- z7sC{(qQTz<9SaZT?fEXLe9b4Na(&&IsqN6wdFh2d=JS|hXpKV!8*=fzitH+@#BCUj ziO3?^A*v&}MkN7XKTEfFvQ*5&HrzkexM3e8&&)G+E=ADb<{ylh<#-Nw#Aiu8`CHh? zR!UO=j1wR(;GYIrYmt0>7PrNF8zA~cN07(BSF%%VJD$1u3XTksf!$-NOeg>g9EE>c z_C}I)z?;P#WGtcswZvIR_CXTQR-DK?0+#~1MU-*813Wi~qB!Db2KIwQM+TOWxiItu z7P@iZ%Xpvq4BDqG>{1sut(1&h^co|FW}71D+ygY2&JG(29Rc6Zv`gGEM2*;D_A;Zu z&AG{g`hXv;G`@%pI+rLn_+y-D<6nThNP%yQxIl% l^*q2u#iL4O3(Y1OG#(nzj_5LNva)v0EU5 e*GI! z_(Qt@_c0K(yNyl)%I*3}<7y6p8xzn87LxenyV)FD0mfV?gGEryjtaqB(O5#y%d7D@ zwu0)hRB!Fzj=z6}_XWLF2s;cTq(?}fNQb4%DiMA*Xjx$eA$3Hzp4;8=M*f+4QaiR4 zc jlt_Ie$ko|@*40roZ51(@c z6- @FiGz_Zz5 +ox3UK{wpIiKBxz}dgjJbgMBaP=@y~l%K-i-N&K@Fd^<-x?*#!@ zM1oJ;C5!G9;RJSop`j!E0{#L+?EwCxIiExYl?d?2T~N6+$6A!9IgJwSf-U94CA|3H z%_8BELuyPdTI*YDK>uoclSxE {oU7D0k;X+HY}BcUzobAES;2GkCpaA-c! zl|`l^P7qYexqK5phVZjlO&W)1HddOw#&ZRq`z}7@SVXoVDq*sN{Je0?;O0;PJ@XOu zr6Op6Ka>p5_0Kj)meJ~x#ml2Y^rO4xy)rg>o u^3g@eE0qU& 8@uXI^oN9-9-6Jbx;QuABeePZEa@fJ@4SAEYgD>Lk2;hq2?th z*DZ0^2N^Hsv*;G0s&G89$k=o{dfq<{>89^{iiW#Ty|c78R{uS9j~pHXp^>qvWdspT zpk*~>wMu1i$)iY_!;p`|`l{ zVxlw^d>=3e%3=|8GomorSvCivf_Q6IlOcb@)=?^HC@+Kg4%U{?4#FFnuZj*9ypwD! ze49}HxUOnK16N87Tn4_4E#N`&m(8Wq9Zt|OYaT|EW-jjs*G}@+5^c>a|jGbbp2#s>r)@db_wW_F?4s8wjEd|4BgSt z`Kq}2cpI`r)SKxl=8#f_l<1>Xti$57GkS)cw}kO(#Mjm}YMg-~_G@V ~qvN;Dw@&c1 zY4{TE=fF&)%S$34^_FN%G?Wl4hK|FO1#@CV;?dV(fNmIi#({eG%dH^@=0ui$gFHI$ zL|@q%4Vdj=CHP}0L_DyU`r0;h?#af}DNDF5+%BFlaX8y$U<>IidaP7R?t_ueHCJK1 zhZEK=GZ>a!Li~eg7*_{_-zAS6CKSSmqh)GMzf)*1BaDLo`PEnjzi#N9Z!Q)Ob;bZU z2uf^HMa{e8h|AWAWyO+~)X?|Qb; i2@^`nhoWH+G$T1)~ob2i~LbyWviC#Q3^~N%>6{7Lj zel}1N7_29oA}w~0=%ij(?g<3o&*857Q-KXPnxOW@(pF(QZ$^HyAm+%rBi$SL0e06) zF1|Mr4Wbkq9G^D`u4DVLY=P@Fqj0cfF+}Q-Sr>MPm5Lp1({uexM>w+|FnDhp+drrP zy|ga}_a&ApOxk)ZjZhQ#J9#=jCpNz968b>l>@bli35c3C001BWNkl N4JVs4Xw!eN8J$WlbvD_GHp4}OFQi<<5 zeZ=0cDue$ej?dF0zb@P~)pC=1f)V)di2>5ihyl+a$x8g}Q0a9mj9gBe$9mq0MLvFq z02)kci?<~=(5Z}-hTyy=pMa~I-wTXkpo|8DX&_RMbQ{?+hWf?p;(}+4MBc(w2-x(f zC$A!kJprHRcRK1*UbNs%;P2u$I-E==V1aV{E9C3^8IeYhXR<4vGG1=BNLsf?{OP2Q zY`auH;XRBHKlmKM!%OYIhWuTlZkk?de+Mzrgg|BrmW#(xZ*5|*yo#&=GUj1SXX`gR z#PXSEMt}bgPaVyXdUULkPvAwZcyYXyCP=23aHOBf?16%49PRPEmua&?YM3e5a!HcK zge*%~Q$rRk+T>-~ozbTSG4mcJp1?0{i;sj~ut;bRP`HH*%gBNyS 0%$8#vXWQzfKROljJ{P(GN+ z-Hcuj{TGefXwwSGWeENe?(8&U4F@Ios|f-A;9sc!`d|mm*D tQJW3?ZqQFyoDMJ+v>yn8 zw9j#UVH5WK{lhAqME*STWtAQ9WRKZ!wp^zE0nZ97eN 8M@_F_pWjrid5&ri|i;yv}}&?&(x5x>=lpXXJstw zvv3$+s0)$4Be8IV9bJ>-3;*;)52~9?DhOnzLA#l2#mCz+>5I332z&|uP(H@CJr26! zFuh`GqA|W2x7`qAd2dIodEf@TjB0f@6`rj@@5;aE#rYxfKKyrE!ZESB4pJ1gXyV+| zO0t-$?l!vKL_@!yQW5G<6^lWC8t1C(#0(Yx_es=Nq?e5CSq}jPJa37<#U5YGK@O`M z743^us|`I Ee!T544 z2#=zjI6+SQ9+vqKK1E~hC~beZ4Pph1^U;I&3mrq25OqEiy7sWt`$vOj26I#PCo1|z zJRCU`3OpN4gYAxC8^e ?s2GR}y*5)Wo z^GQr8>m!~atWLC^#yd&4G1I>A`_U-UsK$+^Ksk$80jy?^vIaeK#(WALC(TkjMU+BZ z>oSKf+>D$bHs3LO#T`VuTN`^jOd`ryon1DT#sFbQxN-+X&q1S;eU9hYGDy#YU-pDN z&1syN2@RG@l^T$%6(1C7#!F$#Ck5|fo$Ob@e;D($&A&rr(mEo%W%`En@`vW4rjmG8 zMi-2d;|ey>7C(ww>|f@lFFdJhhuE5Ng S}^yD)N))7*-XFWUWoF@8w2**EEd}N5S9p73+A8Ku 5Pxlma)In^3{&%bUr@jT&HWrf 7-YE*ici|LCsoNyuH8Qks1Q3}0HgO)M*CFWyJiynNn;bz)&va9u( zL(jq^A&{zH6-GQkIpx+Filh3`y=|hOy9hxQXdINWF4pLt3Y8yL#InsrL*oo+_%ak6 z$d78zViD4wRS1# fgSh_d`7Gzo8r zEzgdorK*`&%`Icfq2B+Qaeo8Bb9?bjIyCHzmAD&JW9Ws(bWDW`acsRwp+?30+JLoU zmA(fPU^(`(3%b%6*!*H{Ar3;vcZkkOdI4V>Fb{1pb&tu3(9n}O<*W)69~vbw6Uosh zeh#4AS#r4(^J-tbMX$2oenU_E8WtnQ>e#oyNF^D*vmB^}MLGlNy+JNQq^=pCmW* zq%Mdr9Y1SK<)z(%Wcbc z%;Z6JljrD3R|H8Ea{v~JzT+M)iE=&3 zq7_*gX3wB$mSj*Ki$sl+EcVZixI;73%Ih9D>b?JE;Ufz^n;aQx2tO&HVAICUeMDm@ z?gWpc93oV2WoSOq+~CeWScsVsG&T?lHZmAoxt9n9l}VL6DpqrWZuwpFBIjSB$h3iS zD1MT$VmxhBMT=!1w~)?Iz3mi|afbtra8J>%jwoxzU!5Vv%~CIjHhJ>&8K5B&AKlq| z!qwZM|B$w&=EBo7*6^lTytV)ZlMcgEtZjTA3O`}2i!!g(Kl$y;<^ao3x!k=WEs}e5 z^2K7&X9%1vb)QXN0L`eMig{IO0G;KGPsr`f0B9C2FfG=ug{D-6AmxD&Xq@fx?C5_Q zh1#5gq!SB|_HYO1Txei &Pnps1U`GxL#W+l}#jA45A<&IK@RTnE-PI@61qwpo zC{ S^3MG$&eO9S5s!xei|Hfn-~n|U;)(5(Xh6~$>;oIr3t{ ?$ zi-8Q0-Y|IxiyoP&Ss<*R!A2dk_{-dl#}T U81mB%4AD(n zcvAs~ak?xuOg#@lG4ZkDMgb`vnLzY2oRf!$5rw6J;_*v~XG8x!g9cySqebaoa9VG@ z_-j`5*nRguS-QcdA$mV%o;nDOgPCcW2k_aQ7=)ugjpcbt5&Re58@%Jf9@s7D `-KfdeI$Bab#t ziTaxBzb$CO(8w%@dvI_;Iwp&gR1eH|Ejjp5vS ;~`4uO%SG&n0yOmQUVM(LR^_d&B2V zSV6-w(mu(EBVfA4h@%rM ZxHn>LnoBzjx`60O1WixP4RpRRgSID7aKi^yv ze{;lQ8Xy?!_LQ><`#B5^{mgBqbg`{RG2& 4>27q;9xEsA81=pF@?lSWE6&ZBK ae;0viy)8##&|kRGu4T} zoE|VmGW;NnWcGx$1N759Ifn9YAx8YL(sRHvWqASX!7tuoeLXJ{?}L+&oq|}wX#M5l z7ui27Gw<_`2ui>}fX!U)9hk{papVB(%Re>GiT0R;2H_Ijql>V8cPx$o(N5Q$*b!%` zk-wCzjuUx0n+&1daXwvZZWb{EbZ+o;taCJST#xK%=r)l33|$Sw$l}Z`md;fQ7ws?H zGUYdn#p-%XHjVWK-M(yzg>DHJ=c%vMrL-kqNcH75{%cA$;&?aLzY)$E#=}n8L )%1~IsD$`|Bj#u;#CyK zOFv`VD?xbp3?gi^xtHlr3jw2KaS-<74@#@wECX*W8MllN^t<4Lxiu_?p?TwxHh971 zYA{LF+LIinBK%*9#_5+!KJh|#=?)#!6W&Ey#LH(exIM0iDS8G~V|N(v2tTUYJ i&ck^R&fJC1XTA zvD*HpWh7%}xtJ|pG+KZ`|MQ*eSk+&r=#>Gh_r{6T)YhK xua=#T%JE!>s*eturd>p(HE|~qpdrEh< z`P^yagZ=OlcW4^WuU1#&P6>-GiZi&uWjw5zds8W%$;ykpC#^I_(Y4s7JG9sPK~Zd% zrE6)-^a^VRM-9UN+q(+*D2^`vX74U15n{w3A&>+JBv^2Fm*P&L^eYq!l;ZBip`{cp zPI1@bR@~j4kOYzdvGd#Szk%ze5r~kIz`oxv*}dJFH#7g4dGE~|*;cO0EaBttAZX0Q zK2Yw?uEB41Kp^VEJcl>EfpR{RMtb!&$NmJ@3b16`e1dc{DM={~f^WsW9dl(;64{(> zB=X-O{bk7C(9|}{&l2DEEKKh!=umd7qVNF&gB?|1K9={1?{@pkR(fOT ytx~a<7z!6l7w7qY^ zq@L-jI$0j^nJd2ah5C-&My;esY;p $(^MAPh zcQ-=4e?nqaSnc O86i|dTIMarEeevK 01X!W*P28u?OhZRE$NW^+au~CJMkZB8VJv*z^!yDvR!A{cMTL$Rsb_a(^E1j7 z=dSyh+Qv49DSZznd}SQC%eWtu{WH!t-5i7=l&E0R4IeAK>Z@Ke>tv&jp6;T4q=;qk ziO9|$iI>PG+aSQoP(9W)+hjLMMp?lArZ;~rFLv}K$Yj+A6 F?;Q4y(m7aiTxnB@-iN4g$5&;KcgQ9Bea@tCZ`(wTxf;oZduy z@L`{k>5cpm;x)jSz4J%lBeKX|2sENvOsw}**BL9erRAJCL({L(Q=QUh8W5iWszqHs z)53|xN*RG>n0?Ad_0CGPYV~^FH)2Omxkj`2n`W#weUruWC}!{DBTxnwO&WYPEU0lC z<$TRY?C3%U{`c|AC34K72$aVxME5M3H!)lPARxt8#XED7e|~5DMp(tPIOA;6%>fOM zbxU__F=AQ~5bAqTS|feL@D)WtlNvOoEP{D*OH&gxn}pd;H>g}T$*Y*nj3Xe__vMVU z`P?~hpL+qt@`(tD2;kHs5d;wd5rNMi0kNZh{&g&tP((n~=wcfX5%>}iz$v}<1!@fX zh|_Cd0%~FzMFd0yL&Pg@0I>LLP}j)01O_?U;OFskd^qfV7 (~dLoJf~4(n%DO0hU10$(-)w$w^AXwu#U7;|>lG~6gE^t3}K z#t;$s1PIu%=HkcaJ^}7xk|F}10s%W}N$pafFk_8#)oJYf87TA|)FLefPd!9pND%=M zfh>oBJvArstGZdPTEq-}S_Bwdlslx!)z3hoe_9-~PU;RA!KJ~X%Q_hsb0Q)jB9LkX z97TgB)mVK&0U4+88qsvBsL;QlI{&O&3Sq!LL)Kt$kkMj#)n%Nl>q1x#Pr7`NJ6 z-n^oy(9;K>7)wMTiy`1etv}|z)+|;!F*_mxA_4*exiD<$m=p>oam(AO#jY <^~zg%2h~ zwKnDBe2E^b^j$aw(ZiXBo_wRUmn);Vr#;2=#nAr6yU++Cg99JL-%cM7Ar>1)RT%n% zY6mx%W~84_O6@qU9IeJM8}=2EY!_Rfp8k~9^wJw%zk**)65v0E`q4|s!_sJ_z0=E$ zC@!aI3Jruj97abdIQ@LgF&&>vb}<8yJ0}^*uOPB>;57UpqL@Z}5W|7wAz_B^84eH& zziceaS2D-S_*K!6)uJ9m5?}UXdgPWl2kJBYDT016o#4mOY4cO)gADRdiLWJv_unyT zTi?}fdZk^Vo7uV*mDFR8h<@&6z4<{yqM)-H_orUwx0dUHoXUKDF+|rMnl9N_#TS}A zNJr(-KxU8vDwE{x>7emBDz*XJssEnH=QJIRDo#{7R&)39uNFRu@6K2&{PIAt^cody zm1jNC_s%vyM>Qat8y+*%ZYNQ*5!Pz0Ez!VGefcv7As`(1m3*$mT!^-eR*oxlo#^B+ zeNKl-$WL`9GeOa8?GW2cwl-;a^Ap)wc8u~84L)f5b3`|y77sM1t{*kOMMpR#kt(#n zXFKyPu^i C5h zOiyj+qvOWWCDsBBEGJ!OFhmrmsh+VE1Yt)yZ9qB&yt%kH)riUr)%@@T9Y|7u*Bg^L zxZ>(v#So9eL_^2M{peSbsFIhWy5=XMKfPl9mfyGJ(|lJvK)#58>*NYD`Q>XwuB7Yr z<}dSG%k@Q+Ro5JciAHTQ3@8EtU&bW69es{y@#xrrIZQ-vhM7+B%`M?G?amjwAs{Hy zN~(k0Pi!R7*rT>nLVh5sbxeKa4sYSIqnR?=e<9Jjahi!a+Y-IpW-Q7yL@v1{5xktp zVJ!EJ=^;@QnN>h&A);zG)c5WQUs6bc_EuKb&JRQ3)M2Be6L5L5O&=kHVR`+m{zq1W zXww 1wiHWVZL;HOFlCNpC1_t |Al-^9%o?P?3T;fNEmuf_h Au&%rFQ J#7}1(l>O#(t50w_mRdHz7^PfhyR_#q3I`zNhvl$8auODi&_PRd|xKdi@a2PI$ z>BdmSx9(aPaJKAx4#Y>9m{P|?^8e2;tc{oEah z^!F(b_Y36WMb=j@BP!L5fA(S#QU0CUv!Sys@yvJTcC)dOwx{bpcxL-aR~zOLZ9X5{ z#p*Co-#IoVUjvs;OSDdxqs+0AURSo47c5eR=w^&jYJ+;@p2Kh-p89$WTxa!!VAu|I zQdGHXO;qS-%^x8subKXmsp=PSAv!a_z#LByMTQw?OVFQe72I6Y1)>r%sp`#bqQ*Tn z6K?rHUirP1SLY`xWL_|Y7kTRZ^7MzHQl7c-(}@oB)KuXxpyT`VN8=3+U)JJ%M<;vw zN%zxC$Rm~V(L>~;)N9T8C&?HpVY#dp*`xjbbWpdV2=r6&(emzE^c%e^-<>^1f8P (HW_q?%zS*%T(T^210|E=89aWGu zHsWfg{b$sE61DkP>aR>1=BI8O!Sl=y0CY}$#Ka+8&q%@u4QEd%8-Msp;KWN+=_ehBH60{fcc6<_L-}kry$dBil`2Q%s|v=<=JUpF=@UE|8nN z@KKpf1+}}}DnM`+kz6rIh&B$4n=FUGO-wUO+Pw XiK=%-t`+}^YYbHqK?HiV=qI1x4FQ2Re|6wncr%gwgAz} zcCq~xl|Rg_@LE|F9v%5lC12zS@|T!~6_Z6&K!bN~C+TmvlzKed>8%ULpu@lbD8+3i z`r%vcp|b;scAAvZf++t{AN_MDbc{F0OnzL$)Z@_LiL#x(2GN8|dZ*(kXJYCU$BI{Z z2^=QKd#VGW$gjqzRU;FJ%6h-^m6qDU^rZD)v+l=oLa=!9YQYe?a!_$Umn}N_4{;6r zAb7hiv+fd6lW0o2n4?Y&(Bb|0x)heQJRXsf;#i+d-<(y2g+G8mddAKgV~85$jGJ_` z7SWD3s&D)uI4*k`U)f)V0?(uCZq<+IhPVC>OVF;Je&?n!)Z=z5S@g-dz|%!GDDV}+ z$La%=XNd}1%dV-Rc=tJLE?Gl?J+5FVPl5o?|JI;65TLAj9s M)X6beDR-pZMu2}LnXGEI;E*hRr?ZiCM)f5~6YyP$}U z8e*K$ze8pj_e-rIu%By3vdKwtNbi#sK{l`N?jiDOZv6RmJE9y``W3NpNx2 Qe` o+8xwq;hmaV&-0p}qW{lP{ph Ps%Psz8G+X8$pX&cF5&^E8C zh=^ lTndRFp+6NkA-iXU9JG~jt4)6qjoG8?dmQPQ>2zu3 z8gG>QcfIyVo()7fCv$5}eW2j?YOYJrPd`LWuBz7Pr&;(KLbx_k$U~{SX^mm3CH9`9 zs$&IvqP`<^M_o`ZX)PMSLq8oHt%;B{u!KwLZtnxt*-I^vzh(LjZ|1|Gj^G2Uen(WZ zoT6;(&z5>lDSm37OSyd9Qtokl@P@)jIlaWSWQSQ(#QqI`$?#z(X%bFnCgu#g4He6b z>={eOA~L5Rvyqkx_s2GBe?mVLD3m4=9r=oTSpfpW^@gcA55u8&u+=;*DsscJxEu-y z7}(FrmtzJT JiV_@gDQ$o`y3 z1>B1Dk*_s 2;Cfe;zo`*^QHR*Gwu3DR z{42iDKZ~I^Kyic6>J!jbHki;3BqjN!v;*k|Fg>>#hWH%1BZN9DST`zMfrVr$6lRcg zOi>ic;aBdOsS8oQ#nLKz;C1$;?t}#4m<;VlNH2rbXP5QjSFMNwFKdE=fp=Rim$zD1 z82G-5@Z0Fuh3{#cpF=R3sam_Z9(S$a5qzMmTRIj3)J-w#O*GM*J#iQ8ccMRz#CR$h zgUcNML)RE!F36)k75U#w -@x%7(uj*l0}Jq7-!C_o5vKFH8TsQ2?^APKJLMoI<*0RJ2V z*hn7zuFxi{8d?|-e|czkTIE7~52TCuNvI7C6FeS?39_UkCjE%bhQuC?YbkC7w*c3? zn0!oza`BQEg!DJIV|V_B!jiwz?$e>&n(236WrNb=VW5QQuUfT$ylx{`>#7h Nbx?p(_+s z+>cuZ4{bNi`GC=AAK%-YQKPA@nG| =*Oc)yy>Y+}#Xi%lf7 } zOl67cRF123>vwoq{!rC2&4RvZue;~o2+v!pdKi(_y>d;E>`6+gKzZfm_Sw`YiWn{r zQewd9VP*J}hhDg~)u2??0lsCp1>Dh; fh<8g37lH<@tn9yJ-N*q}X+k@+ZYl3<~!EAdh^P1>+VZKXgu56HBg;rD}= z8dBB(U&7n>l!I-hlY&c{s-T;oV*a7ARE^vbza;ycEygvJKhFdKdWI{Po{@#56z!vi z;9iKLNl@r7*%M}s-&Zix0%M02=87;hln)W&HKm{8L!nzHLr>T-VeXz4V)tkYu94gx z_8vUH+OD{wMfv69*g?|_xccs~-6kVO_L{go)`<7lPui~(P`G9So^vSH{OiM4mW$ CdcLo<%o8J_DHiK)=L2=p&s5t z=RFN1cv{HwZJ>1>)Ln$;_Mv!G2`e_B@Q~V?w=v)TXAfu&>kL8G39Vn~2NyWS`{cuu z^O)oTJ*jA_#!ZE10g6V7-|^|cr#}jDlB1?$lxH>Q*blE6v{q1n_5-=6#^pqvFKcFB zRAK6Bv*K0-;M$-p3w(7Po{_?8L!r@d?FLy7v4;YvKQeaWjV>0>z4EF5I)i%oAy{^{ z>LG+@)?v}WYyO3}nmJ-H^2^6fq9K6cfoZUypwmj1FBpWv3I-B76%@!iHCgu+9 lcr>CW$O+il&(^%npjnq|CP-IA-Xp- PXE5!UqFA&eian@ zZ9IqkGLz3`&9E0Gh+6-moc9KXLBth0E5Cyg{%u(Wn5cATuwe*$D^JZ);;+nueZ`(x z9>we+7s&z0#qEki#h`!ctuQTo=tblfqh0svPk4C0jnmxe4aI&z |P@s?~V8>|&NL|@Gq0)UChXCqfErW58G3ScqaURcbll%r%j zEurjIajlH#SUtLERp&;az&EuIb*15|cTt@y2LSBuv6n^;1s}z>q$j@^KXxZrLQv=( zEUALu7*;i2p?l&k4!`{vV~)5AxZFw@GIjS7jy>Zy#D}#J{$ph7DR?fJoSkEWA`|#( zlk(#BQV>BjmRcm!8T=q0Zb}~tcu^j8g63w4SNxjfw>LM5Z2rd%>u1CD_CHl?4!9+z zI<7SO2}V iH>LGtiEy*}V z>()eHB u{ z5Ul^b)bD7YgXOi)U&U0@T AR-v`5 zupS+z)j8>&Cn{K^w+#)wQ1FmHO>cyeN&Lcq5KDOTU3f8mp0Ide?+(3#BRU@FZv060 zT>y{Kl+QR4tDdiOF)~<4@~%b_6gtyk+&>xDSgc{!1Bi7f_^Ef1(sDVEuapTDdN0wq zb1YRC1Pc2BDlSR@m~nzak52~;Bdx^EVRFGM32Gp$R)<2*3k-?Hv9oMSJl{)#g=VI2 zm5ThYVc^*PMK^U&uxEE01MOiL-GU#>MhKTcD4F93*T)@bpAAMZm&)p1t1dv$1yFq& zpD@JRd%rGLEggnJp|`+17#=Zuc8wjxRls#?e17I|$CAcN>l2oTy=E^`j>Y*Q A8+iBnsPlvH+sxTj^SO$DlG*@cGQh?5~ zKph4EmuDKkmA!mBSOdH?WI8`O2!{U>*tn3l|4@#;`eHF{A>eHdZZ|Q~TK}_k l&-%eimHp`EyA(5)|M|9XqCM6syY@24@bI9S E*-e V(V>tnsG!pEg=JE42 zjWEM~(Gr<;qae)d3$F3A!kiilV`bw P3>yoFf8R;=U{V1c0W--B z1XmvC%Y3 )9Uldy(%d zR8w3(z5-_teszr{WH5NsO)GH#jaAavYzvKHozQL@z|T?^^)wzMbQq4AMd)(zuIezz z6-6Pm=W~+rg5U?$6#Cqm-#k*J3k z11Va8el@^Bef7jq#C{2vHE>Hzl4w3uSk(BcD;X3poL%P87GchL-gv#8vk&->fJ?d( zrt)^{>OmY~B9B}0PrFXcEF-`B!;dKl(g*Qk{vS@l2wm`CaV~U281QhLxEh@DpVuGl zhK;4Bg5oB$U0P>h%QnArxd*a+Oi<`{tR@FbiQC34!Rn-c=rQqyVVYCiQt2Y)6e!Nl zhOX)s|GXxZoFAb73VLE8Tg=smCozQOHEO`;8MlNp%Lz;HRNr~N#P+rUP~_`$-DAE_ z8ZDTU>mAU)xC4eI9ORx+iz$mL!f) *X(y;RX^ed z2=R0<<^}5b%-|W+6b54_<$;TZAy1pDJBA{DvHfvNo;afYl~qQWpx`G57+)3gCu(|H zQ9!*N{31}BZE!Wf9QOv_j!Y%gEAykAta^Mp8Nww#bNDCawsLdXBlFMHUoXNki fFu@l@$SlV^qa=(LyUyIgD&@i}IRwLf^oQT;2ECPW6NL(vyih-cUQjKRA>k9;N zla%1_I>L71`6*OGulRU3--oA}|ASnH4$_rx`KfS;PcJF^q)#eS6V^HDWAhXEAtnmj zI8q{X9G7_4orV?)?Sq@mHgPaS(n{Pq%>7A#Z!5Z!a1Jf4e9{`;xi&YQp9V#}mu&fm z!lE71ciitd_W%p11ztzU&`H%7S2tQJ;EK6v%tPUC3yq`%hAT#8SA}hf4>#%;=MsWN z$;Zm-K+)HfGf7RXe!mx&=d3&0%_IJipm+kq)Tf_Lz{tFavOsywXIC=plR8v1nI )->X}U21v>LHnyqZ1V#!gduwl$7jj#He>Uwtn-!I zf%<998x(yoFzQFU?*rc=rQ;es`SWcU;s1B4*u|%jPTxh!1vQVuwSPdqK5_)ot)L5W z?raH{S$C{5q>zCB(nJb *E_gdJ!0>wC9D2I*CoBebLhMKX8lMx}#NN)K z7oi+%Hqv)z1%>)&BiK*|1(ldKRj|5HXfjcU`vy9H*7COad5!iNBz5pU$?bxJu!#8u z^HHn8XD^%Sn1Ocd<0|c{5d`HsH>f4Ww|9qsmYmA#NmSj2^U%Q%xm4d6VAmGu2C;gW z+(|;*Kz5v#y?gu@gzYM9CoYTdf6!4Dh^rL~ XY``(PlpM1A*J7Z~KfDw#1Krh=*&PZmXc?RVL5D-?WgEtS`Gtq8tdnRUF&JrB7H zxMH9>gUbLe<{U~{JvQ}YtTtwjTv2{PJli>D<_WJ%%ND>Y6fBhD3<4`YU5se{E4nkC ze{J6yiyV$(dGRqzs-AmvEndUGc=6b(qSYCA1lmfs!25vwnT{(YmT;-P%RRw3`gKkW z5b9X9$`J(5#Yo8m;}|TiAHaVtyA)sUuTo=i!&299=m?;2!3CF?m^XV9zbfCrcCppz z$I~Z{8)Ae(Hu^a0d1)W^MgGM13@VQ`R-;*f9)`}P=Ee!Kjqg%N{iQ@u=7-r^L*X`d zU?w4UA2zQ8@_7n^;eWVVvmb?gr _^9%W6OF5aazc;g}>@i6_&94}Vmxya{@EeTi7E8_v zi;DK#HikKu!d&H9>C `Hg#Ubv88x6taVh zw;vm-L4E97YS>}Zn*?oNzQ}pF*r&^VqtQNG`)TjJidP74OEl_R