From 85a46b58c9451aeacce25127a409ff909229fe18 Mon Sep 17 00:00:00 2001
From: Erik Nygren <erik.nygren@sbb.ch>
Date: Tue, 16 Jul 2019 15:47:51 -0400
Subject: [PATCH] minor updates to file loading and features in observation
 space

---
 flatland/envs/observations.py |   3 ++-
 flatland/envs/rail_env.py     |   2 +-
 notebooks/complex_scene.pkl   | Bin 1810 -> 258467 bytes
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/flatland/envs/observations.py b/flatland/envs/observations.py
index 80dc73ad..fecca331 100644
--- a/flatland/envs/observations.py
+++ b/flatland/envs/observations.py
@@ -397,8 +397,9 @@ class TreeObsForRailEnv(ObservationBuilder):
             total_transitions = bin(self.env.rail.get_full_transitions(*position)).count("1")
             num_transitions = np.count_nonzero(cell_transitions)
             exploring = False
+
             # Detect Switches that can only be used by other agents.
-            if total_transitions > 2 > num_transitions:
+            if total_transitions > 2 > num_transitions and tot_dist < unusable_switch:
                 unusable_switch = tot_dist
 
             if num_transitions == 1:
diff --git a/flatland/envs/rail_env.py b/flatland/envs/rail_env.py
index e098160d..4c44afb7 100644
--- a/flatland/envs/rail_env.py
+++ b/flatland/envs/rail_env.py
@@ -446,7 +446,7 @@ class RailEnv(Environment):
         # agents are always reset as not moving
         self.agents_static = [EnvAgentStatic(d[0], d[1], d[2], moving=False) for d in data[b"agents_static"]]
         self.agents = [EnvAgent(d[0], d[1], d[2], d[3], d[4]) for d in data[b"agents"]]
-        if hasattr(self.obs_builder, 'distance_map'):
+        if hasattr(self.obs_builder, 'distance_map') and b"distance_maps" in data.keys():
             self.obs_builder.distance_map = data[b"distance_maps"]
         # setup with loaded data
         self.height, self.width = self.rail.grid.shape
diff --git a/notebooks/complex_scene.pkl b/notebooks/complex_scene.pkl
index b5c272477f53794d78a896c33d7c91e5b8cb0ea3..9bad5f9674b7a7b7e792c4e4805bce51ced35f7c 100644
GIT binary patch
literal 258467
zcmeI*ORp`-l^5`+ZX=cG224{z9(YhHS(a6@ta7>RE_Zj~<nZd|{c5-SVN9v*1`9A&
z+XEOmC18#$kQgHIm@(i3Af<%G1obyyz>uLo0(H-cf4K6u?s@Kg?>T$lI4ae;J6A?z
z<cbyRA8W;m$bbEx|Ir_Q_uK!cz43qAyKVRPN6XLs(I;NJ_P<}+-MstpQB|Ml<^JN&
zTfv{bta4m`{gb2UAFXeWfBTP*Re4z=jr)yf)&Jt3_94$2ms_r0;qt~CUZ=8t_JThX
z&BvQ~`R|Wk_*k1icKKQ1eN!$Q<a>Xt#K-DsAG>^6Q4!JQ4IjJf)hqlQ;nvQ)y7Duj
zN0^s-+I#wE|K1Dr8tJyStK<{E@kdwnT&e!mua8&M+c}hV41w!fdv*P_-lO}6eWXME
zc^PRR{q7ZA{^OV0uRr@eM%x%Q<M|JK?0E9?<^Jrs{mn8qKWf8x*PEYy)!OSC_8J1e
z8rYZZxhnGf%F~RG?itPaNLb_M=RWjj7l&BK<39F}t0rAa`np!%dOb?{v09!f(&f)|
z{-q8)(}3Ilo};TTu-M0%eD#_?6WhmxG$e2(t=nGVieIW8wS4rC*V=#k@E?8Wdq4ca
zw|?-$4}bXG-~SK){>MM}+G{`l<G<Mc)qnr~KmWmZfB4;h{=IMg!5@D3`_KOIzw^NV
z@`LYx=R4p2-(UOb)rJ4@!$17+d;Q+4JHPc&so($3KmDiQ`4`{)Vf*(#e(j?w|I9l_
zt@4k5;<X?Di7y<r%3t`X%0GGBDu3~#Du40qqqg!-d{pHx9Jk6p`An97>Zq;!rFVY*
z$FKd|5v%;KS8Doi|J%2}`;n%8@Atp+t$+66_kZwje)4nQ`}Y6*$tQmJFTekt|MY8r
z@cvIe@lU?{y>I`d{p64R;2(eZ{qOv{*WY;e6F>RHw?F*hhySbn{Qv9f`_ms?{bSP8
zl*8X$p4;yAxA)h#zr%0%EBy95`}-I83;YIug}?pneSI7J6@L5O{rwC41%89S!e9T^
zzP>H|-|N@mw>ci#<=>RUl*2O#+*1#>-&}TbTlw9-zUMFSm+*5vw6|jozyIF;{=U8q
z{tCbS*8ctl{sO<jU*T_mZ(rXQ{x`0!ukc&H9=R^?m+*5vH18jN-X9#;;IHr-_J8U8
zh3jeGq|cuxEy0iU%irAV!Iazc<u>Iq<<g%0^>I@u_FFs|_>ggT3qAy2#D((Q>)P|c
z>*7kDr+pS*w9mnp(18zm|6A}O_>$*_radd=eSXU4{(=*fU%`<L{Mq0aeCqx|{EXmJ
zo_{oo-;jFshl>Azzti*|c;6LVDDM+~r^;jf8+%;YsK3E)_Qzk}m$yF~eDz`dYy0vW
z^*8wH^ZHl!<;%E$zdGOgjeYqIeuLk%2fw~AAA6AgZtz#j|CN3D4Ss{)uwUz6-j~;Y
zHTY{UAA7a_rG5F)?g!eXS^hNew~Pbk^|K#u?nmQLO}lyE_$hHIapA!FXaC;Zzf(T9
z$R}}#=;6eXcKH{1+(HXZ_xpp(L;t{g<4evLj4ze>2K}}$-x%?wv>$#0Co*5sZy4=Q
zJ(KSA!*z=7$o9RgdmOp`*}u2g$Eoi-eOF(Ko%)N*jrUvrRsS77E^_d9u1|WV<238c
z-Od<SI<((6;#dAYwEkKCO!e|5;oizTwoUxF7k=tzEczKQsUN2ucpN)mp3`z{|A6|6
zKQi^}UgLF+ljDvP;~eW>nEuD5Lf&;;ioX*-Ua9eH9&E$jA8N0}qXmED(E4Zj<J!|#
zPM*ZU+r*E1*+1idu4BA%`gB*^J(K&!K8gN5$Br+Rc-X{`dyUUI{$4CTx?Z|oEVF-}
zN#Kt5&G?_|+;^>K-uGhl{DsNa{SimD?;HM%dAcv`z3!<02R|SAjrzW_w?pD|`{g~q
z_<`^5`3vh*?W=o!lm9DwzIhVuSNHsqhxcoH{=$CH_Q9Ut<o~%n-+c1+wLRZ_^tSBz
zi}~pA8~pa?_vK4IJ^VF($i=?g=+Bp>Pbc;q<A3HsJyd>+`Q!Xf-fi-xO1}Gv$+61m
zYwb>dKfSuoI8Uwb#o&|s>y92@G9TD|94Fq-%CCKS+Mi3kKk<HjS>x~IpA+0of14+p
z>-VMLh4>)8WIxrQy?pRxaX;04+w+p|H*O<7I4^IRr-!y~hhD#;$BrvSZ&&BfNA^G5
z$LBu3wBymJ`|_eE@9uHH{dw(6dw$FQy!ZO`&|cr_{yT9-e)nJ2zV9w{$O-?&{do=l
zWp)3Z{)>G47x(AszqmiI;lGsqdHOHzyTE^0&5Oc+DS1=)C$5XH@XNY~{>jC@zgPGT
z{^+OZ)0tA^f3eqxzQ1@8Tp0C&FXDsv(t;nIuHZ}AFZ{^;C0-1Ch&>5T^xxux__B7p
z9@;*+*XKpM|Hhu*<bP_<Ph2UqeR|I?`@i4p{I{;?opIs5`@hrg58eNrecz$ci+A?#
zH}-#jaesa2Yswv&7F<aE;!E~#CoUG+?=ScuzK9Rv3;VN6d`!OhqWvd6*5r#X;)D1i
zUwm=hTYQlZeykV!elPd}-}qR;ll0@6(-HTJ9%9!YI)20p@nMTyh<yD`JH!X^W$kg2
zLBW^BI7*&-AYH+M$jfyk@ucJ_SkKq@`n+NP&9ff3l76JT_+s96!Iz$wm;8!>E4Rrj
z=Y)Lbs{J_^BsB7ApWVM-IUnS6d;Z$(e`tGq&-Z+g_W3=3;KLXC_0Zsmen`I_zaw<C
zUz~~m5&7u9=wEzk-@b7^$b0>IX!=w96kp_vFXE^8B42z_KKd{6#TVrxzQ`9}lwa^A
zI3hpSBfsEp`bT_`FTQ}k1z+G7d;xz8-oS4cd;QRV6YmN>gO~bm`eVg^i=1wut}AJm
z$9TD=9`6$`8u+mCTYL~-f(zq0;EVWB-Xr)CoT0q){SAJ>3F3UghpZokj`o5N;*0no
zzK9R)7JLw2#D|sg;zPlgtXqV3e98Oie*|~JZ}B^Nxstbm{Tu6YxgHul{08F-`=?(m
zzLa@Ww|@g?#E00&;6i9`kMb+=t;j9y4?c7pP<~|{CAggO;)C)LALNS<$glVx^2LY9
zC+!m-<ckmDNAMx_$rm3wevCMw_#nQB58y|^2lxdaz>k6t@C!bG9|a%a8*eN40)7;H
z!JiXf#<-3A?@D7g$!E}>mwX8Dz<i1Y{zm-`zWE&Di}@hp%lbQe`y#$<@LTXDa{AqU
zdGW=381cn?n&3<NWuyKEzO>)t`T8I5#TVB#7Rqmw7hl>p_s`cpF7O-nafPpa+~5aa
zBA@mTcz(Bk3)jc}>9<p-(F5>dqyI|&mVEHR{vY@d9I*VU%W<~9UH(luOgTK0z|@1O
z2QNYo@DrRTOuhTj)Vmj<chjCty_$M;`nXOUNk4Mp$Hb3ILpSaHwD;5ApT50+!Q*(u
z89!L|<HhwC*B@M8as5HQ>kq82l=TPrS%1hn!&tZK^2zmqf3Ck=?BCD)h_e3R`U~p|
zW8Edshd=To(toZ$u)b2(BjCH9Vg8-#A?5oitf!Rx?6h;z{WzHNnDTfgfvE@QsRzNC
zi)HtI1z+Gd@df)|@CAMoU&II2?+ZS_FZcj{6nud1ew>0Y;77riIX-s!bE@{DtaJB%
zHNVXD@-=x7xu5lN^UE6iMt+&={pOdMFJOMzLcW0cWevXhW#&7WUuM2U^2?G(wwNz5
z$H!TWk5e7jr{3<Bd<*k4O1=m8CtoP*ZK08i`9{W7*W{V>aXkFy{(FO8@^i?Sa({vO
zR_-rIzSh?38T$(IeCjtJDEVT^BMKewPd-`6M}ohQk7T}E3m;s_^CrC}PEDS1n>aFY
z<Cz5J{NW%y5Ff;o;6vmrz7%}u_#!T({0pPTRihW!fAOK<OZ?tWgD+{f{%>$6{Neuw
z7eae`^ncA~*8g2CkAGY61%3l(+~*wsW%w!jzmemCRKFqeGTy5Hpg*nupg&%4f%i$i
zc&PF)-`sfhLcY22?grofbf1;_;C_^$PhI}*XHg#;`(fPgGWOF%AEWR2EzUBo+|T2D
zty!M+lK6q6|KZ194Bz?Ya?5_D2EQ@i)!&Uhi`~;-9_=_#|7Shd%<G<rT-D>^w>*({
zK2<$3j#cdPq4F~>W!&}9`e*rr=8;cTFJD%>HgIMkZu_#@ajMS={+9MD*IRx!_||KD
z%YJjdq5oritN1^CKJ(K3pHsJAju-dI9{7H)dz5v*1M4q(JL{Wx@=OAE)dS<?j)%L}
z^NQZ59oNp^xgTCp`JK9aoNpOdI`sWqS2wTZ(E4ZjryU=7>iy$9RDb-bxBt=GC;oB{
z#iO@x;?fJ9PnNjvk>g7n@vD-zIQ#d7_U|0OH{+}Eim@Iz_3}=7DgGKKn)-LM{++sf
zHvILY$Cu0tCNKWf<u}`Z+T&wm{=ATPGW+-D{uO^qp6tZoJK^xj>X~^fey8EU{$Ie4
za&Gj2^`ETV=X*bmaYdeHoA`0Bei47oXPV>lX8b*M`INlKBl`#LYxLadQ<tCqTi$0e
zpF}?ozUxq~OE$_k=FP_K7x>0yoHsh})-DvgirqDz-2C{Gk52i8eD#ta55Mu-`>k)~
zdA29*-KaPHIq5Za5V^X~?!j{7Jb;q#9)9xB-T!~;^E2|8T$dhsve~C_<aLL;_FKuj
zKQex7`X3j|z2-M}eUC@GPyY>Ec(it%`uLgcKZ$V?+>M^Q&o0;ROT`QKQ@KAX`>_TU
zU)&$}#Pv(OXySwT(&I*1e<=8J<hWA$bHn}}J-+l!@Zy5skKB*Gf8^piV8L1POqMRk
z<S&Mf`rKa!&bU8s_%A6J+U2!U-uKXdDecEUN&C}Y{g<YmP+mVw|7F#GV&1C%rCrkh
z(x1@(+NfXuOaDdxOaDdxOaJ9n^;_%*_pL^s?oIJ0f(xmq;EVVW{K$Ce^YrW+9{X?O
zzhoZ&$o44jCtd^>!Y}wDK8P>fFG&8<z?ZzQegpCl7b3^BXT+6qE*$;gd8DI1)6aLr
zg`A7(c`Z3lHSNiHFI&eS&tuK?aX<Do=gq_}hmQN%Up@9uvoAXLzc6aM)1TMiLvSTD
z?Ghiv7x6)S5g*zu_#nQB4=d%x2k}LGXxM-8VSz6`XxGGtjq>7y_#!?m#JN^}r(e#U
zD#u}$qsI@V!@i_E_DFw3dsgrTdszIJZf|2($9n`{u*b*hS8*ZrmUSfY0Xr3380FzN
z@qzho!3X#QAJQM#C-EWnY1pBA;=|~_Ki~b0&^+Jyf#-R{Z{dfgUsE6Fg%>|M=Zyz9
zIvxG=!QL+#*K;mNXr4#^Y~VogU*Nl6Hux65C3NV6=cCYnp0ASrOL@;%8U5Pd$MaP-
z>M!T3h!4m|eDQo0@kRNGFRSwF_CGih`Q?3cJ--{}SMX!QzbbYSzW5?Oi!b7{c(dW3
zZQzmkEZ&LF;-&b!k|(h7d&n*NejTNq+T}afWBuSo!3X$Fe8{}E*Be|&dxm|=bHxYj
zPv-lB!q;EW4-+SfeF{EcpGJGJ|HD3|{qW6$EBJu@D)<0?h!5JQCO&9Cy8R#i1N`DY
zz>ohByA&Gv419<@VxNKwp`BmsQ}ChlwNDLv&_1<a>-Z6>e1G+dA6y6>?ay~$(|+VX
zz89PJg&#S+zsIkZ>;3)>{8-?x@K^ZaOOZe2TjZbT-+~X~i}GJ6U*r$JY2UH`;zRId
zP|Axh;)D1iK8P>k!wSBL58{jXAijtX;*0nozK9RvOTi29Yv^_K`HnPpS@|^WIk=<0
zQRE|DfOq1H@)2K@kN8sLBfcQ7;7a7Cyv3K&U%`)zH|lTj)ffE_^-cd{RbLZ#%JbnD
zd|^C_FOE0yCF3;m3a;e$M*ZSTnU5}e`>DMNzG$cNytARdd?g3*p?zg9AMv4mdCxES
z@ZO#ud{}}LUxI%}dvP{$pYPi)|E3(K9G*#F>cP~5JLrLaLVI_aa=U}v=J@*2)RU<v
z6K7s=oGo#rFD}zAOuI1c!YghU=KN^Rk1m1WzT@DXjvuTav@i7Qy*}3;+UNKD)$(ue
z`DOj#b9;UxKHfgN=O@0t=DyGD`Qv)p%lgWea*+@GMtt3Ptnu{{&!zlAJh#Nx;Wy&n
z8}Vr4>m{B|dE?<5{6_uLeoXt(p8aKfOnNDfDUUNB7jG?>{ao<j&8zF9|FQ4w(|f-7
z&_1>2ua<vf&oB7!$vt0uXs_@2;zMhD{;K`|>DSujUmxcKAFi%m|NmhZ_T`712LH_U
z=1kx7y6^Wn|MUBO&j0*=Uzz{;U03F3CI1J0$^U_0@_*nr^M4qh8}mcQx9jQ|-x<ec
zJ^oDfWsdu4=RS@jFH9ejXWGY+`KTqo)O`D%-<W+Cp=oc)Z!}*v`HOkJ`CahM|7zqX
zn*UYuSIGZL{z~#x%>T;uyiemCj^wZ8eDcuTKk{1gex75VyqC^j;Fq{`_{If#`8;=0
z?1%F-aA?X4c};z~nyXJa+$e{F58z4Je*k_Id<b8=|DyW=T!=jgK8)Y&FDdvCekk_c
z{9y5+W&dI?w_2X_OA0=~Z{URcPxL>`57z%MKX~{b@dMm{a-@FKZy5b?vF!9y|G|7?
z{Rj8MG;x9VN&Grgc^JP|p2n~3k7oRu{xp7VzPR!0=u_ln{91i1@$2Yu@5d3(=)avW
zm3Ro_Y5|9xuQmA2_u>cUeX>tr{KnsOA6oG@osU{R_9*WkJ<t1xpM9k8)2>O+dw!uF
zFZd<1|8MU9g>h5tavyIGmZNbgaO1)C9@?&1euv+$YCkxSc09bQa=G(+>vv>aas8q3
zt+eB%#kVGY+{-Sk;D_`6^xs3N>mKeid}zJ1+|BcXDW5ya$8!c853z@nKG&{@zv9Hy
z!#nEXiRzbmD(jK`1J~8dKJ*in+Z-3?F)ob5kGSsC%je=n(R=YXalt9SyUFj=<z(FW
z$oR1lzsfmSMGsG1j<fxzIbK+=b=`34>CN*5@z*%hl;6$rJ9YV#bxF_3J=89m7tA?V
zr!K$Q{?i^Go+G-Dw=(<pmi`5Q&3l;gyG4G7+Sf-ezv_P+89&^2(l|$V>eqSe*OTvG
z*GngU+{=#?f6c3V^8NqF_V?7~Q}Qa0>>s$Vv2o7&$;<DW^;XvrOP&JxDdzpSF4=qz
zacAT9C9a@dWZvk!Tf5LKkKHvN-8{&W&rbP;eD{)H55Mu-`>k)~dA29*-Kh7}_49?d
zAGw;h{ov=5e{R0|$Uje>x#z2&IxcXYy6e&-Pd57$j=b)0=YBJ9|H$~U8Nd2qx!3&W
z&hPP9`lA0f*ALIDe;-S)PUN}4-HcQBQ{?)6sd(XjsPa9JzTYbQstUfaAM3vDdD-`i
z7fpN+U-&*#!IvY)l_C%Kg&jS<lzsCV5BWY*em^qR|B77n!%Lix{cB6dk*ptvj{3xD
zaK?TZ{!7Y*Mqc<YzK8xxX+Qo;+CSP0zloFhFC~u;e(}GUx9Wdsm-N5%C-lEI>R<Jr
z@H6zk^k4M9^j}_8zr}uN@du)(52g4M!G)op@clkh!I%F1rR@7H_~Q4O9@_3>l>;x_
z_fYUfd=Ou{Uy%HzfiG!q=SRMNZ%SNn|MiF~CBCFQ@f*?)qu=g|3%|Nt&QCqBrSbi~
zwd2k>7v`&1<??>xdVl{_``XW&iCqp&`7%#RdCt+v{V$B>x#`DH@Fn;VTnSCP3O;}@
z1s~uSd;mWRKEN;d0Dg!MB|c_+4*M@Yh%e%Uc1?T`U&Mz7zK9PC{FUG7mvg7eaoFYP
z@dK%NG3-q013!j6>ipurXwQs~^*B)M;&_kXVd6x2{*h?GfwW&c1fH0uQ1FHMZP_=0
zeF?5aU$rm!eqZ=a`@y>Qn7_tO1Xpg8TgQjd|G|aOl&Am8_g&?`-|-`q{%`%eeR;pp
z|9M`%-xq!8bl}LB_xLofzt^varat@kOO%)Y?w)V|w=Z7t<F|z7ecC&er~f@)z4ZU*
zDR2M3z2}eq&-;FE&u`I-@ISlfyZ+KXv*$PPrM<Q17kqhh&u<-Hmf*~%_xy1^?fcZ8
zzouOHZ|wP-{7>%r;!8O{S3GI^@)d8s)-L~gd$yFnx_bTpuW5hdJl<yeX^-t6dYAgI
zqiJXOj>}xXFD2eo@Bw}kAFv<6g}hh67x97j$b5ZJ_>K9#ewa8h>`UZwv0U|W>_%wk
z7kq$U@B#cN_yE7)gZ4#ykS{)HU*dmsTI`GdhxR47(ytf$BEH1F#P0}=Jj0LtgDd&%
z_y=E#eF?sV+CLp%64weH`uL6B|9L+BQ_k-SKmB0&T<`Ve+^+FF_~raA`mdbd1;3o%
zMgNuayWp4eyXc>Cei!_5ei!|>;iuVu@jnNpy#8mw2kI9e;{Qed3wBfgPkhk-8~6}?
zF+NDVP5)1SO8-xPO#g4A{-*zzcHNW4E-N3`FO<)iZ${sdZ}C59zxbkj#24iwz7+Y0
zFUTvnGV}w!_)_{S_>uRwJbdE?;*0twz7&03_V#O2AK^F03;5!A8}Y6Fei^5cR|~%6
z{jFbo@q0BLUs9j;Ch@Ier~30!?$l}aTk1cQef-$}#eJIa8~peW!SPM}Iy1SRx?aro
z|EOL5O}(6QcqW0V2Twx}@B`L~BTu7W=J=TX@Js?z52hYGVLfo2!8qI0-#PES9Kh3#
zO*{64?bx(aPsC2e|6u*V^_Q~#!1qs9%Detj)*mR}h<|UyI}=||9NoBPu1Bwohi=s0
zsJ{_k--yQ=UpJm>eBF3(iLX<?>k-DIUC$`-Y~tq&@$3zLgCDs~`b5U%#P5mU6Te@$
zKOUSBAH)~&L3|M(#24{Fd=VeS7x6)S5g!`(vSR<m7x6)S5igdBALnVG`aTHf0Y!g*
zXW6}f(O>vQf8iJXg<tfS_1U7o@QeP!FZv9BMc-Zj-NNtVZpQWJJnC|Q%z50-PH0!|
z`n%*`ny+Dgp80~|=Xz-R$91{nD|Wtd*OCv9|7*Ua{&OSWQvca}+u=XQkIlY-v_IGT
z@1^fYi+q>xb3HWg7k>Zkez!6|5-0GVm(E|fp7u=oeEV4Db&1cUpC>(vJ(>FVeEmCH
zxy1g*-hm&<>l^P6-~B(yH!QgDg2$)0koFdQ0Urv!^!*^&cQ)`P?RUQj_+Z}iz?YPF
zKa1tr4<o+3sQl;nDds;%jt5ixhEX5;ZS)_^r!M{j`Pd7%P~Io}Q1%-c-#4FpH9k*&
z8Q(Xby;&Z8NZcjzi9U_r#^=#T<1f+UlsEq3{-(|Nh~ovm^EGkW`JV9?=ZnK%j6HI`
z8Gkb4iTSGjYV6T?f6I4!mU*=P@+g<*O?sa54E&CU-!k>!mU$6z)P`L?RDNY&!o_l)
zdN}RNY4)r0Xvf3s*Bkpa_^X{L_^toJZ|^VlGGEC4r99X38jAnJe5Ck49Y<ca|C9Eg
zDs`R1dH<pBRrbAIEH~=oq0gJ;Z<#Mld$`j-?Tq7L>eDUy1pYSd{M5IdzMY#st<JZI
zD;@g28}Tdm*&kZ}EPu=Rp5yoC@yj}Gb39D>-6%itS3h8m&+{Ii8{@@uz7Fnx^0qvO
z<>30~_`Y#`Px;<FevMaTJ#fnHX1NXdh`+{(=J-7C@#(ta#d6g5_4~D+13C0?>e*4{
zKIM8x`^S3eI`bRvrHA5g$(xwt`d;!pwQ*bWR{Rdhf&E{;U+X!J2iAXT@}BLzqg{VV
zdSRaC%#Xik|A4>d<xPFRr#xSh-XE)9R{f77<45^^E$93m>pdQ=9_5$*C%>e`3E`J@
zDApwx<BaedeDh0;%anPe^KR^dc2&FED8EwPeDn?eN<Mqz_j1c`@3%gmw^83{FYoba
zdKEo-;&ibe$@_k&{LEkX{P)Iwi;^$@#N~FITuL63>(V_>Hv1HgzV2{G`IWr;WBUj0
zi}X7qcWmcv@_sCS@!w|t$yxjBkELf%^|=FgGmejhAL51hQ1B)Du|mZc_Io{5d5(60
z7ve*~my6|U+=YrSNA?RwJKYy{Wc<j!`SH9D`g=y-9-I39X%Fjw1!v(8KQ8zY+UqO(
z^Wd+xqx&b>mlqm2mi&0j<DZoF!yoO>`?D^(;AiQ-H295qss2})x8gr(m-N3j>M#Bm
z{)PUR{>+Nsq5q=)rT?P;m3}&RYCn{HtI?->Qt_e%7g7)VZ_9pP_~ZLg!4dK0$ot+7
z?RW8_1sC%E;tTjt@Fo0E-q&^M_%-7_#D&N)?MYmzQ~Sg3N2NbUKi?G>`gf#O{gPkZ
z<H|ViCFjEY%AVhHy|-WcobzU4mqUj<*moNH{Ib{o^4!s`{yy%fYQcxZy+ZT;*l+Qr
z-~;$k@Bx0o2k=FF5MNgCp<(~UhXua)u)-G~id_RA8u%hUh%e%U_)_pB<LcZga!g!F
zeZKc^@Ireu>`vsXJp(_qhsA%1Jq;CKu-Er~pR`jdE`*PLa^FL-Q^AFlcYcfgFL~DR
z%RZjqL$ANsC*w-pJ`Fo`Pkb2uXK*1j&!>O$eZkQ$z5mAVuXg<Cw9Iqf2VeA~fBA}^
z^KL@Ndf!(lpZ@!DzaE<QhoAm>kMi_i`_i6Y`tRM&k6#j+`oBnd`S0xc4SXrzN0<M3
z%8MUw@A>Bax6keQuD`U;?)l<N`93=M(B9gY555c>d2`Pn*Sq}0Y4K&?bL5R(+`wn?
zMSK=t#OH!H)GuC%&*Gi<yn>hF^9Emh9^)?ZxP}%vIIgcLcU%49#qb|epZF5H-}wb!
z;1Bzh`@x5TFX4w`pVkZX4}OF1`9Z;l*rm`RC-DLMQ~U?`<@@H^C-FhP_@Mm(9}2#7
zzoCU{f5Zp*@gHKBLZc7ChxBLo!G+M=&-}M_e2Bb@eG(tEPr-*y3%&;*BG=Hg=dSpW
z`@8&yoF_iC%fBw4;6wVe-GUG8(|!DQTJYghogevw5ABUTU%S{ox#x=y?e#ss;6vN<
z#fSFOueHm+ynpQb)z$0&pZB5t)@S>h?V<fc?y3K-wBv{J(ViFifCtJ)JXs>2v<v@Z
zg|Gjy!EfRV{<85P@wf$7dV30<Uo2OB*!dgv7kptp5qwF%I3ICeU761;JfHdtzWnC?
z{sz7{A2U9+S{{7a<Of&MpPu&zzIfiB{>N(hjxU?n^SpDR*>4H{mVNy2%Q-Q@-!7Ns
zxA*!m{D<H${OIYVKiZA^DUT_SONBTWdo$l-j_+p@c%UBWr+E(YL+hR8rk$O3_Tl4l
zj-NSxPGbBJ$1CULKM<Fu{!jfs3H_h?ec4TOyw34@jPaW9sFd}GZ!9}KTfrT_pW^yM
z`F;xP4}L#of$#TI5?@ao-MD71XIzwcDDm%wxM+#5!#BQeJlFVoi3bz^UWf;m_&R*!
z>l^WG<Lk!58}~2#j@%}lcI6m$W$Mw?qm$61e5VV15MRUx@kM+PU&Mz7zBKSbd=VeS
z7x6)S5g!`(B0g;3gLtvRpX2>Z#(UON@v}1jN<X{4TIOG_k21boUv+#n$~(S{n>)Tr
zT!itJd2imw@ztFFQohW8!|&sw%zu$*o;&H8jGNiNJAd)mdR_9*%||4^(|pE}cbGiW
z(Da-6A>`waeFeE6ej|UxeE*R@lJe%;Ca<LP&F3BKhVjGATh8@f-hI@=zyICks-Hsh
zJj#0xRPpb{3H<k*W4mzu*m`kp^*PTnPI7MVJKtyG-%Ifm#Ru?X;6v;)eD@~>UkWay
z{0pMuLdMU)hdlQdd`NzB=)i}RCqH=wACjLOTnJ5j%KjH{!2INb6XYlBf0&=F|6zV|
z>;6aljP;`9VBYsw6u)7}gZ(i259T`;|AF?33*~(h*9awF+xUj^G`?ZJxbY49v&1*Z
zS2w;9eTuw{Z#4AL_(t?N<x6~n@nC$zaaH0Q%-6(e=X=fg2=hhbG47u-o-_7+c0JW!
zjXfIgAAdA@-R)WC(fZ4yT<)Lr5|++RF6eQ??>M{nJ+dCJ#IedgmII$>T*`ftvw!A%
z`O+{QsAmt>Bj?eMhsSEyi99#>tNhD#{SW0%{Hpjb@QeS#e5Cj>@UM$+mAKZ4^n>z$
zS-+ikIqyHT9cA5veUOLNKg&=2IRt;SQ}M^AUfofzz=0-CO#6GDep~ugzn-|#q2p*X
ze#JicL+hXA?>NrW-;?ggGwZZ%`X77w+@deyZ;2b;Qhtu#(;mMiZhUP2fV?fwNtya{
z+WK?q{b!t`tQ$`IcQc-dzs8xS{BD-tiOZ*~OCA|N%nNQGEN3mxQ@5wDT>H)QB(LR_
zlgB;nnfPno!<657&kr}_S4WO7t@<CHvv^N^o%(p*`uMW@*Y(np_c-<Q=J_7@+gzuf
z^1E4nr!F7!Dm~}@!1vq456<Cz+4kb-&l7(mFV+!Do&x;UxI62TuIn0iE^&L}3dUv1
zywQ0#c0s$U-EEd957K;g^XturZ{)`>xBT{g>+^XV^^Lqu-y{7w>2vL%dQkGVA1Jqy
ze@?!7%Q^9(<ij6*oImhA9@>tQ$K<;7#d6snYv_^VMt5zudHY9?FS#%BSFYasuI+p3
z_m%ad8UMZ1>!;ptvwcVMW0@y3_ftI7?t&L(KNS42zb-fuTnT0W+>`Hr@WOo$1z&<6
zp~00-{eH)>-oNY%J92y}`{qY`zxu@RL;oxKjvsEE&p7W`M+$y~_WCxSW1dRshwh&Q
z-$NtEl3!2#4gaOIAO2{6-XH&E!OzlvY498VOYy(p7yk>pRQxaa#s9*;(Erk(S@Apc
zU-Z9<|3dln)45aqI`^GE^!>$)fe+D7@WcJO#eWHYga%ha*-!k?b|0&pcu~IZ1ipw5
z1z!?Z3JtDAo~%p9uNm(nE-0_Wl{$6*wcmHj{_D|icg2PGukd5lFX8)v<Gh!g3-c9l
zC)cmB&pB@<b~$v&gLzWy^RfKz@tpL}b@XlCtKTQSjPJuH?iHGPKfAA|;LB(BeDS5d
zwda@k*qeKP17F7X|I&W>pQ1eY;rIWHi<Ix@i65`;>({Q8@9lvvey?xfOS|PS^5^@3
zckcgD{z(47%dSs3c6)sA`^S%nKE>|mH~iS6@m%o*dspx!{LtV^=*3>Y#&Zspw>Xgc
zn7@iA&R+|@Fn=xhB0sp2=WAcY7y05#pPvpp5`0Ph*U^p-W4;hv2<_#{{6c)7|J#>)
z|8-jW|2_IwJ^s=aKl7u|;cvf7`QXbJ`}NSYKm5qy9m>=H<@@9EKi|uzUqgHS<$M+R
z<$M+Tx16s6znrgve^Sm@fnUy70YA$5D)7tsD&Wh8e>L!><4BnwfG?RJWZV~gq5g(l
z)PEcJ5`Dn`S}Cvpw!ts{8~%*`oBojgoBovk+eZDxe~Vt<LW>+6x3`o}e@Mr?H08mM
zVP87m`EIc<!G+XEJDqPA`*P98XDIf?`Tnpkd7e0d{Rlo}{u(;ulDJgr(|(ZmRPaT7
zz<#)HQRc7WgZ2Y_DD&5>TZCdi8ve(?oxE>wC3Yh;eDNjx;7Vxj$G!}F>HJ||a=-Y3
zeQ6zELQDSzU(#=(z5a537yNR5SMR^{Q#rrO{{5}4zj+_}uiy*(f-m%6!58=iU(!E$
zf6fm#zE$vr{ww$bzu*h~7kmj79}2!;zr`2rVgp~q2k}LGSizTu{T5%u2k}LG5MRUx
z@kP8?%-@Kf-IsQ|tbDZR%11m<KH^D{5BQ>d#24k$#24ftz7%-{SGv5ExA?MAe-mHO
zm*7kAM19f!DEbDzY}8-&<)QE5i{qt%FJ-)eFPrrTSE6s&6Y)iR(Sk3LzvVl=Y+ldv
z&V?pl4g2pte(}AW6NCL<zOl!jf$zZq_|elzPc*J{F5_XoN4xx+a+q>>CV?lW2l@&6
zQBSSCvpo~fragUnc4UsrS9DwwCn|BaCx&-ZPhU|zoqBi)n^XU%{y*jUQ`TY1`jP7|
zu0MQz+39y#e}Laye}KQhcl{;t^~BMQYvy{!+iKj?^#}MRz7F5`y764&>m?pc{CgoD
zT;l8SjjtQeHojis;l#feen)PTPJ8u~?bX!Jsh>yH&)^XFAijtX;*0pOfFI&RgWtdh
z@kM+PU&IITMSN)BO9KzY7x7}{{y8qsV_cT~cioRG`s;oQ^*8IXy?oJM_(gx=7yX4_
z^q2M7qQCIfXV-r>^_}t=PZ@VJu74imVcNAP(vRe4lza~OjeL;oA4>jVX!_T6xn@41
zaaZ#l;g@r{@Sn}M)PHW|+qUi>FP)mNo9p9!*sr#xe7~OkYPo;Y|E7F%euVvB;Ag+x
z%Jn>N(&vw>m3i5W?>}EoQ-7vh?&AlJ{JpG8h!@H0>->T*@CUwV_f!9iqT)iHgZ;h@
zA6oW<WWS;1*>6(tA^h0)(8!PdlH!B;&*Fsn&l~lZ{g?P3=0C^(7=DKN&ynMSRKFp1
z%6#Ug|3E&p{)73{1s5)s%i)mcEj@l8YCd-}zK=Y%#6{Ad@K^Zu#{%E}G`_Ds7=JOJ
z-uO$4KKAw+e<}N;jK5?&^zxfH3}2jfz7{_){o#DCQNQy={Z02r>90CpUGP`Od^huA
z_-W^)=Z&lCVevZ-w14NWKgOYoT|H2KtGM7k$^+{^_x_ph_hRjr^J2%tl>aUA*YC)9
z=DKn&{!4H?<?&Aj-go{Bi*FIvn*D!E|2ywu-hQb3Ht~afkcZYk%iq$!8IP0h{L!H|
z+By98ao?2RbLA%vh!azO=RH1)Ur*fV;Qn`A-E&yxxP0!oJXr2iu6L5F_AhbWDgQg#
zJ^X~RjxqJ`PWpH1dRF4bN5+r&{n|T@!#Um_XS`|urvGuTelU(?oaxl<<81%U_G=@4
zRo1l+v}^PGwKvOu>gVIiNBdXuQV!Jrv+rN?rOdOP^1BxvpPas!_j2U*?X&-W?HnJc
zJwC91<~^R=cz((H=s5-E#ZCD=?)>OQ%ip|8zcX_1^V!!@zC-nr_5I-Yp}p7T>$r}%
z8W&;R*0{TI`DS_IF3y{sR~Ng8-CW2A*Df^pjXV|e+0BE@eyJgU^5d6VemD5m=kqr1
zx4phk-d8z{_R{b3dbf+{fqB;tmXrD6<fD)M7}>u8|H03FD*b%1?B-=<ze4!gM{wkI
zhr7zJ<n14MeY@<R|LR^YcWvjBy^r|cTt7VT`PP%w!$-1v;<o!K9xAW0KS_KLU;6&K
z?29V+!v4F5w(Dh;6EDj5L4qH>-?Q#8X!yaGBgd5@ht2ra2gkMV**Bl(`JIn({gL#)
zeewD4Tm0~MxX(E67q0kOKMWo3_j$^j@Ba3lKm3=^_3NRL6aGv4Eam0<{aXB&_7>&k
zzq#i({Fn0mTKS)%yz|yK_I&M9`F^eb#q0a>`ZIpNR{zEC*AD-s-SU_InBT9x5>)(w
zA(scvC%}u~LdH|U7x6)S>ED;izTJW^e19s>c{GYY5nM=n3ciRB7t2+Dq#v?xqSIBr
zenW64<-rB_qmS=L<vUW!lkZ2RAI3guzaN$7O7k5k<62+geLWZE%X_}(#kBYK{59vr
ze5qd#?d>V^q<8y$oTHQedSO&tiM+1Cm*7h1XqWQ<@T25Oz%O}t;KzcWWqho`7hjC?
zC0>;Fm-rs|QsR5?OMDM}*@(Z1FDrcU#kkhMm-H9q^IqppiyX1r4}E{}V%V9;TYSM@
z6?}m|&Krq6==L&pvEYmLH0?N$792=>v_s%YWByw31%4A>v@gMzJYT-}g8lIOgd_eQ
zI}%*EO<p}dHTwVkZkIz-p8jtgSE6sF|AQ}~>M8g#`ajPLzGQyX>A;ce@Flnsn)>Wt
z{FtNrFP^VL|CaMr;Ft4N=>KxQ3jA`uO7x=3qnxh-znrgve^Sm@f!{n|rQ=8Z6#eL2
zANnM|f-kNEY8M;j#TW5ed@1-0-iXiQmG~^)iO(DL7kp+tO?-~rZllUUyL?;uYx(#S
zW4_w;ZP=HLNAUss5?sjhihU6uurHaf4+_6sbUT;!#LlF>*#BX7a)0=-E1@Zm{V(<f
zzWCz0c8QOO57>`_5Awwa?MM8NP6xi^{q;YvANhW5=B=UW&l1;){RpmvMxNp4`N5U^
zc77_p$Pd1R(tqQ-=>2->Klj;#{~Pvy^k46X6~5~zIkzkFD*lJ%>A!+6@C&}se+6IQ
z7kr_A3ckQE_(J~_e1SjkB{%~<h%e&9dJ8^?FXDsv(y-s+i})bEh!5h6_#nRMkBKkh
z#R{H8&+bcOmy3L`=gLPsP(Jz}%13-D@)2KnU-3oxH1I`v1y>@kjrt3|;IHe4*x#;y
z6nz0dHtH|_2l_6)sPBFs-SHy6Y}PNnWSquc2VeSc$Gdq~#a^(kzFB|#m#>5KdH$Ku
z?6)lV;68rrzvsk=@8uk_ZvTVhi}-gY^2~Ui^nvRTQxDqZ-;~3Y!!rp?J=p63en6Wz
zvX{@)mnn~D5}0~0^<e5j83(Ro8)uv2X3pC$4ac;f(|%6-S?uSuk9+$#)?rv*DC;lq
zo9i#GKM;2;>ksf(%DetD;_F#wpuF*Q<Dtgaji(x4Ux=rc_&WSX{M&f2@pa?L#@83(
z$tAuH-}MmV;S2HcmEUt*?8n8F$CSsMM|~uLGoMEWXT%5B_r(YCMSKun#0T+3d}!c{
z_#nQB58{jXAijtX4SW$Vwuv9->0e}i#khApbj-*4eH(FX=W~tq*v0uC{08515zUt@
z=UzEqW&ek9l(KJ~IKBH4vkn~lxTXH=12JC+d8XW?bDlBh8Mn_f#JhrT;AO$L@Plii
zeO!vy;@g(;xnKOl9~DnC&luyK@+;-V^DX@DcRL@@A7AiChd-a|p?M$tdFL}5eCI>1
zV=f&>7I0y_|FnnCoj<tG(7dE6zlj$UFK)++GET7H;)(v4_#!?8U&Mv-+#}mLaV5{w
zJ~!}1`y6};9rzGDxCI}AFL`cg+OtyL=cjz`FE~N@6&xw}1i#=@_b-w!8hpz0k4Etu
zQm_6{@gMMan*IZRnYd8iC;6_ODi8BzH|lpkMzcTI?_qzspGSRgKgmY@&HX6ov-^?C
zxNtv{<=GFl!7uy5oG+5!AA6AgZt#meVZYc${pSBS?3elf+OJ0bf9zN6mHGdp-AA@p
zv)-pQUs=)fm3jT_ubcbJI8@Va9yoqVTuNLxu>RS<H}~(9&n@yv93pziKCvmko8?z<
zy2~-RJmd%7yB_6y!T3^{Z_sZG^NkT-O25Ky;6&z23)e^cQ_rNkIFIWT+p+Dt>mJ9h
zfA;6DKc~LmZ10p$u~Qezl;<-E+;LpRkIVi3&h<&}r<W%qudFk7eKD?d=zF-X?(akE
zpXJX~FYjo-4(<Pyd2Bgn;w81?(D!((^7<Kze#VsFS<gqzb6Sq=A6TFM$kea1*00C1
zYj=IFaSqQRx@$eJ?0w?z#E(~MJevpGwD$+vck#&ekXLrx9Vpi+w<Gyo#=CP4>g=C8
z*+Jufu47C+J(8Y2QGFcyBzpUf9bYQ(uxs+Mrk<U*o;}t6b-mQ@C_L46Kb3YF|8t%D
zskC#p;|1B5?5_*H9XY<V;m??-d-DCN{36G9m)-nLoX&ahdH>=EzPB&Guuj#!yyrLh
zU)l4`lPKR?alh#M`|`>2PJ446|M+eBU)h)6$R}@{*K9ue_?}spXUS*(U|)Z;e!ge0
z>1X)8obWjZd%R!zb<%eE*X3aR&pfCH%kPWy?>qd?`1(@6{ss6a-cQADVn>rFyYzfn
z<2(<R`#t4W_SYTTKQJHIeH`~}@5_?QU7w@;uKOPDUF)0oy`Xv0iR;;u)r;V6<ZGU6
zuHTo67vh8X^7)P*q2kNir-d)ZZNvxhr3GI?gDagLJFXOc9N&3O{~j4Xf{){Q*~gdX
zJvMb;UfL5q?7!Wg*VO0i&x_uNrab%e3eL#y`k(Ldghr0~FYeDP-}7aEUh!Y#<G;8+
zPyfaJd43P9?9clu<Jo-|_%G`P_v62myeYm{Q`W`xUtIUVe<^V-{Fm~5p6Jn;Q{#Wx
zM=|vDq3`ebVmvm+R}&w^m(O+m2^C*Hi+(+{-A5`XUJQKb^{>H+{3dR+!EfP*c3eq6
zxh}2UZs5XddA=vK!7uy2|L&E%v(MW7-)UE&9Y4zR`5xkUet*t`_kU+!cxd`JdKCEw
zN7TdI|AJ`2g*-?7&;IS`eQ4UR{f}Rt`s5QIEBIi1jQ!h9e9`{@GUHJ`@v(vr;>!i~
zi7(oJ@kPG)V%$o6kq^H3{kEd_>4!6;EB=T3xgRVC@xpN_zA&B(zK9Qwug`S-3eEV+
zIC=~HJ61n_@|t=XU+s17b9^=UjIZ|7ueHm+v^(SL>gx6X@Ar!@r9SYbr9HjfcV4#$
zK6JaEb3sCfK7D$*YIEKP{Ah3P`T5>!XnSkV_k55RJ;?h9AEHO0(Yx@|o_;-kN9bt3
z`uyv(2mLSKV^{y<e`H=2n)WLn^<RGUKjp>GjElUleDOv3h%fTd{~|y2U-_Z`MSju$
z;7H_`_sR9VfABYa@kPG)BL0dm^1+va&-yRoGkB%{R{SCH8N6IC_WD`;G5ABzBd=?y
z>q^Vt+dt>7^_2S@Um2%q2ji<{JcsZ2!X6ZSd5d;CzG9C;8DC9%=J@&)^)tTO8=aqV
z6`J?apKyG|ugLw5FZqry?SIBs>XYyIa$Uml6@DnVS^SU4BhT-+(jv#u&c7C4Vi!YG
zU-~iSwSVe^eDo>jPlXnJjD3tAhvxZtzqC*NmmmG_dS2dN{rCOF7vE3)myiCB_fGrO
z|Ga<r=zqZn^<R8Y|F!?>zkKz-+yCLussG}G`mg<0|K*D>+JEsyzWAd37hmKrdwaBA
z@Ed-EU%sae-V}SDe!q<dKfbYVkLS6W4^hs8qkQ5VY1an7_4#V}?YDXU-`W2*AEd-X
zD8Ep?<fFhhpT&5R`7k9O^*gi|{Mg_(`0aQ1<z4?M>$c#F>l*qW8}%FCYQM+xgBx9c
z7Wl@uR`}w}2ES=vzsd8v{am;{^yN0aJ{5lYQG5{p#RvJ~1N}GFPl5yTPeop{o$c~(
z%3;dknFOXDOg(s+dVrrG&QE>((bUJ6sgKkCO?{jCb~^I_;z-30oa1?p=Q*BFXFSjG
zI>+lHj@Pjc<NAZ^FRnkhzT*0WeAgdbUvd3G{;w@pdeYY!%KA&cKKv)wUtE81eZ}<$
z`K&LDb(cPV%lfwKFRVALtgn>yZTPNdxIVvLbos=dxc<U=itF=3ZYe+MmA*|mOgTK0
zz|@2D)PvxR_#l3W5Awwa@T1@Z{IWg`eiVFwU+@9^DEI)si4WjM!3+3ve4Izz((?gE
zzrMZf#=qy#wB+}6JGp#)e}CEkCZF|N&uMo5TRHci_1ki;v-v&0N&B*{+uL8xWixL7
z_bH#aOrJ*|?OcV4J3GA_`Z(qCYRRQB-rQgCdgotB<=X!zk16zL`t-G{GF`7$@}b85
zg3e#$=lRh~`Je3V>->_>^~RpRn(y_g&j0ikHJ_~H^IHDRt8&SI4ju3RR<A$r|6BXt
z?oU|cf0p~h{~XsNpGn*0pK>71(!?3>pTD0k$0?U7muC{_dSL$OYCb9Xo#v~S{Lx<C
zywN=GMbUx_{r%Q&F1!8~A2#?c_z>FhA??01K76J>H?+6s&iIgV3QiP1<XHYk{0#k%
zwBtZp{Dxki*H`U2{>TEq_%rbJhjOk$sOSHceY3>p%f2Y%^T~UUyb_<!`<kEr!CpVj
ze{aNJ%zrQYovnY_*FX02_x2cnG5_88i}~**{$l?71<(K6``;^k^WTlXES4ueQ}W-5
z$C&><)(aB%N#1n&Z_;-8cjj`~V(<HVp8fuSWA`Wf2sZ3?@bkfx`U*}Q`+a78uf({2
zus)(6W!>6+G~9oz=blSF#qa3y(vQ&pDErU!U)UdJe9Qf3#<$#mW_+vcKTCW|zhd_P
z&Gv+K3g_*I>bZV`e#D{m&+<RIxqqkr-z*>3ttWomEHCtF!|s>36!*{ZdS>I5b!_eZ
zq5WO(h&a=s_0RHWrjIY#-juxCxexzd_|aJBD8FBFe@=VwlI_8J%U)lIHyzp^8}*I#
zhpAV4xlegKjy%k}o%nIDe$e00A34;1%<?Z85AJJ+zP#-8WjnTiz`A@{r@n7{=l#3>
zn&a!R@#VR`^Zb_k$#cd3xNbdU>goODdNT6LK8bFZkG;O_zLS#2H1S~K!7~XwmLB~2
zvX{T-cs^FUPUN{8_~APFqxI{F$nWIk)A!fqJ&wJ;UG_Da=X&D(Y+h*OIPydDe&&ZJ
zZ?yA0AKAR1ay~NazJ8y@xW4BjH{v$VyPcPpbFr|y<J^<H5B%o&C)p>S`#ImFoF@<8
z@4a~c_)bjZ&+}|g&Oh-z(w~!FGk+#es<EE_V7ZZ3>;8%C$5{J)Yxc*bzfYXHZtS}B
zSQkiqhjoGn%l*D`d!PB&k>gkHTiM*FaNqVmwfotZ(AanI()#hK$z`@@@7J8EJj|mt
z&-S7EFJ2UU0AH4lAA<&0a^H#Ji+It%hn3%1cNjGMjxWcKD~*2r>K;FizP?Srm3?xL
zJgzqFe{au2_qXL-q0q>=?9T&d%Kp6Yvo9|+^1^@dJ@j8z-xL33fnWR=_{D$0zbgI<
z{Dyy0{4e;$|H7Xr{ulh>f8oy*{|kQczwoDCRlmi37Vg7{{@<617r}+pvtd`7zk?fn
zyks65TKt#H<1@Y<o5ud9{mkpd7x6)SS$g@<jrtq)H{>BMEbz0g9op`?|2q4u?--ZL
zK5F%$;g_skAEGB4_A}R`PsKiW{fS);9rttoX-oYVdpynkFO257>TB>L`qS-q;$op`
zSHTDHrQienCO&{K#_0;ah!4ic*jG{T1%AO7@}d%N%KI0506z*oz%Td!euxhxJ_eqQ
zcG<6I_S=1U?$djy9EyDaA7UR;e{f;^_I~VL17Bhf2krdC$C~Aj)Q{po+F#^|y%(o9
z?EjYikiDHNeB+G4mGOMzkd!x1LVVd$zORoBT)9PVBR=)Pl^u@15t{Zr_<WAw%tO!T
z2yS$mb2ygN8+qrxTo29rgEJdAQ2ZD8<$R9LkKYm+c@_DCFAMlBzBKp^{22X~_lIBl
z4}2-|gWr@N_)_Ete^q|nKM9U3@N+%#Yw#QRv4NjuJq5n&F9n~$pMuZeO~GgQO?+mZ
zzxZ$Pi~lAb^LxlG`hFe#Ci5-q)}8CIe(b;aAik{Fckv~-koIiUU+@8Z$$ULD{!8jx
zweOS{CpP#k<s-k)E*J4Zd=VeS7x6)SY2btSvSB}#;6rbp_DOt+eF`1;l76Rt_YuWD
zC0{&r$e;3S$E`dsH1}`heKg89*7frIls9g>cKa6Ez=tLLe!bv>^5=Xe`)}YwaKQ4p
z9{u6{#D^8W_@MlZZx#7r|COKq$B<j}0s9~MMgGPA5MPL26?}mod<hjF7VtxSXz;~{
zf-m61D!yR<3%<ZF_=5c}_yWJ+3wTiQ1%APo^y58g?4svLjd^^p@4@F2rak{)k6Yrw
z0$)5?;V<CH2EV~?-{Se;*8;!b8~lQA@C&~EL!KY}>GF9KzWBDl7vKIN{DE)jKlmH=
z>p#L@;cxJ@kN+2bqkQ|2_s9Od2|xC6;d<=RxzMfaLBR*~qu>Mlf)DUp$A{p6{eLd<
zobPc>-c;=Hr0w!=%3;dknFOXD+)oei6PzbZc~1L#sZeuV-EUk?c};melfaqlfpH}L
z$a8=H`F;~0FAd$9kMpVLQ_o+Do+r-8`oczh(e>%X7l)p*KD}5TeuH1uA6Oq5`A>Zv
zp{&2KzEIX*;5X_wA8TWMq~vqKHy^C5zqtNjdGgW9`V0KB{=#~DS$~0F)?cPQy&P^s
zpQk*gJf2Bl>cLs-!InG+@S)%f>(2#W;1_(s{ug|Kzutlm1z*62W_j#?!58=iUs&%K
JUp^Wq{~v9P1-t+N

delta 112
zcmZ4dn12!<WAjEvG1kcitXvac$WFFnjh-yW$hLVgt1@H2lu1mCjFY%{7^X~O1TusT
zfDA4c#!0+-Kn6FE!3SdS02w@5Kn5?6!3|>Yfz<E=8A1lklNgy8mL;aA=9Lsr006E2
B9a;bY

-- 
GitLab