From f888285a40556256eaa11fd01f0fc6d88ec5a026 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Mon, 29 Mar 2021 15:02:09 -0400 Subject: [PATCH] FIX: size and color rendering for Path3DCollection This fixes #19787 This modifies the way we manage internal depth sorting of elements in the 3D collections. We need to both preserve the original order (so we can keep the position, size, colour, ... in sync), but present each of them to the 2D rendering code in depth order (back to front). In some cases we can handle this by sorting the values in the getter methods and in others we have to keep a cache of both the sorted (the names used by the 2D code) and unsorted (post-fixed with 3d) data. It does not appear that Line3DCollection does any of the z-sorting that the other collections do. While definitely a limitation and produces MC Escher effects, this is out of scope of the current work. The z-sorting on Poly3DCollection is significantly more sophisticated than the sorting on Path3DCollection and Patch3DCollection so it is handled differently. Co-authored-by: Elliott Sales de Andrade --- lib/mpl_toolkits/mplot3d/art3d.py | 253 +++++++----------- .../test_mplot3d/scatter_spiral.png | Bin 0 -> 99724 bytes lib/mpl_toolkits/tests/test_mplot3d.py | 13 + 3 files changed, 117 insertions(+), 149 deletions(-) create mode 100644 lib/mpl_toolkits/tests/baseline_images/test_mplot3d/scatter_spiral.png diff --git a/lib/mpl_toolkits/mplot3d/art3d.py b/lib/mpl_toolkits/mplot3d/art3d.py index 8a169cbe7dbb..4326b74260cb 100644 --- a/lib/mpl_toolkits/mplot3d/art3d.py +++ b/lib/mpl_toolkits/mplot3d/art3d.py @@ -302,8 +302,6 @@ def do_3d_projection(self, renderer=None): """ Project the points according to renderer matrix. """ - # see _update_scalarmappable docstring for why this must be here - _update_scalarmappable(self) xyslist = [proj3d.proj_trans_points(points, self.axes.M) for points in self._segments3d] segments_2d = [np.column_stack([xs, ys]) for xs, ys, zs in xyslist] @@ -448,16 +446,6 @@ def set_depthshade(self, depthshade): self._depthshade = depthshade self.stale = True - def set_facecolor(self, c): - # docstring inherited - super().set_facecolor(c) - self._facecolor3d = self.get_facecolor() - - def set_edgecolor(self, c): - # docstring inherited - super().set_edgecolor(c) - self._edgecolor3d = self.get_edgecolor() - def set_sort_zpos(self, val): """Set the position to use for z-sorting.""" self._sort_zpos = val @@ -474,27 +462,15 @@ def set_3d_properties(self, zs, zdir): xs = [] ys = [] self._offsets3d = juggle_axes(xs, ys, np.atleast_1d(zs), zdir) - self._facecolor3d = self.get_facecolor() - self._edgecolor3d = self.get_edgecolor() + self._vzs = None self.stale = True @_api.delete_parameter('3.4', 'renderer') def do_3d_projection(self, renderer=None): - # see _update_scalarmappable docstring for why this must be here - _update_scalarmappable(self) xs, ys, zs = self._offsets3d vxs, vys, vzs, vis = proj3d.proj_transform_clip(xs, ys, zs, self.axes.M) - - fcs = (_zalpha(self._facecolor3d, vzs) if self._depthshade else - self._facecolor3d) - fcs = mcolors.to_rgba_array(fcs, self._alpha) - super().set_facecolor(fcs) - - ecs = (_zalpha(self._edgecolor3d, vzs) if self._depthshade else - self._edgecolor3d) - ecs = mcolors.to_rgba_array(ecs, self._alpha) - super().set_edgecolor(ecs) + self._vzs = vzs super().set_offsets(np.column_stack([vxs, vys])) if vzs.size > 0: @@ -502,6 +478,27 @@ def do_3d_projection(self, renderer=None): else: return np.nan + def _maybe_depth_shade_and_sort_colors(self, color_array): + color_array = ( + _zalpha(color_array, self._vzs) + if self._vzs is not None and self._depthshade + else color_array + ) + if len(color_array) > 1: + color_array = color_array[self._z_markers_idx] + return mcolors.to_rgba_array(color_array, self._alpha) + + def get_facecolor(self): + return self._maybe_depth_shade_and_sort_colors(super().get_facecolor()) + + def get_edgecolor(self): + # We need this check here to make sure we do not double-apply the depth + # based alpha shading when the edge color is "face" which means the + # edge colour should be identical to the face colour. + if cbook._str_equal(self._edgecolors, 'face'): + return self.get_facecolor() + return self._maybe_depth_shade_and_sort_colors(super().get_edgecolor()) + class Path3DCollection(PathCollection): """ @@ -525,9 +522,14 @@ def __init__(self, *args, zs=0, zdir='z', depthshade=True, **kwargs): This is typically desired in scatter plots. """ self._depthshade = depthshade + self._in_draw = False super().__init__(*args, **kwargs) self.set_3d_properties(zs, zdir) + def draw(self, renderer): + with cbook._setattr_cm(self, _in_draw=True): + super().draw(renderer) + def set_sort_zpos(self, val): """Set the position to use for z-sorting.""" self._sort_zpos = val @@ -544,12 +546,37 @@ def set_3d_properties(self, zs, zdir): xs = [] ys = [] self._offsets3d = juggle_axes(xs, ys, np.atleast_1d(zs), zdir) - self._facecolor3d = self.get_facecolor() - self._edgecolor3d = self.get_edgecolor() - self._sizes3d = self.get_sizes() - self._linewidth3d = self.get_linewidth() + # In the base draw methods we access the attributes directly which + # means we can not resolve the shuffling in the getter methods like + # we do for the edge and face colors. + # + # This means we need to carry around a cache of the unsorted sizes and + # widths (postfixed with 3d) and in `do_3d_projection` set the + # depth-sorted version of that data into the private state used by the + # base collection class in its draw method. + # + # grab the current sizes and linewidths to preserve them + self._sizes3d = self._sizes + self._linewidths3d = self._linewidths + xs, ys, zs = self._offsets3d + + # Sort the points based on z coordinates + # Performance optimization: Create a sorted index array and reorder + # points and point properties according to the index array + self._z_markers_idx = slice(-1) + self._vzs = None self.stale = True + def set_sizes(self, sizes, dpi=72.0): + super().set_sizes(sizes, dpi) + if not self._in_draw: + self._sizes3d = sizes + + def set_linewidth(self, lw): + super().set_linewidth(lw) + if not self._in_draw: + self._linewidth3d = lw + def get_depthshade(self): return self._depthshade @@ -566,140 +593,57 @@ def set_depthshade(self, depthshade): self._depthshade = depthshade self.stale = True - def set_facecolor(self, c): - # docstring inherited - super().set_facecolor(c) - self._facecolor3d = self.get_facecolor() - - def set_edgecolor(self, c): - # docstring inherited - super().set_edgecolor(c) - self._edgecolor3d = self.get_edgecolor() - - def set_sizes(self, sizes, dpi=72.0): - # docstring inherited - super().set_sizes(sizes, dpi=dpi) - self._sizes3d = self.get_sizes() - - def set_linewidth(self, lw): - # docstring inherited - super().set_linewidth(lw) - self._linewidth3d = self.get_linewidth() - @_api.delete_parameter('3.4', 'renderer') def do_3d_projection(self, renderer=None): - # see _update_scalarmappable docstring for why this must be here - _update_scalarmappable(self) xs, ys, zs = self._offsets3d vxs, vys, vzs, vis = proj3d.proj_transform_clip(xs, ys, zs, self.axes.M) - - fcs = (_zalpha(self._facecolor3d, vzs) if self._depthshade else - self._facecolor3d) - ecs = (_zalpha(self._edgecolor3d, vzs) if self._depthshade else - self._edgecolor3d) - sizes = self._sizes3d - lws = self._linewidth3d - # Sort the points based on z coordinates # Performance optimization: Create a sorted index array and reorder # points and point properties according to the index array - z_markers_idx = np.argsort(vzs)[::-1] + z_markers_idx = self._z_markers_idx = np.argsort(vzs)[::-1] + self._vzs = vzs + + # we have to special case the sizes because of code in collections.py + # as the draw method does + # self.set_sizes(self._sizes, self.figure.dpi) + # so we can not rely on doing the sorting on the way out via get_* + + if len(self._sizes3d) > 1: + self._sizes = self._sizes3d[z_markers_idx] + + if len(self._linewidths3d) > 1: + self._linewidths = self._linewidths3d[z_markers_idx] # Re-order items vzs = vzs[z_markers_idx] vxs = vxs[z_markers_idx] vys = vys[z_markers_idx] - if len(fcs) > 1: - fcs = fcs[z_markers_idx] - if len(ecs) > 1: - ecs = ecs[z_markers_idx] - if len(sizes) > 1: - sizes = sizes[z_markers_idx] - if len(lws) > 1: - lws = lws[z_markers_idx] - vps = np.column_stack((vxs, vys)) - - fcs = mcolors.to_rgba_array(fcs, self._alpha) - ecs = mcolors.to_rgba_array(ecs, self._alpha) - - super().set_edgecolor(ecs) - super().set_facecolor(fcs) - super().set_sizes(sizes) - super().set_linewidth(lws) - - PathCollection.set_offsets(self, vps) - return np.min(vzs) if vzs.size else np.nan + PathCollection.set_offsets(self, np.column_stack((vxs, vys))) + return np.min(vzs) if vzs.size else np.nan -def _update_scalarmappable(sm): - """ - Update a 3D ScalarMappable. - - With ScalarMappable objects if the data, colormap, or norm are - changed, we need to update the computed colors. This is handled - by the base class method update_scalarmappable. This method works - by detecting if work needs to be done, and if so stashing it on - the ``self._facecolors`` attribute. - - With 3D collections we internally sort the components so that - things that should be "in front" are rendered later to simulate - having a z-buffer (in addition to doing the projections). This is - handled in the ``do_3d_projection`` methods which are called from the - draw method of the 3D Axes. These methods: - - - do the projection from 3D -> 2D - - internally sort based on depth - - stash the results of the above in the 2D analogs of state - - return the z-depth of the whole artist - - the last step is so that we can, at the Axes level, sort the children by - depth. - - The base `draw` method of the 2D artists unconditionally calls - update_scalarmappable and rely on the method's internal caching logic to - lazily evaluate. - - These things together mean you can have the sequence of events: - - - we create the artist, do the color mapping and stash the results - in a 3D specific state. - - change something about the ScalarMappable that marks it as in - need of an update (`ScalarMappable.changed` and friends). - - We call do_3d_projection and shuffle the stashed colors into the - 2D version of face colors - - the draw method calls the update_scalarmappable method which - overwrites our shuffled colors - - we get a render that is wrong - - if we re-render (either with a second save or implicitly via - tight_layout / constrained_layout / bbox_inches='tight' (ex via - inline's defaults)) we again shuffle the 3D colors - - because the CM is not marked as changed update_scalarmappable is - a no-op and we get a correct looking render. - - This function is an internal helper to: - - - sort out if we need to do the color mapping at all (has data!) - - sort out if update_scalarmappable is going to be a no-op - - copy the data over from the 2D -> 3D version - - This must be called first thing in do_3d_projection to make sure that - the correct colors get shuffled. + def _maybe_depth_shade_and_sort_colors(self, color_array): + color_array = ( + _zalpha(color_array, self._vzs) + if self._vzs is not None and self._depthshade + else color_array + ) + if len(color_array) > 1: + color_array = color_array[self._z_markers_idx] + return mcolors.to_rgba_array(color_array, self._alpha) - Parameters - ---------- - sm : ScalarMappable - The ScalarMappable to update and stash the 3D data from + def get_facecolor(self): + return self._maybe_depth_shade_and_sort_colors(super().get_facecolor()) - """ - if sm._A is None: - return - sm.update_scalarmappable() - if sm._face_is_mapped: - sm._facecolor3d = sm._facecolors - elif sm._edge_is_mapped: # Should this be plain "if"? - sm._edgecolor3d = sm._edgecolors + def get_edgecolor(self): + # We need this check here to make sure we do not double-apply the depth + # based alpha shading when the edge color is "face" which means the + # edge colour should be identical to the face colour. + if cbook._str_equal(self._edgecolors, 'face'): + return self.get_facecolor() + return self._maybe_depth_shade_and_sort_colors(super().get_edgecolor()) def patch_collection_2d_to_3d(col, zs=0, zdir='z', depthshade=True): @@ -725,6 +669,7 @@ def patch_collection_2d_to_3d(col, zs=0, zdir='z', depthshade=True): elif isinstance(col, PatchCollection): col.__class__ = Patch3DCollection col._depthshade = depthshade + col._in_draw = False col.set_3d_properties(zs, zdir) @@ -839,9 +784,19 @@ def do_3d_projection(self, renderer=None): """ Perform the 3D projection for this object. """ - # see _update_scalarmappable docstring for why this must be here - _update_scalarmappable(self) - + if self._A is not None: + # force update of color mapping because we re-order them + # below. If we do not do this here, the 2D draw will call + # this, but we will never port the color mapped values back + # to the 3D versions. + # + # We hold the 3D versions in a fixed order (the order the user + # passed in) and sort the 2D version by view depth. + self.update_scalarmappable() + if self._face_is_mapped: + self._facecolor3d = self._facecolors + if self._edge_is_mapped: + self._edgecolor3d = self._edgecolors txs, tys, tzs = proj3d._proj_transform_vec(self._vec, self.axes.M) xyzlist = [(txs[sl], tys[sl], tzs[sl]) for sl in self._segslices] diff --git a/lib/mpl_toolkits/tests/baseline_images/test_mplot3d/scatter_spiral.png b/lib/mpl_toolkits/tests/baseline_images/test_mplot3d/scatter_spiral.png new file mode 100644 index 0000000000000000000000000000000000000000..134e75e170cc22fdf5b0c586f635293aabe87a07 GIT binary patch literal 99724 zcmeFYWl$XL^98yPJi#TnyNBQo!8JgFEEXJsFYXS(H4uV31QvIKJA|OY-C=Qe?(qKV z-tYJOziO%7VrTYwrlFzV(A5~=0(TLGNAP~B|oRm5U1n&<5!L6bo0sr9{U)%)V zw4J53oi*&uo!yKeW*}uFX9pX5XB#VHN>?+8la;;Qd-nJ2-0TkaPR?AseD7H-_}+1w zadVrPnVYeja&dCK<9z>~laWa@zFvhkNWTjNpi7K;wS@p;ad<0gkXJ_7fN1+ZOrdk4oybK zF;&f7JtobYz4m`oo4Xa3a-Ely9So`Zj0&t&jDfA+baMi)D3cGOu-7l2fLEI~J%~8e zh%nTM^!@*R`ac`|pCA1Hi-oJ2HV_a$tKK+w1LT0#45~Yii^zr`0DfIb=xFuoesc9<6lCbZs0+TdhC}V-l znzD5(4alxR1WVNY#NS(Vw5JE5-Zt&!P)7uF%xqw9-_{b29ZKB1K9V4HwgRhV+3OG- zx{?f6e^kImfNMLZDUedIg3mD`?1NJRalhFp(NIvUm{C(uVZ6tR*rWtV(}UEppCutmK~i3QKD&2CPAY<(zKFS6^eMBx zu+zR&Ofbdk3dYKt{H;2q2EU~SzgCI4<}f%5m~*%fLA;wY^T%Q9Bkys87cqWEe^Yx9 zJXNL1b2e&lsFAnMj~6@PR<$;)sHxtHT6-aO0S0CJs`RqNaM#P(H3b z&xZjHjkO|WSZGxL9T8&sa(S@_*~`9ZBFFe0K{j>*ufkpjcWd+k*D^|i3qtR9r$uJF zwR8IcDy|cC{^B_u0BIK|3|%YsY+PV60f5(H)MsAG#%#5Od6vcl6f@VBNK;lJ@7N_IoKay#qWWiX-C1exyT{ zKY0$e+@?YYRRw2%TS{2n&kDM`yZ0eT0_bk};)YcfBZ{fAI%i8qI(&h?nQyY%m*9=C z5bo4*6Lj3|{7f@$TiY=lez-zB90 zuDtJEVN&jrU93u$=m_ZKw-#PjVO~_D7jbC7M+JfA%q4ihcihiOH{R}f@V?nN+59h- z+uXbPo;lxmJU?DrH7uyM-kozN+bAQRj2~z|;!0xmzkBq}>g|;-*Kd(2n#@@_j;%-f zv9rM0Cai=w#u<~kgyHFpZGV7_*pU}Hx?_czJq@>uKL(dA(MZ{cO)YkpzSERY-zqtK z=vp!ZQ&LvOmLA{TNH&YU!@^(zJn8ojAmpM zkax4yP#`D*L2(sSn>R-d8l~ByVK-XYGXaES{^+^E^~-Ru%T@|)HkyP{agM;Fz)FAN zff`HLXRKa^r#kZKN=X#Vl&B4UUciCcX#ZR4OZ&2~;U~I7d9lBC*F|-bFtafqN~AR^ zMk-U6nftM?h~K?~RYav=pAm2zKmqg;bYimKC<>^?JV~rtx!u#rrTozLamU!QQH;Mj z>wc5qqk7W#<|oOdTln^A`-ECT{{t;WKy$Vhmh$3uS|I?X( z{DWd`TkJG;Ht01KL=J||3S$cv4#V1e(Esio6Y)d?uAnTY>=6jAY*=|WCPgO(Y$EUQ zme!2%Wzrn^?Z9+qeQVWW&DQ zj8ffV9X^O^+ZR%NDn)T2ihn@M(UK^FdqWi<3^tI`JdLE%#UEAv0e5}3-?9~nA4MPli)cbY558F$=Q)`6NkBcb z)AgBP7lZlkI@>4M-D9*e@yP?9>X&6*Xv`A|{xg$0GUaIC35H{ibl?pwkp(&SLzaYp z@?@p#XRg+0L}Pepzr-j_u3zl5s5%E#0;afqwlp@I`D7def+b=t_Fx#wB{n!+T%bM6 zV8_lmT~szm{P)%eS>d|hx|F1Le1w`P4ai+~+*w)UmaHjdkoPrL7$NBJ{2pq}I@}nj~E8?_;@N_YelYt3Aq_LZ^N?wiv-JpHcX-q<~nCGy*Wfdyui<+s4h<#$sj)+Lwey$~S)D6Ir<~iOxhWCo~Gu zyPFnrYTeb#y;bcIu-~!HegSbDR8m`5u~~>7aQM%Jmj0Kz2W38oANo0KW_IG<@G35Qj;1xzpFqML-F2CEN|g((2pC90?&fZ&^i*@r?wy)L0YB)c`` zps!HWJc^C5XVmY`aS(VWH}>JL8QGVDY7ej0Z$=%L1lz=Xi%Ly>fj`eJlN|l3LFH#V9HoC{Y4A0 z%n+bPR#r3q_@>{NZ1k3Smt5keUrqLaSQ4D?w0h79o$#0_R{nL(@dmFyI;9wj zG5N09>MF>xWI?Xgzc4EMl_%;C{u5Vl6m}`Wzk|`ZeYT{_tAGZN1PrubBSQF=hX2wu z#wg$-?h=PH3&)I^o8;oqSDsH4*ivG$F!W$XV_gO~WGFTKv#9zeN?sPOjF@Z*zKu?= z>)$cEhVYFadhC2(#ed(Mlz~Kx-^E$e?jNneXHSa{ob+dA`%jlzF3FJ2I(W>kdJvW$ zUJ!r7@YORG&yf|vpxfhehODxM7|84*u!VV{Loc3ci9aD;XFp2Z4EsBbZDKXYOp{@S z1XXB%uY{6o0uJuIv8u48Q43(o6D~q0BNhgxkXelmzzjC9Uee9mF^Sg4n05I>xKGWh z4bS$#ZmG5qrel1(;h_>kXzH4B35dC-aL{}1G>nYo$ivw(C=^Inb2iCJ^oqP`bFTi` zuY))XJ|h)qsWnFnbN1|YigjC`jX94syL|&Sir9pA`jBmVXrOR=UNm-F^WWTm=M8tg zc3*6Ll|5CO59i`OKl^G)+EPq^Tf~1FtCU!MNqSev(($Qd!CQ^j-oBF68V^ZJORLH2 zn*I3q`QKukBmTd|k~g&$`XqgkFC5dole7?^kfa6h#dR{cg&K^(VI5?PqPaWIUR}Eu z+S5#%?8CVW92zAqwSUJB>%)w@i65gs-9ylC*gXd z3U0E5PXbGVk%RfEI4R3^AAJ-nGP(W9wq=WXQ2e@g_=)s}jqHSW|M79X ziM{`{Su45Ud+`*edbhiVd0tl-o9B$QYfP7gHN3+Bvg3Ob42G%sbs8~V`1oB2yg0t* z3nzNL&iHZ%IPp8Apg2+#>tSLv<75+*Mn>V(MAsz#v?zWNbUUu-ekEZN8nADadf6)) z{C0>O8+nZZ>W015HfOiOx89x;JTWGBJ`^j*HTCtOJ3IsCo{YA6JScie2Ji-gC)W76 z{?m%O<$Ijp8*3?65Q-Oq=%zZ=&vHEB%*WN}{ zP?HmxT4G^_u*dkUdhCfV>D@T)6VVko2W{*Xy9)8*Bw|F#|CiSqy1v{UC!oslQdewS zkY|$Zgw$}hNwi#x;g;TOLvZ?=zsDT9RCqzGE{9;kxYQFXO26?tl5SX6v|{BLE^g42 zkR**V;;4$Q_#0_BSO%7YRO5Z!yzGc2ogLEAn~Wp0@sTy1knQ~P-e>-hx76Bt*3~nc zHf1DX&^#VOfbWOIn14yUUa6QSnZ1Q71wm#EV5D%4jMv7O|AZt#Hqsl0tAdf;OAB5k z=k~iordh>kHi!&kh&BT|Om%(g(&9U~{2PTz0LDRawoo%B%Ae2i3+IV^B?x^IO8xz7L8GSKGpz z*cm^*-n;f8jz(HLf9e98&>J3it7sI&?IC&7eIx8vX3{L8J7}3L5^8`td}|^4N#9bVR|6lnD)m z4RwRX{fY%SR1BotQ%M(&1s{nPZiiF)`6DhX2S-kwxt(3i{q->>xKl2lN0!u3CaUWr zxNahBFP5Qbtoa)qOdO-Bzm1=XuE{%7PZTo>2*5{!ApXHgdoyvL7y@NsdsbVa4Kr7t zwz{kFJ5focF9Oe4+QGZX+2uh$XrU-aXFe19V=S}P(hLvi)&H*J#wh~Z5YrJH#VaR7 zC}oDhVmT6v3ABlm zs8#TOdUV||?_x;@T4(emBOeOX%>GVd2}UILe6rnV@j1JN-`GeiRo&YGLn5RWB`0O$ zOlH@m4klNQ)=W&*?x??APdZwWI!7}xy@E9H zmW-Sgx2$9x&GyssU1&lD`Ck3#&?K7wLaMms|C%YI0V5lWtizt0k4pFB;Bi!6@rCDD z#=BW#_=TVJW46u*8`_Dqp05HBsa1dc!7ah(x*Bdgo64M_2??8D#M1dds4X=PZ?aLu zgwKE+D`o?i==&2(CqJE9-i~GY|(4ARY5*nA9n=(HJ!f4e=$`_f2two)Pb8^*vjg3hriABjB2- z!EBNc0VvYG!5zXkv~LxGkM!R(F1kk<8-sk3&ba3vSMvVxNS#p?lc3ZI^V`RhH;?5; z)wc)LFT*<$2TO$ubKTKMK}r#o;6GaF>rti zrjkR~43mK7(}8IHUj)ewo%aCY%* zK^Gznz4j8R7_ruXW~qijt~9iU@|W&$w`Z8tr}$G2to`?6Gss>DOPz-}!AF5{mIAUi zez=PIGW&>0qTOwI8}-5;rKa_%<(8#p+kG1sgprff`Ty3~f35+-E%zJe8(9iI0B)vV zaMZ%IV%fL*0}&X;pow^~foXZ~_YDv6z%~pHA+6Nuv``FD5l?P+l|d_>I?Uuy_=0ka zUlQ-zI>AzTha)K@1YTi=Z)s(_!fVnb@=g6Cz1jtpf>=kw+pEW)lRE|B)5DgJ#D~)@ za@H7DBRQ9D9|w1eH_^ZiV^S#9DAw@9p14$_M_xa5zQK2S-mXz-e=Ny=7N3u6p0k;- z;fZ}N>f0#i5&^gf%UkAo&(~}m z07u?OKiFNNzO==wp>(yz5Xt5llh~&dd_s-$i~RFi{V|Bc4)vzk6=)EfXY@*I8#hgA(Yk zULsWoF3>DhWBy)`kic*k%HBVI#y56lpa0z2Ut-KQiX-$)DD)I7=knG$7>6f2T@wL0 z?wI2d{L_%2iIg&n??Vv;89M~-n?AO&G6S}XH;W~rRe1m4gq+-v88W_t#?6s}SJ zy~=eU(w#mjOXSyV#{13lh5)(sK6hMH;0vdH!-pTN31r;vN7p`@n#qHvTuP%EuinWM z`b15jQ$}`3L`-ZCFRH;QO)-P*;~f1kM{jwksq=-S^PZ6upzv^3po=(&r>tKGnHTJ; zirlqvPRE?dazfRZm5Onm=2q34xfhA$4afBKfAAYbR)0iMS_XH9UJ>hEX*4(#ESjwiN!FtWFJ zwlor(d3|lTN5TST8zaY85GnZs@w@@mA`8~juB@1(!r<}q)3I3OFmD^ei>npcoMWD> zk-&WI%e!OActKyu#&@5Q!JU4H(5fxG^6y7W6PCG~g2{{p43enfQ)pFShCIWr8WozJ zZb~|7RHm=AU(v0dKzQ&u`o?vE+xS1D=|{|i=4S~D)U7_Uu&xW*<4UK5Cm_#4-c$`g zXcypxgQZIZf%Mhvmlbv0YU}mtwf6Lr4-A9kBf%ZIsMXSrt6PZcdSX0AeH2yeybzg6|MKiPM52wHt9+LsG#-EMnIo&L3qy3reM=;BsyAk8_W1z0r1t>KQFa%L_Ng?|DRg_HT#<|RDUoF@uQ#Y@Usc4K#Z;J zO2hYTwY?`nDlB)owfJ3fUvKmP5WOs{8om-rgj1*BS^34utV?q5TR|^kE~B}tE5Yaj zaYR1j`mB96+>D@NZnE4|rCM#zFnjiHKql>mFXoKL+XX>B?NHGh82aZwOUuN3Ev2mX zWi>bz)s2?#55G5k{9*iOiI}*e_U+B-JpR06*1Lv|V6DZ|hkoW9a+ll4x>5JBiu0xL znWlN2RfbFJqzqDghK8NX#tCzJjhvKV?^?$cDF(S!^?P!S)FDQ0G%5%EFognz=rCLb z&qq<~40^xW2Nt`f=HApZyp%02eHPO{Y>xCoO&gxyHM#THkNL_W741XUeJkcerBR}7 zK+`m4Tv=!OOOdB4A}+1N!mH4&kO6_d6V<9Aq$BW*j96+oIiLLDn+Ow7%%k#<8J z315Ifqq+&`K`?ld@`7Bu+Vk-rP?OU;lD}tURWi-mnun93irk&L*x1_ZDAaB8C$lCN z(>Qc1mH)z{L3 z?nTon!yBhOJBpylWx=+fPlS^bq7BWZ-qYaKw<8Pb!>VVRd$bJIpY5EJZ_ob?Tdvyp z9>24!ul;eM@F|^irdhEpj7-omD# z{pqEiQJn>bd@*-@&cK+?MM~&~3f}Ab1euZ*ftu{F?(jqM05**N-D}H2ie-e?GrrN3 zcfnFT@zqL%QV2$vqa$ii=Q#jiWqxrL%XR}sYs7X8TUAhX4qq0Xx+e`nL zeZFcGQ;YrF!y^9o*1MFFb-Bp$Bja%YCL4Sx4|H~CqR+?9P3zY4l9i(2C_ekg2r0W| z^ThTi*Qje4UuD7OLS3Hn=zv_B%A)Kmq9&KU`|Q>TI=)faMS7Tkx6>WZI)CBH@i^>S z2mCcBi8^g0Ze)943(}YwiIUeZHb8{UjCSfftbXp>S*jH1a&k{!B7@NgY?$F-e zcg@gNT>#-v+6|Us;L!VVSA75{TxQpxnB#DB>Kj^>0ZjQ$5f1+?92Z}`_6J*cZL(*a zymjtY`56r;Ws!}%X2zA1%c_v(#_tHz9{`s+YalZ`G+N#8IlxP{kz)GJ%&GEK~=z3z@ z(ii76==-qVAuEJhw|l|)qshJec6DOGfvL^~-%WQf<~ZXrd)EB9pet@kupAvNc#Q#@ z2zC-3lBV{yfXDOXn5V&g)i!irjU&Jc$}o8oVr-L{sAw)#Pn-jZOHM~G+}QA?-8VQ*;HT_gq~?eg9T*JN%u@c z?qdg0u}-1y8jDBekh+?IK^xl{jpmlm)AX&>TJz_O+yN1T8Lolo9b z0Jxc$IET8-Vz?>gdVG9Xa|Ohw>{81t?D7vz<*D|I1^c=6&d4&)d=^iTtw5xj*l>bt z96GQ^k}gy1fSzO?apPe$NiRzrb%*JJ%!mQw_-w)+$_7&oF*q4)L_E7ED3+aERF+7`PCCO+) zItU1cJCSNqhjQ9e9%*}sFGLPXPsU>BBVg)MEf1ppK8VFdh z;wpjEnq<{&3w{;obJ4G!JJ`)S?3653!0UpXAA~a{6A& zl5Ab42&+p1hD9|&-?q1BK*AJZ3H{it%Fz}v0jF~>EUC>u%_`w-JGNqfpB63k&DpYb z;%8kQkN1j&=hp~e$GP+Vh3StJjPC6r(}Q3B{H!^)tQ&ctU5|Y$wkB$8;G(KFlI->< zOoc$lpg1^qw%7OS=o02VBH)z2!%mD)9ObNiF^OeC2Enk)#e)xEVS~rd8`Jhe7$Ix; zNBoXoE8~EF{P#6^hg@%uU?(;Kjzn3ah?v{^0{mf#SF-b)>2LHGEONP}H5)JPeSp3> z&@Gd4i~^eGH9C+v)>NfX^ToBccFBBWy|sf0jgPTsF3Ur4qvqOZ`wtF>uWYOw+4n|DH4I@WuON9j2CjWzBR5 z6qo?Nn>az{pDy`O8yBy=sW#uQdPEtb*e4odI}*Rk>saldUrC36211u0tZuFjv|ac! z0#qJ3AIb;@yjJLrpYB%QvGx>RagJ2>|GUD`(p9WAp@^opXiDc$I{RuBI;a$$1zlOM ziT3D|#&Ap7qim6{m7#8&(+5y)5PXyzYky?em`ePh^Y_ZK*XO62y{y-d*4YVS(jVB2 zc;T917~J)7mJ=fWSJ;wql2mft6_O?tT%Q`&$qyS3$Q>dS>>s+ia52&l`xYo z_AWhH8^BV`=I5LwSN2@5gGjOqLBdMm5D&TZa@EcSmYSr{rrT zG0VLspl6<^Z+0Lxn`L=nKl@Lq0V#(I>g*>_bpOk2m2`aD(axa}uo+zettQ#D=Q9$t zn{15(`WyAjbr7|>=@=LQzqNsPtf~Dq?C?MNbtEm3sj5+^#u;ntwe|G!_1HB^K8edp z4RS@W3mo$?T0CnB^)>(NWBudFtY8C-ubX)n^NlHnedP|&2w}cIh9UrCKUS~B_>|w$F)||f?@7Ho_oau zvwh0nV^3vOu;BS!FEDMJACR@3?;!jyNcjUtS|3Bv)3T75=yIMAGFaEZMQ*5=Kn;ss z!jnJSIzc^{u!|mO8lEm3i-nQ-$ebWt1s2~UP>>+K{y0d8o9MxnNv~j+qc#gk2)u7# z@?2S|vJqafKM6ahaBSDL_`~AR##uGIw_3|HtU7I1NnC%^H`~PhiPYG0;e;ECha;=K zr*3!UpxBgI8!w52o~-W1-hTw$#v1@*KxZxbSSXl4F->#;dyru4Yn|xiBh;@5qG1!1 zr%)A~O7H&cg6Dam7s}j+Jst4xGn5DYAJs;4(t&Wef~B;Gjn(Agm9}Api4FnyL&XA} zA>$WatE>U!C$8(q?-z~%sefjZv5wZ`8n|e|YO&x4hexg2MDmrAw%e%>s}3zak%XWy zAIaF&->`c*kX#h>YmCnLu8@lhqFd z_ax~oDhEUfp->%CD*4*&^J(f0Fqi8$1WVL+;LwrSWXOF~QyMe5m++&skS%fz_9e(C zA8SX4cf&6JU-n2+!@X#4YtjK}avVywjlFGCjUh=#`j%SN>&3&06LsI@KlKGit=cFT zs{$vVd&2+Bl82d*@6(Gy8x=JR@fFxQ>TP}%FbfPTmiGB%6%^3TA7a2@E~NcADdF0M z@_$bU1c^N5#rdw7W`%TL>qv5~Xl{w#nxBh+bQI6f0#`Kqkf?QklK{W_A z!UQiw1f=?_Va2HTSIFOIqP7QXQ&vhHQg12B5ZS(;o!@b1t3&bje8m(G+VGMz;e@2V zlFj@ie)MQ~t6pIpv4yH|dwhQT{q=9i{)}S=j(YyaL?A8wM;}V4x<`=07-q7lNzTfq zjnTuZLqX>Z_GbpgxE|q;a12wMovMLYc&xE?#Ud#5KjjXE$yyf3#hDN^48s3qhtM3- zT%HAW8X++#LI%1CKV&qj{$m0~sH|%&(vcp@paihkvQm|h8I@PCkg-yoZh&;<`WAyq zW8!1vYl#ovM}3N-fsR|*P|?oWfYmZnQzcL=T^APjmZ)P)ybY-ieN>a|>p3qXq>i0dtu;Gx9*_dlpgHC>@%yNy zmvZ3#qe4|>rGHWa7<%<-L&=Ybg-$#7`9}ff_;i;XzsWrz>Ek<8XOk6w*DL^NV%}S3-8;OvG^WKg4sB(Lv)zs zl;0cDMf-jZXJ&y#$wD#gR~ggAYFt$QK_lxf`(>kSNYKg+!+Sc-JYEGB@hA*8;fMLF zCxfUa>HIiLC==Nlrz8ie8nLhS0S`eC(r{;A4s!sBTCB{});+F$uG&Mc2aV5xa^B`u z^L$-p2n(qJTY7fJMah0wj)4W8kZk8rB_TKecQUb0tE5NoNtfFzs8!7S9DAl;QJy%^ z*B$qu$a2L)bH=6Aq9|O7`SuZDw!$2?@`)qnjv{Wgtc!}?f{w8ZPt@m6X!u1Z4!4H+ z-$&1z1PoZxx0GDBtCGVFH_=w}4&X?Sp1rVNRh&M&=rvudfC_bD0;e3t#mjp&MXtK% z5BOz9AyE9sf7oT-Wry5b=^u2;PhyGbP>z4r6Obs=6yJ134?r2~k#g*r-)EMTqc0N1 zvQ`Mg1~9}CV#@XwE|_`k?WIr|lC5C;=uDrg27iw#rU3ts zxMEX0Lai>09gNfTPZ`39!+B}JdH3^n6$Sr{@Hs7-7O!D1MD7jY68{$g%Tw1|ycIIP zXp$wfr-i$n#Utp)s`I3bgXH@$@MMe+u^O`OymyOhe8uO{S61$KUp5E;+yBy?bx{_ywgX1OO#soCrawvW7cJ;NVQBy{2#=0);;V(pXb*~gKu`Efzy;Xkz*X1j9h z^C0{`DA*?YwNYWS6XZ5bSdHaD3?k#3jxpm#^ zhkW1Yg;pN4df5>s8!J(CtDybM%1BTfSfJaj&!8`vpaRdLM9`z$m7sB2XH&(VO@v5k zzMO9SXYS$Y*HZ-GTY(HRidHJWmOHNZ2H!`8&KF_O>imV;ykJc+nVfImb2m*rN}Ydd zy=M49!d?255$<+#UZ>i)U|3+fQ_L@Pzu)`P@!6&K0b(UT@uEbQ4FY-S5RZ#zkEuQV z99$vUx5U+JD*~c0|180`H?9bOmZriJ#@t7s>FM4JaU@MqFG+d=;{>z1%rtIrV3+=Q zgHdlbspt(hO4(m^h{6iY&B(Ld+3gWowl|>v^sZgxsZRD6LfbCfN%4$bp+BK&AW&vk z4OZ?q+-8TF=>)H>F$j_VlR25;4r=d+$JORqnqsRQ|0aUzE4J(>b?(lQ}~KLqM2X z6mE-Xs;&yAVWsD~x0lNLlcbFX-dlc8i@iSv)hT?B4^a0T`QX{Q#fHmK9BAW8sfN?} z!&MJV$zmv~MY`N2<)(~h)Vuv17+(2)+X_M7nRnIrV>6S?|2;EoPkAg3e#*lGUJ|!Y?L&+{-s9wbH zeJZn`#lDE>vGA(GJsjqp)vgkYiRTop=OWvA-4LPyQ+hU$%Pj{>yQygLd)Pl$XcC4Q zTWod4j-6jBk$qH66H`5h3QQTlLz}@8FClC+yh4(Gk!#KtYKIUwt62tS6CN%2`W=v} z)2i(DiYl@wUO-iv_0k7d&4lx78D|B8V~Yn44w@PHVHVvFj+AC-z`WX zyybtXH7Em6l~Y_0@|yXAV;4}K;Kydq*3{FpL4rZkaK0$G zHPP2iQ~Bp8zs>tg*Lf$a10-b0KEBG3JcBmoQ&$$N0X?)TB82CHV z+Aq8sYi{%_Uj!3185C8LubC|XuTKzahgCA|H4V29Cv@ztlXWnDUVQc!kNeK0QgdHZk<@;dwch%HNUV596J}yy}oPt+O9+lXz{3b zg}kz6T}yIt=5cb{6RmyPIK{f(i> zst)YjqCdog+)qXm4-}5cctEA->2Jp7f1;WTWJP~0rf5{e+kB4pku${q7>`&}&;en zyN9;aQXnIESR3;EZDMTECWnBi4v<28#qV&vKnlEx$}Zahek*L2?Gjzj3N>lrfDn)>tJ!(D7I8SlW^@M(z=$z_# zZ_WJ?JJAl`UITQI=ugt><($ASz#;_R##e{`nOdcjz(|h*e-|(cG5P*naNDovW`AbA zVVI*?8b2spcJ^N~1j@Wj1YA(Gi3RXjN%zCmBX_cY-E`T-v%mR?6V4%xG(jY(WZ_H# z7QpJ6SaFu<$Hnew3M?BipMI>BfIr)wV2IkmXX=&}fv?XzHa9MiEEk4T#R*gn|UTt80TV?H0 zUi-FbUN2kCesz|2s|t-Q-oe*9nQxduAccs==DK(Wrq}LEwsOssGCcK_2M|ltKbrb^ zGeLC@FLuMQ!>1dQO>^TIHV&To9~swGe1aBW=*<$I+Qq9L=_I8N&6-3@z7;b%3@BC? z_fp|q$qBhT>LVhLNbR_GsViA`1X_aEO^Z$4>K|3_5$Jz5?^1ax%2B1B_Qgp$P`_8P z%gT(XigEj65#t<%1yL+b)$Uz963fPQW14MZ`zIA3ZWSWA*34cGQ)eYe9m6fVnz?0d zjI2ZXSE|F6`lb#X{k2X3PnyFN)6~lMvO}R0YUVnziY6Hb6G`(D(D~4 z;hLby%>4U{Ggr^b4Tw{`+gAoxk=Zr5v^krQv#sWR@o2G!eIw89qGxI} z($fU`_c(#}n(v>M$qFt3kq{bIg|4knz7IyF$x4~w;i!}ue&C83;7OUq7B@^0{v<9j zF;%Fh*JcTdFP>A;^5*##4>>m&Aq@lmb2WK|it@>XRP<@rw1}lq`pMb@PRd&??c=Me zf}R>S?vw1f^|J}Ija$+RRn_c7s4faH->((a)79VEA0j@aq#Y+#M1jO~-<~pas75(f zgZq3VIt#y8cvL{*8x$;n7LQS58Fkg8E8gb~yLHV|Fc-U( zHsywe-fC96#YPE0SfO4btX_GSE24lYE{7Q~^|h|ZLAuY;7(UyPRroLP;8iQK!_qSx z%cEEajt8j@t!6YJ1mUIV!_%(zAG7nE{c!F032Ym_fr36;-j_gbc6^Wb+i=5hNx!IQ znm=vf*g?j#m}Zy^l?BeNEb95ql?%?909ZY|pzxAK2!TiLukBYj(^ zm_V!7=A8<(D4sfn+Bg^r^J&58MwUrOQK@GT_c4q(Mg$zI5r0attL0LnTT6O{XEXu zDMmR?p*0L1)~+~I2)=mdJ2Q6YdlP6|QT?f4kN(bNZKjvgn;laESIj(lMc_yoBC-~n zMrF?xFY=P!$!DCTfHHRS7h2oE^Vw74_dj&n*U;bXlr1C^xq~gYHMr@6@8` z5Wd@lo^SA|Bt?b^n%1PUkQoe(o&pn{^QejY5m|hFfEf$7L~ud%4sCXM9fL^^fdJKK%;ZKSWJBBZy#Nj|P^E?JJet@! z@9S9`nsqJs#l|s^p}B^d&njMfTSc?6)v92+D!I4B(&D19<4yQ_Xn_??*~08LH{`7^ z3d`$MR8hk8ZKymdJVRH~d=gnMhlSlwK%?h3R}Jlt1D}Pc5DL_r%WjTZj;klWo~LNp zLAIvhVHxbn3KLhyhWvEHr6nbDz-_w z)o{toe=4!O`4`og3=sUlb=iw<@SbLV_5IEC$3 zeT6FuTi%pBqOEvq&_(dmhIhEMqAgtzSw4s>qGT78GTLzRP-2@hl z*mlRlUq$>q@@mVE18D1b^alfu(J^^%JGW_BiW$oYmCy=J)pPS(1dFo`8*bvV^74ey zo!dUXHpf+x6`7Ty!!TNfHEn`_dZA@4PWJ0vGHGHho@oV|u}vjR1_Fl(J@1z6QtT>Z zD`s-Wm%mtBd z^q|cf&5w-czInYt=8@*3J0wLruD`cunneVI=qyI72}gJ8y~z|x^q(^~p>NvxPL+YG zey!$;?C5T|OqLD7ic*WY6B|R)^6$1e(?ST@=QfoIX{*-DsZ;SXTvj7Bmxvzb?Q${I z_jWmTeeoCqERk67TD?|cl597%K0%{`e5p~te$yBPcGhh|1Rza|#o)y~XG_3x6%|hB z+sZZzghG(R+NTR;2)1bT{Y~rq zld0=5J74~c6hZZCRb5XUGHdtxs9I?k--F{qt8N7C}lnp&4Ha0;|%cO87pGGM?oLn3(Mi%y_=-$q?3D!bCu57t8bbd{tN z3oX0q=}Q4V12W~#O0qCWfn<|99Q5>6mR&=CYn|ZpcKc(J;Xj2%RO9Wh__dm(?tzGe z!#j<2%bN@hM@3X7DV)tIWpq~bsD2(W@{N$ifHnJp8aDbf0Z|>jZI!%1$yV zhb235X(?w6jd5uvJT}#YWw^iAt`~E#>u#*hHL5kuXXuu-=?<=DK3Ydtz%#30Yt1k2 zFPYHTC020>5lbi{pazz0sktcL$ag@WUU@c;vJA3pLZL<~C=ylL`P!_I{VAp-bsHO- zF-vY>OtrcHuhf()bsXYYpx)_%dHv|27wd_VKLZ1bCt+TIw{m=c8R{tN#I{V)6p%*S zc&6W@B}jXove~GS>6KDXut{zKQiV8rcoHgF^#xtNDHdtG5IH8t^f&QG)l-I)YVf+- zC^sZgUVD&Syuhf#xEc{0=&lS^7Vlfs2<)QsIyS=~Ha3+lYwty?H5kfUH%@E*rB@9p zo?~?CsO?m6ID5wpa zrIwmc`a~#4j!3`gTA)U%^G~I4KdF$x(ev${jzyt@(dw`pTfV zx~^GVgS!L^?(Po39fG^NyAvR|y9b#N0)x8-4-69A-GaMI?#c7s?;kbAOi}FFYxU~Y z-RHRFaq!iz+v5(`rv5Cf#)A?r%{W88rhRWx3U4ZY+3;-DdWd9rjl<6J;NBRJJRYW{ zka3;y-#?)`4mi2bPteYFjOdc_C@|L#g&4gmzP-)fdxP200sl;fn4C%JxOJLLDTkn% z20g9}WKi{5JjM>zLRb-C7EFj&F#LsME)X#~Zp4mUj-_JGzIsJq`aO+sO4KV<1$@OL zj-f@6{0)O7jzUEvA)m_M>*mM|p`DLaqv5YlVEMru(IYP;@O#1wKII#S~0pGWc?LQ`xB_)OE11a_IT68IJMG zx*_m+Wdl$I;N#hXWT5US`+B zocMMkg^So~uAgq;fbE^Mn^MgRXyr5k=ExP9qiAxc{p`E_o}4^iv>ch4qWE`Q_59@T zrONQ~jo;o!=t^#rZr$>!|GIpUf2p*h4QY8)i68 zqkaednrzxv=maXY_Yuv%_~Dr$2)Gi{AF(ZBgneE%im`gy_uPc-W@2AhLNZ&7fIgaV z$GDRNbGEP90rL$k3{N-ADC!`QrAtQ-j@Ban_93H|%=;oOn}coge4=||!NKM(u#kX& z;PGZgHK$N0jDF#vH)G|dFFIq->MAjTPjs+Cna*aT$E!${K$~BkW&3??O?BoZ6=+j- z;k=eix-)O7i{sLm6hftd&HHjA;O>~`-lo)MDC2;H02u_d&vQ+mm?2a}khIBzXszW` z>fneeXZ4a~s#6ai+~Y1$2~y1oU&MFtt9GE7QUaO4b5O(c7gNcuE#G9Aa^V)OVqa(%I?$)T{ZYMluQoklS@c_oh4QtF-9Lduh-8xW*agU)P3*7{X`N+Jum zKiaAxv$MFGnwmfR@1#~R(%)splOKr3EWz6Tcd6JKWdS7$ZvVy|xexi*Y2@H~nGz}H z6bVOzZ`gf9*na7WYJyNHWpmg$nA1b*6QlJ#PmBoMY$YrXthzSM*WqEGtIH$4fT+c7Zw6xO8mp({U*GZQ^b?SQiK3E>s)s z+;s(fU&ak-nzlZj=fn=PP&@*&n&sC%Tr1{(&-A^&VWz93VP&h*fLLL?3y}imfZ+V! zF|#Q!Q^^*3jfl#5Eut7@Jb(O1L5J^h!uPF%sjb<)h$z5q6bg@;VPKP z9)_ffC5_f~Gy5~3Pqe6h-QMnBY9_`{Y=zS541)u%C zhig~U^SF-CuymDqVDCYaoxgXLG!Yn{6{iWu2s4fLhLh8GRvv@+nPRgvNwj3<-VUFx zwOO}3{gPiqn}~<&Zab7({(CwKGxy3EUp2b{i^lm4znHqzd-f#XhWs5&>R2?fuiE@C zNt^~KjtofK;pB=6@}foLCoQ>Omrp$oM$umQt=-JRq#3T-NdI}qSfdX70uZKe2yi9t zk|}-Y)lon^iB|6qZ@Xp>%X-z3Qa@I3hQ|PEQ1srlS&BYZa&47 zwL2F>qZSm&==h!FYB`|4c~P#&YULAo=$KNUw$wPOz*)fH*3j^UE{#Pww;@wX=t{P9 z^-Bcip;kh0np@3JgA9QmXIszlJj7_CPk%lrWT3Eg{A_x(QgJ2@ze^TB?zNlK&yi`F zOsZKot4fwq;6Un*O1me;2HV}i+DG>H5G`kZq)7v9-DCVUmC|r6(Js!P1Rz5`1=93u zcmZo=WuWh4oKoh{N!G?Qdja#gY|hj-iAb1H0Td9vRH?@FSdPkGn) zi+BCf?{$rRnB#IZQoJ!Q7JSar+#G|iSJ$5;{iWGWdXvohgT|&3qmq;3j-^ zJwJ1Pk|#Iu0@UeD1uR?Yhn~k#P6CJgLbzfM!O|b>ukOo(qw;S(mpkPcDzq5281W_w zMHESg0a&C~v+&Q<{eK3YP1nNP-=)mZ_x^{>&i^jOzhwhkIuMO?k$z5q^|pDLCsFe# zMl}Up2sqM~ZLtTw^#toPmCysCg&lsR>FZPpY@8o(34PeeejQOX+*t+$e`r|~R0+E7mUO$S}nJvmD;=_94>yz?*Sh%@`qK}s<_KHH~2ubj`_(~fE; zFKHagO#ME$`F3hx*y)?noww6~A-W^o)aj5UTnFy=;wk!As%PhQQA+rXv_vmv+m9`C zx#hy0?8c(7TuT1YvY@}kqr&I8)5H8rhDug2Val~IXLxMVbZ+p!L9J9>l}WPjAZ7C4 zFp@IEF;TMamwwH#=j8>&CkA0SQ>!7MWp{~H0XIg2S|QEDX;mtp6v4N4s$?%}mnH52 z)2{Q6UqsCI!Tr9UlX<)vgY!b(O(_zHM{jt`vuUhC!4LN));qCBVR%$f|dLAmolS=&i*gxW zr368b=wx07k%BXVfdVT&9kedm^5Qg=gFxy1udU~*`CRQ2t|CwRWwO5)yF#6xmfCz6 zqb;1PX4`H|b59bS&K1!>G%zKmBi!nEr3dgwWO={fo2 zFpzhT@)-XzLzUoLZOd{Idu1=lg}8fnjs`Z2FV&3}%ant?{dWzc&hv#vGWK{x3r+T= zo45s$C?g432vn8C^QmvzjgC%vnM8`NHP}-;9;%k;nBYKxZ$D21-Aba=%6aTK#GDw5&YF#?PRzu9rL*6IM2sa zuJ>=KGt-p6P6yoUp8kWOQ+%^?3l*wo-shE*7#B79AjkP*^CeGv3JK} z^Q&9{BANvkFfJVc+dPworQLoEv0b5!#|Z+_p+mP^iI!5P0sHWHo+v2JJLIQJ7W26e z@>QNc!r+mSsWC{_hUgv1&YrPDabs83(q{V``zRuQ;^8NznSHofsTdgZjIY0|5RI1WlE`Io-zVvCS#+iq?Nv5u3RU+kT|e%qR=Yd-1$pXw z3LgXVpP$(W$rVZ$*UwCW>^(AcNUiJw%?BPFs}8Mt-fEYIw$0g$d+2M^gAGpZ%^$@S z)D+11$1QBz*0#oUGtP~L`$Jw|5Ly=a_&+h7+NN-pHCcmZK1Abm2VA}@cfk7=3r_`l zaI{NM7%I($oFJu0BEi^U1qiUtn+Knd>tIU$etJP5Uu*C89Rley$Ey&otfaqH`{ zj?1DOuCNpdzBEnIKXZ*zVa~a8YXo`y0qx8=CpqJ$w6F+IiDB z!jP!P)2*%bZ_w5y)vxdy} zlP#=N?lMQsJTk(s>}Yil0evjj2j9Evu9^G-kvw=PAw#fyn9;XcxqN18eH&)aJtrnc zJ_2(LY9VvJwQc%qE<}CVqD_OsyXs0A_j=W(@ecx)dOqnBwJTrjcRya6;n7tvpMcRy zNLk)|?qdS4-{cNJFMZ#ye_5|&yX<#pX)|)6h_nisJ3UX)3$F=GAj2C?xA z@`sVTXMdZ391uYc9vs~={&CxiiISF>bOQ<;nUhy}1S&Xe>*a>@?4qI*f4!X($&GsY zYtGhfmhMMxo_>J{7d%D|u8imlYzV4 zLg;hGycXrk?sv6)8CzyM_I0;I7j*Xb@_we3|!Ss1M98kMKt5;C3CC%M)(wk+vV z%1(Iw`G_@w^>hqw3K-iJemf&!yUg;z2ly(}&g9bkOK)xE&&e6ySpX0A%vQ7~&C_+K zz}kP_Ou_K?D7VK7Cz|eK^lIsioLF4D- zpTB@g#u-bGhw^d;Ie6S*;sZX5(}?**Fjj>@xog9w|Ne2lB8|CuSz6xxJ3jlRDT1pQ z%7_qe2JCVU_mgM~v2uNLg3U@}zw5@i$<+04;`N^U(1tmb8fE2pQQF8|Y3tbYq@cJA z*Mj^EN*AjbFC`}D^Cbec!w9t~xRNB9QXWqn<&ASnOyB9!BQ2!VKz=?2*5lgl$)I>zy9Gdnl>poOkrgo(GO3+at{cr>Y`Q~&JEyUi0JXMit9A=4Zb z4mn83df0rUTF^OKHFVfq!p}^n2O)1~=O14j&GMh;=bKg6d&NvQu^8tP?)3R4+&UK- z;}&Zzds}rT53YcgF0BO?wr&q&)V*B!R-|fJXb6TJ3<+!MmJg@@JWI1{rhHXcR{jaCECP-FC>D$@?N1Zj%CmE+(;UePOF|QWaq?gJtuEJnQtsm3+KVt)_*=8L`bi|wv=1pwUNh#fwo->$F*V*fj zEJw8yP^R62J4Y?u{&u-aA`SUe>WfN;OeJOAY60qwVDb_%tH!;it+!(IO>tPVjPgoLw0{vA(i5CcMmVx$r+dEx zw@`m^(iOs?m~LIMW>!42HIu=^T2qzaPi0>~hTv}%7+*8ir6jg-aDB#7KfS^!=uEFB z`dX&?#H7)#+}BGMDJEALTj)A7W!FC0bfzroWU`g8&Ga1XWKvdIWew~l-bTb8=@y%n zYZi7){vL;nV}v|N1wZry0c^dR-5NWPU%;H%=BDN%MhWD>irq;k{#T!Gt@7?<$c);P zXquyXqOifp8B}EPBr}3Wm@29=D5ONSCzGk)ky&x2oEvrQhD8M+Ywl3J*q>czkXrD1 zq^hukUCwT&rd>)`4wA&${`F!B+;ELWjZIzrHHuAD(XQU`Aq4!`@6a=8JHXQOjzn7f z!f@zHAd`1lI;Ldl+6V6E8e?dThIGs}dFL}@C788{rMh*r64d4MIvcU|+1FB?!K z5~1XSvj_nqul)Njx>l2*eO(4o6TKaY%1CJn`1rm0vCL`vf71cxRc{}55xDAV4VB=* zo&zF#I*H^Jp`A?hq7-9_jLvltH)fNzS|P*Tg-@1Y&UZSvVYm7DSi? zl%J$|w=0q*Q!3GOt~p{A`flej z;usa;8CbMB%g>gy)un;>zp{-M;l6K*~tEpxn@#jYpl0&W@lBm!o$fb zVK4#6!eeHjw-H$v@yor&;h{yC>tuW4ez*q0IcRBVv$N&0@}nB;k8cI<&(>fGl}o)4e9+7SOo50s@>Skn?M!7N>* z7yh9p=Arv+r4;({j5(e&r$&0e!^0c@4cUq)wg|Jd6Zatt@CpF(*S5~P-BUui1H%3e zhyP`}wS_f-KMb@#E&W}p&6ZdjlV&@K<<~Fizr;Ef6YyfSbMR8b74kQy$D6mtoitJa z&Rm!Qpamuqwth9e2D2Mvek3LDx;)NuS=j?vt-gBZ?l*8t+v;Oca!MSnO!D0m zi9)~0XH0YU3HyW8EE;TVC$258+K=I?eB3}cdr$%6$g^< z=J3wtW3)3Ml*>AM+lkU??O5M^vGmdsP%65zJbFm79Ctz;|Y-Y$S7`&K21UgcrE@&LFyKxeGi-_`<;1=v_0K5UsLg3EFtXUm5E z&u{GqQ!|}Irw#T|kU>R7MF7tw0ER!X_D+U=Ld{s`M7VaAbGB$rp%a(hFD?Ux=gEYF zhL@v#r_2D+8U6FeSF$&^Z2ESyfeL$IA-VT9t5M$nns7(|0v+Axv{5~DEs#F{vbpc{ zwzSysa`)i#(7SA+Q6J}-Cd#yh(p*~$N+4a8Z@gbi`2%O5o1PC-rvebqKiyl08e8rQ z$JzQW4o1|OLapEBUzPy|4Pm|rOhklun>IMok5k2>K5lL)kSsQj?Ez#~bXNvr>goW5Fr|Q&$bz{5KI&6|R^Kp4merQ#g zhflT)8wSs#XJMDTz%OZ|AjoU@+siTJc-2tv;3jc@`0#KQ*mh1&Q$B_^7IvkIr3Vd*j$FoL37H5{PNx250}7SlPV&LW84aC5=KjM$ z8Jz23V7WpsyaT@v5rA`x8_3skzZ}owJG_5RSD+dCPele;&lKV9OOg-xfW7xt7rgU4 z$ryfIM7U(qyi!uq}Cm9*&a?X4g=8|!rw*TJLR zHEaYXwY1$i#ORwpJy<>B&~CGLT|A6>KDOSdFM~C4zHytksJTY?8tUP@1#`z*HDDk8 zA8_Ac7egxA!>&DlehyC5h-K2Lt_6nTJeO{Pqc`$nbmB;sE2L+*VBw@`XvsxsM(Dcd zg)~-pCfv_zEAI~a+q9*7@BR!xR|ZEd84`v4%-|ibopfv-^P!zg>NCkNQ>@Fx4Gavy zVt_kq9)FS)CzN4kWo75!kZ&`ja&G*7ukGfP*GyhJdqheI1+D)Y%BQMyH8;~>XkvUI z5d<4Kl!9MioMqh+#e56=&vyzmxjKal?sx)c8J7suq2KjoM}p9_=a=Ek;w=o~KV6TF zr;i-mVN`&dCtn9yPff!dox>f6to=&{ZlvwlANLOHoboO&-G+u|4i@iUfwOphKAg?m z(r|0ir^$kFq)lE4mD{vs{9GGCFcT_3J&}u{LObuGr#cq|Xqqg#p}YJt0OxTBhHy7y zOuv5C8!paWdTpAGqskOAI%`>e*$9554DoWwZ{5bW(uuah$cst>HPKSiWZ z*D|ulTSPloYNcwh`)j!zX&W!FDGXn}eZytudEPZg>w_9nW9A}N$!?>XK9$<9UiVAM zo+0iZxg#D55Z%Id;|{<>)30XTi+X>6Y$H2n(xjPu|GDnNs!9s3;U&x zZ6^42CVx0yyeUnNKdx<@+JBM83n=1a0rLR59+&RGFB`s(%o~Csu>b>hHpllTlCnVi zOCoB>@v#es4$FK0qhaGj4UsARhW2$cGrMqSF=?t_2S(QA5a3)o)^$p77o4kIZ-+P& z5=13KoyrkESFirYy(T+QNxB|l;%YscCoeB>{t22SXcgMnd;-(rIOQ2utCG?grp75H z68N5ih$ix@PW`*o^J`mI&AX;(-dT_?lxU1{@EHwxke|x>(59JrdwX-on70h|XIiO` zSp%KLHxlGr1c6kp8rCE|!A+#2bnu6?%j2K2cD~d&_&nWHRX*okE7%6G-;qW_t zP!FU`C?WEr34Cda$D~3kbrSb@>B_15-O18_0=|F9S<){P?`M|^G#eY62QWxk+t~Q+ zW$1XnsI^F=Q&xE%A@XKkh+D^`;iJTm=HI-Z`dTYDYs!DLxmzV|0m;tQL8P!)a+DS& zNm1>+Yn`bCeNV_!8Nhi--60vDlnMQA>xME?t6(;3rp?PbIkI!B?TGHLS^y_A%wG z7OfLNg(oOVZX7J$v2#6sKau!Z5BMQVtY@Te8o^>tc;{2n;Rsb^?>d-0R?p?;q0(fP z8tH?vs94ipaLtDC-srg1Jc*H3NlGT+``qu^?uNo#y_IarX6G~BdlZsL3LtEdMhutD zL^3rpKoaNixzyLy^_u+MrNfQ;Xk0P(Fz>*Y!h&1N;^6tYb?LsXv2hf*$~Je|D)p}v zYC=fA_<1!~GTEQi$3S~{^G_n~%~D>!#|$3Tt_*3f`~ugvo8Pcf676I~NDWG(5qiW& zrpgMou-QZD3`q~ma3Vbi+-v2gSa(kABVIlR%%YgqEUet2elrs${)gFyt~=p64dB%n z1_33c@5LsxOXnrR%#6@|9rW($j4qXGRYz-y(%0pi?N7L08+mN+IxAL|Ov5|LUZQ@R zvty%2%;!&R?D!wkWWFN%>rWvCR3W@qv4m*xDgeaffHcQ&Z+N4Lt0*O%d>y0j+m_lpE{6MPtBqk{x^7S~r-on=Xdgm`oyL%A@^DKD^ zSv(9Ti(7QQv&NJ&n1&gPv5E8%U!jdff=u3rW0Uo7GsuMGkhF2f*L-8K-McQY+;Osv zwE z!erpzKcy<%oaKOadhp-g?ur>B%rSU1xMxz9JSajV)+OlJ;JI-0x{70nYs0eQZ#n&^ z0o8d#i%M#MI!|O+N&I*;^|x&99ZRw#mOV+#w&Wp-PXOL$>Td*5fdSjh>;7Muu8;G{ zn9c=N7gDhm6%1FX&|%4{c-+1X`TAAKw5(V_1aJQEe$FZ%M&8K=X-5UzqS-%^!cP)0 z3o#L|iN6ZV?suT3u$cmzXbZP{7qD7;RXFZS_O;_43M46@84T z0JM-nw{udjm_?((Nf~cR(VlT~x6lHM#p&IO=kw%h7#m&C9Q;HlbVTW2(%L>Us$eMM zK5pc{64$h9zKF2}{Zs4TDeateN!u3$(dlS?y$n|1Y_E}M*h=CMtlJO-ZN|BS>0N^|TWRk>=>I%m1| z+;JzVXSOHHerW_~A3--)`fzuM zmM28gHt`GV^s9+G^@&0q07ru83oF;BU!viiEhBOr&WB^g_q$@k<_2 zm!i#tQEqZ01KMaDl$@>&xKj3?D9`j?wHQB?eO)-KTXY2e&_yq45^=)vj7b+0{_)BN zoWPw`d4DtM65MJh^@~+0wsJs!W+vw_zU&_b^iJTxClM5Bb=f(Lr%2*0XVuqJ<@XGD zT)3zPs!8_TnKTuju6Ny8b*kCY#`!xRkC=g9(fmbz_Ed&z$%W46Qo|vj4s}y}zlfZ& zes>lw*cB{Yku5TNN&yzHuJ&p5_lO*lNoqUnKTTrB7d{iUbq(p3DBbfook!u)>>$S+ z@kMXYw8|w33ckD)ao5X2EhjIez73B?j8oPx2sLO~V89FFd?Ze@=wKspDbgf?g9iF) z)2){?E6Yq0RV)Y_r-?X=chu0h@?21}?eN(V4!X^$hu^k<6-|`@r8Ha;2#GQ-q$Vj< z|H^`0K!KBhiJWrfr#px*XGU4a7j({3r}9f*FJ0xK?3HMP{5e5NWI?sRR10cGTiHkx zn!6C`zs_m4URE@R?MgcQ&^-wRH*P%5w_wX;hGoN7^e$|Vr|aQ>+xyLjqor~R(`dC%KI z4|_v3+-*p3IY~Rr)T%2Xefu}qECO@49zCmuZR+|1?GOrLA$oOs!%cWJM2A2iphPC0 zUbL&3AEk&`*TiJlYh_jMU3MPh<vTb_L|ZiU5Il7KXcJ76pX?8!qOdtXJ&C(V(4 z|L5<3z8H52#tFz$7&5c0l8^YFYD=z2Px!8G<7w~6v(4v1l=oeT0tR~6*OX~lsGW5f zpL64VlVEIjk0yx;FI&%NrK~uus~m1q#=)Z_Mj!}(Y3ZLWX?on%$}K~CLv^Jy0$Dwu zw|JddJ+{L^c?d-y_%9RNIltoteOY={)ot6~9VX8J=$$4QO-;~NmI`L1qvOrvUX)J- zU;E24-=wCCr=Fh6`TO1GE@OqkclTu6*(R&vG$_wVU3biiC25{FhN+}Z75WUyyvM0G zQrJz`&ChS2KTssjWm>KD*E+=wX7CcRowE260vMIafyH^vU}tE}%Xw7~r2EU&y#2G4 zJn0j_vvMvm-{a>pS2sTFci8yuY;RdJqf*l2qTr&ys}u+hlDG_LiFWjbbo+;QI2`Xb z0-3t?IqzPbLb94v`imU&I=OkjIOwgeEpA!^$!Oe>!g5ZO*acS!`rmA>jiobFqvEYG{;^$(LS?n0fO?aC47x!VbA- zs$tg=F>K}k<=+LFBT?R0!4+r%|Cl{%^mF|SJ)LUVNeW>7q{gq>Okc4RIv{V7l-|2N zo*EGj4eNiXKos(`#aZs3O0cl)=Y)OskEvq>JwH}2VEFCz;W{Lsqe56>A7Ae;(csPE zt>jT2-;HaZtF;it;(TnF+v!{CKezIDAIGo$@~G;9`Gvz{W{+hOOx8##gCiM?KA$-ZW2XCum!5q6*_Cx2NEmSGRNjaV=DYi^Mj^OdWM=uUF5upyWx<-FY*Tx4 z^I;xU-0NKtKD798e1`%uk^-nM!{KIXt_-U4!rZO7C1i!A@bVC-DzJ~P;kq1b0vo zOFIE(E7$_9U$p7IY74A>d(<8-Hym|;JK=9R2TwWP5>=ADSg)K$S~jqj@BgracklN5 zbD`^UmrcyZE@ZTCL++h;LwxKBTTgWGOYtfgQ`6BnEks+13_Zt0Pu}`gK1)lx?WOr@u*)*Hw@1X!Xnmpu%0|>tMS@%O+ zX-4jE+`jk@;f3nrHycbAXDijX2dUVFX4M>>_U+El+*1cM4-s>SjXX2`$0U%LJlOE>zHfWCp^S@`@ z70k6SO)JEyvWjiKg$o9WExX?~*%!tUeDl3-())bzcXB;scqC)(py1*@pM+6I=O9#u z&z;mXbOhGjnm#rs-4cFOTVJoEx#{_GIoPSjq^Blrx2ekk!i2aqFIdB}RL`uDE)Snd z73IbsmM<~!M}|-EK&|bp>mdJiNBfh_SCXG&rn~+RTTp+hNshJG4n%u4u3uoz;#o11 zz*Ra9|HN3pq}>&8zb(kROsFw}YgAD14qdr4p;%+W{b1sKL^?GNGWLk2h?ZZ&12Kp@ zrd82FF|~y?@%Jij2VDi{kQ%dpzTmndC)w7|b?8qpR;Z)~QJez^F=nnh%6Xx^qvy|<_p-`nh1k^^e5)(K$8midgF zv2p|rwJC?HsC!$fPIVD4EBdQ6VOuTmZ{oyK|Iq6V6n|%)HOnje7hRy1$>dxRFq>$4>Q8KH;=rKBQ+1ETAypG7xFu_2@(U z!kgng;>?9u!0CU44%0?9q>~MqWU1bW{>)*SJFS&&?am+@V(=xq<5Gs4KB0zZ@^oXo zc*6P{A{FV%TwSR}JD1>OOSeayW3`fjL+V5#o|P)Y__TY9&IX~Sv#9LfGwoQKB3)|X zkir8FcN;iJGk@)0s7#|E7oGQkv}t8(RlldEBy?m^Ca-@HT#ZeRb8(0!VtxjJtRm6} zN~WG*r3X>}*s4ygtc`(-^{n@=Jeys>xe-I@q%7me{sEj&qyoR?SxvTXWChJqzQiI0; z|Jsq;=I#-zJKN@PUNZkBr;W5DfD>+%ohJ`ump5TCiJ?1@d3f%${$f}=m5!URXnAcF ze15Fs>KNC&5BHvBglD(e@G>WRf|DzxfS_o7vMxLiu~h2e!tFZ?bqpi}rN`@#ahcGO zGDfC^KT(k*j}9viyN+4wE4_|FndXcwO^WuSpcyzLyz(!etp&SG)mEJ(68q%K- zLovH`P6ahBsQ1_Gdi1!iMg$98KD)}WXsf7bFpEC}P+YQ*2d;%#joPI}iw<&Z3X3c3 zoN#5qItLQJY{uMwJ-#2)(f`#t<16?D$~@EL+{%Cts~TPXuZ!;f^yna=!<-Av^K-Sw zaT%jQogs@qkjZc!+`ZcsHR1p~=|vT>7r9s?c6eWrXso8|uj`Eyup7Ay+_t#H(Qt_&+Q|q~_>Ml(XCSGRtJsi+h!cF8Co+bUj8 zdm#E=_aV(R2<+pJ4q$&AHJ1Cym=UVQIXYARB;ftMQiWMnY+jMq#M;q4XW|Zb>eo<> z?S_uhgr%K>%GJrC$k@aIQGwyA_lTc>0f4;cL8r>q(37ay*+xTNPK6>%Jrz=d#BP61 zN7*})4^~{(X>+1~FEj{@7$(qlbohD%el8xQx#Qvc5J_?Vh#ORty<@5v~erfHq+tQ?WOXc8xBc;l9V z7VTw9JRFMmqEHfycwvU_ZUUIY`XW)wX6z>N1;Te6wIC6gattk`k@9T(x(!}EG;dWqOz|Y>#iOid(kC^OOb(`-=;XEM*jG}O*be3~ zf9f|X3U6P8mnS7hx86Dq7UVDF!Ok$V5FDO6bRBbIEqp5#8C-mTQDA_}O-aFO@93~| z?iP~xy}ZefFN^MdwVWq~t4MaK`#qSyIl)PGxlG2P z$GVM8v`cGiO5f}}_P}78kth@4zFEgiwjirS>D56m7S2P$*RJuCqtV$BYqZO32K6ec1zblvr|`YBSdM4B?Z7vdG*f?8Syh{vZ_gT1U%3?_ zG`Z6pB?i(%guKSE4RP>SACo>9H%1P0W7M6GM8xbeyFs`{8AG zWcVRu!r0W+Eybt;_s5esmCk7tj!B;zBhmszM763w*pDJ(V&;k|8BF?^8k$Vw9BOkY zD_j_PpRzO`l6y^M0KlWc%E4lw{kzj2A_G#AmI?O5Z?@-59P~#(O6&;M#naIdRJPQk}g;q%g z2Ob90BV513QJSGQT8rvX>)hF@(mfQ@CAxoSdIww0fTe%zuX}x?lvo$@QGo`70sc@c z{%wt=Y=+}15+z)!!7{hGT!tDOtC3@Df+bm{_pn<~koArnUEn?G0_(?r-}f;YuoOGfRc*H@dyh&X~_QsjO$ z?H5Ai7|5fcj13CSdYQ0W47<4k2qQKt<}1yz!B`}6rcR`;EbsI`a1{UbnZw1Z`(b7h zo>G>kS15c*`~3XH_i>J3Bva$v1TzJw>_frk;D-Q#x{d}iL|CSQ6~g}ASx%RN4xH4U z`Xm+_gz)Jvo{XbmLGK$|Xh!x&Pr7BrUD3MF)frey)4%C*u26*(=jql1ol#MtP;gCF zc;DT^HFqk8#!<08{g$0`@})$T@zDKB7b6L%p#x3wv=*M8p0nk2%*@Q}Ktcwv10;^o zn(HMTAHRGbCEBxATUOTbLD@%^803|WWjn&6*x3<~>vy^I+8OMfof7l01S?OA>T~jE zir7{YKTyRuMm5=I3xixh16z(B2wiKvm9;aBXRLximeWcb8z zwPE+TW$8$iWYN(qzyj^<#V>V)+GZku$y@67$nWQUxQi0nw!=qN;c;8Dm<8*kZM!%O z&jK`@zw=hh$db_Y^ z6q>r#$$4B4k?6_Eyi;)a_ATphV@*$(hIyy=Fj+AOLXs+<}xVT zN17VQx@%f_`THfCr41B62X!onQa4&|KZKc^(?ZUJUKxuXeyaO-aEfPd_|!H_XM|O7!wq*a^{a?V5nhus3Gkj-?|!AQgw)$QIFy1}m_rES2A>w|x3E41u~5fTcvgOw-}F#jNs(f)V4NY93mN#URYf0Q+#v7svpOwG(Z&0t+{ zxevzsnQziN!_GU>GH+|PSSmf%9>Eb zlf*1fsIRb!Fj;v^3jvr1P{)l;P6ATE_tl1N8gvL?Fc?Gn-TFv3i{j|`^RxEWMR%?6 z+t8!XyCjxmC22XDK8j285gW>m2<_aUAaGeK7K}-+2;)7desWB*Fxp{#~M`NL&JFl3`lI6$I*LTSpDJ(j219;^c zbart~67f&rQWaW1D*H-Hi%UDdp*J@+V#YbKncH-*4+*Pbn8Kn7zvD(Sg*_KI(Sjbc zZpar4Db!^i%Hgu{&hHNCSusMhk}P*#o1_0Kk~^T2tBCsiCt>n~+8kLA9=}Fp!rA>U zKLYsucbR@d92Kc(A*`bFerrX$v=zq zG9-7WD^WYG=}e-D7IiMFLJKvCwIQk`0naOhMY=zTm0x~LQTJ6B(k>gc@EvZNr7<$l zjE|3d`M3iCMfd252?@}%@)8aX$3Z5FNhpaY=Vc8ngTMa>^Epq}r!%FnJq+MLzjmw$ zG`56ypS`OoBHusBaN|7ez$tDUgxQNtI$oqUKNB%=(Ze22?euoe))=Hi;?872(ujKp zNYgLt*h`|J96ohaVxc%$Ho+M_`&I?Yaeou!jkhA1~AZ1<3gBeB-Zp#Fhk->8yKg1O@vRLC9C0@FjSBCYo=tMxBdzADpuo9#TG? z>U@a?{Rru}4`$kN|1kf6c<&{4)ukGiDO-IG}AM+6Iu|gZJ4^ zcu5;x7C*=y?EUn``DG14H5}%C@_fKUlY=ED z{{SDgO}9w0;;|5fEt#xRE?+)#veXbofuyUiZ*FE5R$NR8+&@Xij2~i1WiyBGEBo#h zp-4E`(S()$_g#04iiVf?IajFzEbwF3E6lwnlmEhLe#g!gKI#7a|9E=G=(rlTZ8**ZjoH{{V;d7Rwi=sl?8dgu#>Wqwxdk3 z>ba!+rmEz{MGfORuh?9#r0sUDYMaD}HICu}oBOWP!theXKi8)#WQ}Z%9CjBHOzPfX zv)H#B9KN*+ArCWC=kT3tSb@(w%L$v+lyk3JR5CGN=#UPOq6pNEo)Ev@?Tn@+KjK0z zr%)@^kNwp^7ya=thgkNLrTFoSu=CnvJK__)*Q4SP{5vSwh zW74^Kv044?#RazNt*l}#LaFwMsZC@rl#7C@s=I2)wP3yUgC{5*oAoepIScD(w!`dU zjhE-aYl9;H7UozdFWa22@y@~93F%O7${q?mD%k}xY z51pNB$ZZvf}#AMfpjs6LxrU)N*7chF$2#ussY_Mbim%FmYqQ3wL}qS|bh z!45iqOiWC@Hs|2CH(wM&o-3tnZ`2HE_Yxn}_osVZJ;MxX^3(m#1maXm-gdu1l3RyE zIhjRShyg3DmtVv}%eIyqU6n)$<*e5&qyL6;8ti;rNl0K-g@YVMxGd1XZ+PgLF7(Yf zR?p<8K>F%xdP=p?L6*tl^4k%2rC2$JMDeN*HOt7pTfR;WA-i$X>DjGicDB=FbK89R zVF#t+}5D5f2s?z(>2Xt z2mbaOs1Bva9)sx)Jr9+@PUowfe0+ST%AbO5(*r6nqfjSRCxWl3Rlw|32={~+roZx; z8DGx771)PVf%1|9X^7VpwyJULV<(*U?it&RVNH-@Ok8#yxusFRI^Uo2Eb0rn`R3uJ z>kTF(xX*v#)hsEKtINU{vm~(UUrYF*?K?CkR242?V`iZdZo~s?YSu9fN~%ZikJAOu z;V9fx#q)dr?)Bv(QNdRSiP9&NCxd6UwqjMv4Va0Ei4SiM#%;!i6ciNhF5_QD+3b@1 z3Ea~x(R$%FU6w21YhAx*1IO3-GFAQv*cE2tuNX3k1P3zhiIKOTB&;zNqVj*k(-MVT zcJqDn=WlZ*b|BcPTU3TAU!7~Trw(&s9g`%$H9<}xvIW0!Wzu#YZmq&<2fX&kx?PUo zcNC`OOl>CqYuGxl`za%qHW%AKMO@a1S?vOCE7s-wfax|i_l~byb1_Yg070H_;CtRT z&d%071w|D<2{`!NQX@6+W~`|;el053PHYEX*(d%=;eGnu%^6gw_QUZ$8S=2C{_9pDv6P?!sUW2o@rk@aeYoxVpaq%hMlAW7&LjNyO&Zh5g-~tqhkKA;+@I$28#vU9{mC$DS$Q6<2e39Ma$XC8+6rx zW=7EYwpDNqwrF0({x3B-jlgi@kkNSL8hPUFBa#BtdVji?K@it0j^Y=k6l8SbUV-6d=4j!EW>2+B}yGnuEkOg*C2hM zrFOz$Ggh5MP#*)PsSf6E!CC$H*T*Y?hQ#qdf0{_S>D;6WP|i0LqL3$yECl%Y`DLjS z9}Rjnh2N=z4;br`jBIyNZspj3<+#i=;xLBNfY)gI21bDi;hso;rGzb{uOd;8pIgkg zO@i{2lxg(OF-A*`!t7@9;rt8A^lY~v?w!Vw3;$*5*>daDs;&$@{=v^TMFU}Bd4WTW z6-qdBbKb}~ZluuC>B&fm;=UG6BUbiaB{(}WH5fTwm}bNpBRjMNYr``s5c)@nz`Sx& zsM+hXB#NT1sMTiZO?KTLM<}@h?zKV`kLMDU82J?yk=1|?9Hte(Z@3nS)im^JB9_>g zopt`D^emPyLjUdk(hmAVrPM##>1Yb3&ayZ5 z?doNvqttEWXxrXwZQ-(qE#%-yOe-NdP>otq0DtAr-9f_0il#lAV6%+Hr4Dvwo1kQw z(#~Npn~390TQbB|TbbD*b?V9SXeF6n1$uOwgfWVn{p7S;9_DxoO!w~8q}6Wt&yxL` z5Se*VhRNNpb={Ls>4ZbJy)&3Ej(P-J52Ls@`z{_A6I+m=aASy;>ZlpF+QLmt9`|nv zE?fAdIBq8!9VxXTr$-oDug@QH-lvr_bhuIwquESxBOeX?&2)>{>pr}O@T(Uu?mf-D zG9H2T2(n75c+q2uDyo0AAgblKM{AiQd;n3!&x-9;C3!=dq9uqjvFWIJ>BEZEv|LcqF z?ES#R2RyDor9B%Tj8=C1|K~wKw$`S12zaf@%ga0N4u-o8;y>gG`a|TP#DP|gWyd6Q zds&QaS!dDkf^lpjn{f|4dFQ?n=+b+4-8iZ1P!x+;eaHNuAt9s@o%m^ijtpu#^C-m% zO9u`wzwgeG4_+p-+$o4HLa)EkCtz$@HbOjBRWDF~gIV}b8S3mz-7Tx#vccBoV75m{ zwZgxSrip+iLXKVR=EwgMdlv^JkI+Q3$s_;z#Mv(6<~Lq4Ljk;=hbRMAld`TPmNkGg zTH=nk@ey;t5L(JtTytl}$s?=?KpB>U_%y56Wb^ zdB&&71=imffT5a-ReGdF4Vf`4U|2|XO5N&ufilx7S7K*^Kkdrc{-T3NkaKic%$DP8 zRXkDF^u^XPWrtvHLXmmz1y~poxoRSUu&qlRwN2QQJ~jb+ms)?*IC>Vtjctn294HzfXo!`v7M*WWK2GM(*Q)r7&|mMgEo(YlAR{X0#i+x&Zn>6T=!mtaJ#*7ba6{hHkM*=h(}E^mcA`@ zZ>dbLrx@){L9G;%pU4wdao}#^?LG%92Z3aB2@tYd#v>&+A6Gw6OXIjd7mG_6EBXi% z!_0(DhHklq&5gLSIa;LXQp_RW`+mTlr08 zIpa0NwOK4A*%Imd9r%R&Vo9hfnGSSDy0Gp67r!Nw2HxK4vuZlr8e-+g$ezc@EJ3dn zdFp|d?mMO!B7Q00I*4QAkQZ>iliiZWIo%6whL}=hb~=eB0|s|D zL!=q^WlXAK(hWk3rA^mEi~20TZ+VKt^pddvbZJaLwm8!|-Y;MM=0H>5rF2cIq}5!B zIbk_Lh4GCRyVHviKc&BX5rGs`EZwBuNVj; z9HztV^6+|u-^KLR7qC4yyD zo5w9R04V@nF=5ht>;B96*>xWCHelSWQ+g{=6igIN(JAn8puQ}KJ_p4s-I}}is)YJV zA!w`n67y6)rFJ~D0@{#e02*A?2OXQBsuoJW9jEG_Vc@c9 zQ{xp78R%=c!_*sj?(rM0MAbxd%-RD~i4<-cv3{NkN~?=Y&PKM&Z()qBZ7rfUPVu(= zna!@J_F}BBe>gtz*A4z2RLPbJ+UZ@RV5%6k(ACVy#1(%y-&k*035Gh6&nj80t(l7E z`@OlY|Bw7^LXqkmH8QQGdWd1Xp~v6qEHw_1)EtVl^?)aqq(`U>!t*q)_R&C163U%U@*TD z2Y@A)YpAady z4?S*%#DUENk``BRIP^%y;-dPLuR3~$m9sf48ET{{jG8-w_E)%?EV6o ziOA}(H1*{7MrY~F15`vXVyNPM^$GUxjkU4kZRAgwa{1w=L#Rdz;1x!e1CLM-A&AmZaj7d@w&M5;ebobigVbRZE zk;>QMzQ?i3v0JEa0D~*gF)*~u^+{bGMHF%*TA5BxEgHs}fC`$63A6;tpC^R^04O!B z?()wt@gKnKcRRE(urV_@d$+ANfCF-Mna6Zr{CA)r^~&V#5z*#(ZE zf0M0P^vm_>ph*^y;Bfeq6-pEGEY|23&CCPw(wgWQ#m5KrmuLipa4taf)q~H7?@I+E z3PH{YS!2(RDOS*Q*neZun(#s%Y}D-OhoV~YVS5ZFG?ApR%R2MUnMROU) zMYZu;X*#jtep8L!jt>dHXbETd5iE>vZQn@;zU@*;QcWBf$#$gRQiLDZfC%{oszqsm z-i%}|<OQvuzHw}-E zx$uzzk*T+PjwzoMa`B}@(Iji%ntPnv0k{e^7Vi^WZQH##5CHJoJ(6m_1GA<3v zH5+znyX}}=U8SvOS)%81ig5#RuUEbjNbWhBu=oFt zo6;CMHgIrotu99>BQZoKz^VRjYr_U>eJwbf-haqA9#~{4iuFDvT&SsXpSNL|Fq-VA zU~XxUidma6$VzCbB^fz-2x|^|(P;_gTGF|Azb}dM+Ab_IR5|`uGqTHnL+Ay;B#?sQ zRO~&!-+U8+6*)q04;w_BgAazF9L5vS-*&!t!Fyc`yC^+&coQwsYGNjac6@+#$uQ2zsokaslueQKRy?x~|D28Q z(q`gL87krK@RPDR4PZJIJS;*^v@<$fk%`@)uM(-6UH&b z^JXe6=%o`r%vGN73eOMG>S`Yp&hN4u6P*OLg|yM8?=vazw%*NYe-xvSzuJ+RhHqF< z+GD0#piB3Jb%TwPyQ&~$Tlcr8BW{6fdoG0i z>|RAr2%9l8H#ctS7((s2OBZ{03_)10HJvs(^RueUz$ScFskG$NR1C`xks7d+SmVBe zi3eBk9|`W-c)h9oph4+{?EfZmv~4#_`og;n6wB9BlX9@E zmn*LcCfLTihbtbCZOU}$=cW7{L@|Q;!3vy8}fhoN@nG^jO|A6cV2r(_Fn30wXZo9mI?EhPh zUZ1}i*Wm%;vHgzuQL#|+e;s6H^kN@%GYM$Pr?|YTa0Ep~3PWGZUOywgL zr&JoYkotj@N-#A%6$HPUP|=Sv@-G$(m1nmL*Fr*#mx#?*1H3(%dDRAs{1=*bKS8YQ z$c3Bx!&rDtVsGW#?j{^yh9B)A!B`9n#?YJ|pO(B))*K4Vo+;*CMF^r3%*gG`a6(hH z_4Ft=2ut6MXeglPk|H-#UcGPUv@>)Pf!BzPn@9ID+4e-n<#1pmjZlAkYSNJi?SB1^ z=s3^DZCpQ^SOsy_i@ou|wAp)dV_WLCf_i@k*+;h(m)1zZ&=%a2cq_S^_0SmSvss?K z0T%!W{tn8nQK*syN`cAN%!Oy8g7oJQph-kFc<{NI`CqMu4;cgXdUb70ncm3U8oj4+ z!q_$CuQTkDwsAqdNV7v&aEfT7R(MZY)qsE;=cW`CN_UM?fWe7A_KwBy^87?+rhpqB zlmv}6dJ{>R))3;AE(8BwJo}NaIfxp=H<)39u7Qj z0MA8^FMIPUW3-s?`y5guWuY2KJil;u=oVWj!?D&!{e^W~_hVOtnrv@*y#z(SN=6k7 zF7=C*?7n+}3yf~sG(yvs<(c>olq>C zEu#3|AzsHDBfr4$kzO^l+do2WPYZ>hd+>eWqKt-T{Ym+r=yLb|fG$D7NhRIAOL*!5 z3dg*Dxq2wv;vOTMmjGG(S}o~y#B>gJKFp(0T!6N0$|8pp z+^(~-n!Y(rV7ZboK;z}{dT<7S8l#Q&ze#TCBl4hrb-O1lUchK>Wr>kw?A-6P^oL^f zhZBi~B^&f!>5s@ni|l1Wt-374fY(95s1f`>@f(*Oe6KR49ZXk->drl zZ`wI|kmcQoB+<0wKXbEjZiwZh4J9})c-c-5lcK{&eM-_llyN~yNlHpK_M^V7-Hdn{ z21r4s>`&E(;{YY|KT6ln9fRV?QGjxA&)~e+4Q+tO74`+uhzq|S`BJR%lqXJ0gB0^G$D%LwBk&HzMOW=lrKn5@%-!8xzAbc0^PT;s!IJBXq>4Q6Z; z*40WhKW!TWh@jyJjb6hQ5;B;63_ObIlGCe=piVpvMAS?WR9HL8P<@}8Eh9fNqb3Y3 zMS6y1p;8!IQ=HffL!#WGP)88Bab|ltA@H(JtqiTjPH)_E=>w_bJ9XTDysQ71A<`%h zp8ZvH=$Btfj1*S1-v0=(vGpZ0X#Tr~zC2v^oV_i9)gaJq+rMS-8>3^w&^BSr>yd19 z(C>MCdQ~KMY?7dhPD;>(i(yN5*elfkM5&5N%8+kN2b)3#GBW#}lA<+R#qZY=SkrQx z&VGhPRL6cT23CG`Yb_JO3p`d+Xoev>nYJTN^0L=B*`t;Vn>96P zbvasj61_I1)g}#lS>oLAu7x{vDBIoghhBWDYMPVy0;{TkpyF=8vLZM581&}yeF6Ua z^tNgTgpFW1r-dieYB9=}Ub^ojX5Z>GK> zuXV6!{@k{%R7B+HNBhL3ywrD#4YmrxSWi1674FJKO(mzi*P~kL7HP*%n1LCiEg4^8 zT^+6?92B${TTN>!Jk+?1Tq!WE9FUSEgVmvf0)^*-=+5Y`+4N$6Z1fM6=Mpfdyfgf| zE8@-gtL3u++w?Q~_jpv&FO@}J`cXt?r;-#!7shM!jI8A4Bsf6hkhN!nlxxpRSBqm+Y|&duq! zSCJ;ZF&1GZbwR{p7z~+v*Qe)|OCgEK)k?T`(G@QVfMn=S&9S6qQW&sj=~6$F2u66r zfPX|21LHC5f0O~)P6B0Cv9NY@AUOUX`LA(N;QjCI8uR3DYsH3^!r%&%IV=Vtq$hUe zk&>(%bTDc8lR4)d>Y{VaRf)AyKWQ|nb^l|W<)D<+_e)s3V(qYG*%so1*H;qbEr8X9 z4mk2pthhKByZ!x?l&vrR*0^{F=UXKP`x&f#3AyIa^pm7Q%3GEWgjQ)$4~M3H^7&^p zrMMauP4sT`fuFS7K2N|kZ|VzC2zaYFg-X+h%?zhCDR$V5Cg*a9 zKRC2X2}eCfcgO{6fxY`W{3o8BBC3}O4cB0;x7!ngx7k|@E1oG{b|)PqAfH*JLJqb* zSro0X7B1I%Up-~3I=QQSLqXHlCTL`}xt~mcI)T&b z9#1Cl!D@;Ot88744#=aAm+NvR4_hQF{sT>vlF!yTzw~QPP>`R0#Q~GJ2);Jp|64*( z*65PEfGe6^2f(HI$9cZLcLlJ*=0X-{GMG!@*%9vQ&5~XCLH*1@?+AQ;Y2HJMrpj;Y z!CGdsRmp+LAcA#O>OlQZK}Jd{sxh=!aGx!OC>$JVG`IKULV0&fTHW8Efct-z^$WtL z&aadCzwMdrFfzukH^JsQHd&Tfk|2k|~FNnjvB#;YE*s;~w2K5$}2AK#W|M^FgC?2LO z*-xbpSoxvWlLt6>(Kd_;=&6`QL~EY8n+WR;s7C)l_5aZYKJRY)gyNviD)s_y>Hu5- zc5t}#x%+0e%LauFw+g01hvO?zooK^AvY*W2tjHNMGpVMpxE?DZb#8ZYvVv;~Q!Fga9t0hCG)`9lGPZ8#6Q>r|JV z(xG3A;Q3wS+)O`Mr6Sz+?tp9tEiB1;>9lOwBDhe z86(_gE6EhMs>>u=kmS-?kJlskZGlI`Yr&#e7$qbc0Xd7u~E$Y?u`u+Zq) zD3{!d)VoXoG9pr;Xw<(XQv-ij1~H-KMAva>EgVz83@<*GMBND5j*x$$qGNt=^qr;> z`>1QGEEO8mvTC6d4JDzOODE66SoAh+N+7DYnie6tjOHT&m89@(Vi%BuaREF&RLt06 znt}j0*DyC7NaR3&z^kmV>F{Sf#qZ6om+qyz#c7@st)PS>)yl^~J%aE&J1$Y*%`f>) zVTxz!Qo7Jmq)EN^u!^KJ%~H}Zl2G7BhW<=QxsX9tbN<1oB0_gYoeV!=r({XZtJKe( zy`QT5a@JMS>8_cA6pney%&V1O#X-ssh(X-mkgLWORup$Zt>yK&X?K`{)?Fr>HT~qlk92?5rLA|uy^KtXFs1ZP%IUm+If6giu!zO7S6)* z$^bX!P``+XRZxJGHR+Sy;%r#N;+cio{Fkvx5f%9T?4LDT_1m?!mL_Gcz=kkHZ8% zqO9tmUcb`%pSeg9SZ<5{$4+)$wnuo({vS&UFt@ej01FV);B>hC8P=fH@ZN0Yl#*jt zWZY#HXpot??F)LVwjTCcKM}&zN8JHbesN~69U!Ww!ERcV$S z`!i`#9^Rw3{Uai})h%F>8O!@ZmQ)v>)fyEs6=+tj*N`G;qLB;-3&rsJ-Pi=hxN66s zdJJ-1Z)E-0Vl(P5WaYG%GL27(&YCW^h>9)}!E15gQtJDs+fBTWO$WqPE2*{6i7da~ z*-3U->V@9~o{R$Cxo-XH@uF(zdCxwKLry#m{N4Fm<6QbR9<}LBAf;9tv7~L~rQ`8n zxBP%BRvZ$K$#9RG+Ao0Q;&EJWs%Pqaw)pva9f=`mf>eo=(a1u=ptb8p-c3+E}vm+e$y`LC5bmZ)vIJ%f@h~q-w zOt0?f01nEaXx$I58eAO7OwOOETD?4{`2$zK+Y|!b$Bp1W$_B=z8iKpEbp#M4IkU7h z()S(yA3E;Jf$A=p5@|Np{h53h!;L8B!rG!t3lPzm+L!rr!Ic^X7qdgAq^K{LNOEJa z|Mk)ic_Gsd*G1Tfg^MCH)*dXVd(P&y4{fu`#cv-}ofKr8+LzJ!oY?+|;cJ~%JmJP# zCR>>XWkU9f7e7?Uh&&w6;#-_^*4$31CA~nZdUm!p@mQPgTpYbJn^b$vSi?oBR;E=Y zU4I|zSyLoJFi^=Y@dN#QFbuu>zT&ngkRj3g+nZscCXz0#{#h!rp-bT-5tQmq@nP=X zr@42U9CaYP9dH0+d(x$2n zIEMk(qkkT7Q&Ur+_4;OCIbZCDs8+JV&>L*&<;)uG_G}b9c=Of?&7r~lnWeK3aK*^J zMIS@ISVuq2JJhb?6{IMT;~-@x82D@C)9-^s)BU$dI{Nk&VtYik5ATg*O@WlF-`coI z9XvwfMb5A+eE2EXw&9C5;el}vi=`TgX?$$UV&`4lL)9M!D#}6$7W$gFzGsUQ4B#I5 z21giFt=r*-^vyn`F~^2<`5F`HmUUTW7HEv!)xyAd4q*^8JJ)>bDwp`ELf%ZjRudvo z$w^w*KH_M@(+}Ip`RXqf46Z#7s)FsV>4(Sr!YW1!$((#FET?=yGvvU>MajtCTK+Ps+zUO>cLQA_BcCiKy0*oe10TN zmlrM$#?ZH9Z&k-=3P-1yCS-mkT-tkwF~mi%fZKW%#1O08(a%gqzq}W6D0$l;vRM%I z@yl}95VG{n_RIUW{|8HLPm?PzC9sQ51F9Of0&D4XKFMqLoU;eT-|Mqvd_Uqq;?f1+ z0xPa2n|D9`qxON-xVD`6L*WOhit;vDG=`>W?l&xj6{YBoJe(&_R!QcofwE8L#jgvX zA0P!-RB2g^6mjM&ZmNK$fyJO}R@igQaaq?gkQ4#=MWIti2MIJtq)v+xplyBdn(y_i zapw?1|G-fz-l-4cXk`@+koITR*C#MP3)Fp?*RvzOdM)5ZH}SJTN|h>+87Y8Z+?R`D zX5PzpDv!Q%9Tj8ZNm?y`4d7F=U?c+oIP4iU6Sg3b1s1dvD4{tLTcl124!W5M;r0nR zfX$tn^oYTCgIJ;wpE6MkbWgcUSg!TwOKmwad50G14A#+f&d3VUi)1(ZZRBHn7@PW9 z9}dhgp2B33EN3<4->3VubnS?VXCN8~+t$?^sm_#`4I8f;QWJkW zw)WxpIrnM`A+{X3jt9HcJ0S5NIcnE{q8kXJ1oDF$&+$$0h=~5#WDyFu$GyG1DU42j zPw@{%>-=iV0(_m<(2^^tco_yF_?S2+@|=rM;$PRLki?6rdI5taqo}+}=(q~L;jfnZ zA|Q-rx#4gXEoMllidFX-HdBPF;OeFEATEiz>43gv*6sba1$&+mD&G+C!TOMcA*j!t z?rC3L0y#z=)s|RptJ)0BHwi!prOGyP9TkX9bREIAwT*{_HGJr6f+lBgmG;Hm={jwy zYOqc4G`39(8KDx?OkY6F?MW?l9R=2>{@BI14QzRB&Ha-?TvBvFO~Dv#=DHXS!@doI z#bbEUTp4f6WJ2>d13N#YFqLM^ifZw?1xC2L-SB5Hq>Bc8T7f)Kb5>~oJ$$GSDNJ<| zJbs>c-4V|@_)*19UDNkPjEm+8nQ;UbIIwmuaC9Hcszy@<#y0s02z#(ELLoky{5!6r z68*0^p*Fw+u6_XQkp@uKM`?140D=7Yl8_|=-u9?Z$MVMNVD^e67@LGeNecwk#l}bF zJR+9Vd!~fPt!AMXZ63~Q^O>}^SaK{p&Xq!KObBe1Wj!iqqBV?KO0A}xd2_Jr>Vp`@ z0Tpa6hV^vRMU260@a&B5#w|Sk8k>G=?GUS zi}(E*t*sa%{T^m3{u3<+x}nlF_H05cIspa8W{AokM1=YNZMo2|b~Osm z_1Yq4^g5pegG9ad(az(=1(t4Zu@<0mn7705*cikI5!De*ko8wCP5Qf`RMhDvRt10L zU+h-h->5UOSG;wo;$D7FaUfB|f688;SPjc*3f3cok;+se+fd^}9xW^zMo(8i14YFS zt*&$r2T>|(9!We%JzSqmy$7c?waKZ2Mc4L-B+O#+ZCV8=+Qg)|>xWmn0j)JqOqATcsA1HsZ( z*4710P01-KI0>WsKEdr|E^( ztUaqVGa_yIIdbm=RBI^SxjC75r{o>}Y1$u?;S%*(4w(;>A+0URZ-^t6PEQ}8!az@L zex#1*E%)jST@iV+u8sboh=R_ei1&E*0t_YK3CogBs2+aj>|DV=gDE3BKk*ctO&UW0 zw7k_Zz?rTeKIYx5JNebDafaY|{M5zl?6PS%%+a7~vxvlwpDE}}KR=e4*xzy8WoE%b zB#7$f)O-EIM$)iRxwcQpRTmlvM9Iu($~F-fRBOT!SQNE7{i4ke2LnQqN2Bi- z(-3BniqlI0r1L6ZolFcsUv4BfYTO)Dp8()YUjY6M0Eqk}F$xGo0Sx5E#(9MNJzIg4 z(BKz3$d~TeBadjjwEz2(A1H~7U;t4YpyveWR52vNioa0c28E+A96t<2d>)i3s=X?v zo`yT+_5I?RX$Qm3s+B?s!fLZc7)c(CVCFNQ9^3ZnD?fqy@;77=4vAJXIq937iWYU& z4cYm(uX$tmmDX+dF5;SxdoPO4uJ(a-{p>@%H1_qu*o=8GaaTn9Q0hZ%#|w{UgrQC`p?&OZm8B+X!ExutALVtE zhs9MkMu-{wJcGH?QS98T#C+Xi@I-xNQ35GG-)!Yn03u664s=|s(O@h@Ljf^` z{k%%S!sY5_qwNnZAAT_fG+=^eBvvgK21=W+G#gdN0p;63~Mgx#__+J{lCVTGx(a~FZgQ@ z$i@YjK{;L*ZA7VR#8L>YAtx(@IySTMv|+4`Tv?dbAn#xlES*q91K8j?ah1J6q6A*q z=CVOC-cany4oFP|BO{KS>CDXs3U#n0zwTC8LCU0(YkaKVwQ&7@^4V!@SqS$7%_ncq zcN6dOOI9mx#%#cs6o4w9K9pO3{tY9%^5W2@{s`wV>6?;}rn@w5fhLtOMqFa`EPJDw z_{ZBCl{?!(O}aI`{LDQ&-87Ll8J@2Bp%4cS)XT=Tr{{3iQ*5Tdj!oKi@o1gfNgRA`~6*wv&om7qO;v< z3IR@XhKi*`j1V)ZjCh`%KgP5D)HdFMo`fjhHVOGQ2mA?CIRghH0vF4s!#k5I@{;nm z?5S~_%Eyriz4q>yi;LRY(hm>KNuvUE01=w6Z%$nu8-$LI&S?-UM)>bzy~>e)wm68e z{!)On5f%I2&p;9GwXuIu3X=ugW!x?Z0Sd-ZuHRetm;ma6_ih zFnXFLu}vf)77^m=R;Tem72=OE-N+sFOxA1&{1WE9MZjod*JL&df>noBH(M+=# z)QVCJGOBTLZ0(3g6v8DvKdMv7rsjPfUmjZCgipdx`W0oJK;(0LH;SSP3)H1$m95{Z zSPaC8f~lf`Vq}vM1X={q+Q|%fhSr5Z=1Tz)ou!L*ngMl>7Uf2}h6nv2cp{29&s$P} zsL;f1Ji}n7=Y6-%*?#uUk%TxKzDW28Ju4m4z;E`o8?3p#4Vz z+zw(Tgt5zXvnghDD_Q=0NU?YNST--ppQhba95FFzfDq9rLn#Ij3N|)2@JxOlI0GWt zPrwl;nt(fOWbaPJi8^tmj?Y~f(I{VulsI-P)uSi?u379qyM#f-@a4xxo`0mIt!|&+ zYb}@E1l=U&2(4Y^f2&AB&7;W9ypq0IX2n4jY0;g7A*ICUw1Ol%#DuWXFmbBmzZ_Tp?w~G4Izl zxd#@1U0s<;JrZhe@JD-a6dEfAT}!QtJ;(IPI(SK~+d*)ds<^n7uJFEfNcHKfG7q^tmY>^e@N5bHJrd z|8VSyTL$5iO>Z{;`PmM=D&k#2@Y3=6l?FqA_yuCOZizh}&&Y2XLP(b{r<%g;QGRVZEFki_` z5QZ2@faybIOH~P6v_uZ>r6K!$)v#kj{xJ%E3~~?j_w++hwIz%}6+ws~)%-*UycJ4{O z_T~-CO@FMwcLEo{DBkMIMJm$47@Vtn z=7O8r*y%9rn6PZvnY|!)lMjc8R+bAx!j!1yEz(OB+n&MM;A`aB;YkWKQh+rChtGW6 zf;_NlL@b?_VPM=?b$#rutMsu&)q#geK^XrjhL|*KS$qaALJPDUBs07Le5)}pg~k3r zmIeTX7HMgCA|fI@6Tq+L|Fnixx-DT6^U&D%RryHNce%2+Cm{c08QGH?CVQsaZoHHb-~_6h5nlk*xSh2xE|AOSC3edZ#|F zz|&n%O=-c|j+wY~JrbnwVv5Y^z%!k?4gMNlpmdjB4HdS+g}@M~PXw$d(4w%a8&hCe z_X>}$VLb0GX^^NqAER|{olu|e8p`*kZ1$!5XL%Nst18XgKX;ASDi*?CnL0d<+YlXY zcQb@Gdxybm@<$eJd$H(APzhy}r9GECGyC8gbqNbc_}E*XP#I!+))T{$q6WOea2>05 z@=)HaN1=iCGkuF@z?ej%gxyArDM|--0Ba`7mVgB z+1|Kj9ryAR3W4M|89_HEPR1{Dm>at9ZgV*X23_tcL+L;yqgu8IPD*4F5^-$TrK8~I zS%#NR4_E&!YeUmvgkJyeq%pzqU(O)MShate_ybY5&02&OnAoh=E6ZXSc>1|~m^p|6 z{b=J7=-p&3di_r4&&PfBBt|feM|yfzv@c(1+trhWxGCZBRMpohS+X|WmL6Bhak@Yzi=Y z>zgT*CegW^7+{1X;airC4QEYeQHt`X5Yeq@SO=suy?JIl=i*>l6)m2Mu?RM+_^QXo zsi8;1Oi$Wy|A^@cl*!wha6-BMt?8g1{3tfHsA`Oex;Szzt3 z*OzUT`s=wd;vw(^{YN6UpoyA%@2}+%%T-6idmP;*&I4jvnH07Q{hiZh?vqsz8ew?$ zm#bCQLcy(JZeknrRP~Lnig%`?Xr^3^M0%Qjn||1!jlh8e-W4u40ph9>JjvE zM&5ep#T(}bU!TAKj?7+9dbA6kdgCJYJE7Gy=o(#~q^oaZ47l9;BgK33+xK2zQP=Oh zDxU5w8;|PDlKf}f*D69-DX8%fasXhN~dz&c#_rtHposFikg#dd9@Obbz?}Gqof$xtsAHer=JavTbKtKog zOPjvRSI&SRL*7AX)SYD3Cbck))W)p=`6_=-&(O&^KzhGeT3J66@c7?e2%WhG%$VT+<+I8@$i?3aeIPuj$?*($jeV%Q+`nLLAJ%Ex!Htx>SZ^En`4a@urWd2zVn4IF z33$rf#$;Tst@{eizP;}Rr{wNgzuBzQf1(pFS6NDn{m z-1kh~?Y6YWy|5$o@jyi;$6Gbww`Xk3U}k}Rq6F(yZJM{#e(x1-yeAPHEb*kiisO7A zO*Yi{>>kC@(KSbD{z8i^-L~u<4=DR}bal@l51bf=8Wc#5R!U+WUY0L|eQ4a~nk#?{ zDE?-vFVT+3Q5p2t2iL_dR6FGN?bA#~?FhWZk2fvPtfylxOtsoJ<`J+uL6LD#Yjtt1 zJOq3@JTN+mx1CK(7EL<#9XJ3+nKUdTs|=$Rkar$43(J^jiWyMZ<5(_a{3P%3_fGS|xPUZ_jBN(d_ zMRNpf0f1G><1pRA(%Rbd_~ot^+?zvkwUAm9FC%dr%e#)BI}+Y!oT;a4S&68~&MFZ+ zxKED-9c`%2mnD;yYL3kKBIIHa%*8EcUnWCNv=^$FwaaiMJ?e=)tGHi%)Wj8H-$byi zp>*BZ4mN|ZLRb&eWf_MA$!)_jKr*6NmgDDt6w_xC?jTpg6s&q&zfz~yxdxCb(IPah z#Z{jQUY1y3IR-k~?JbbnGwB3~c>_uF00W)s)^(dexesg=;WU}PX~4hx_>v{j@U>;t znIE@~BhL*+Cw|3;h?z%0;!T@coPkPM~{CW6@-L6 zzr!jI!oYdBB6=uZ$!nqtJ8y$xYVl|pcQi&9&Glgb|D`3Uu2VjCxGl>YQCR6vrVomP z2p?p`rm@0}5Ja0*M5_>CxbdK>Na^WPyo+Wee8M^Nt|I6=tINS8phi|Ll{iPDpqe_) z#?oENL}dYCP!9|7F7FzhhV&$0*fTpf_dUsZP5IM5-;$R9SvcTSG(g-w2>?qk#m8vp z!-;evZfyr#)Cw5y*JrG`xp7l=<@yyWSGUqp4Gv!Q|3}n2hgJH1@88wbOtx(|nKRk8 zZQHiJb4|8w+nO}lu1S-d`rY&Xe2?e(zumEqz3%(E7S8oLtCGqxJ%jUjpq5!QP~d1N zFc=N$HN@!P$ka7Sln;~M?lsr*Nunfwp$8A10~auDi5;e)-RbxeU` zQjrO$#Sl#_(Dn7?Ix65D9a{O7QVQ&CzZ$9$LWWZ?d&0Jf+WT*g-2C?X#$T>VV7cG_ zYH#n3?9t1yNZwtGdL3sz1-=jBe{+L3h6mOhf!`dkfNS&n%QJ4$Aon>dGn24Py`rVI zxg{`@RD&#(;K7ea>Giy}`mcW{Kx{(emXJT#N$st@PrY1i{IdOc-tMAaqa#S8N(GAq zk}i$i)z|fj*6;Nz=Zl&{g&-N&R~)%s8^W%YjoXEWGlf^2tcb%+ww|e1>)=xyxy1-v zwx&JoL2$Hb;_#qgWV2AwJ)z+gnsTFl;p46i;s}dUg5+@txuc1ybl}^QzCMib@G{D@sfh(59p#ZCq=77%-x>=o zj2#jT(;KluDzX@uo1N;=RSMLw6RhElR5#VWMAhdFH5un0QF6EcIR2~q_pQ5>e~Pi| zo@LSxN?gh)wUNY&a*l3@!)$eIV#1?F0Ln0-1~11MgW6;XKd)&-TQo|vnM7X$6#!AW zR)v!>1PR>b+UXvQKJt#-7jwUFHn##}CWW%kFyJZpQ^Dv#9}fHY^37L!@`QZDuN^NE z#Yz{OomjJXXJXuQ7L!ifd9|U)}5VNzh zUEJL4q=0UuNj7}Rf?=GIC{0wL{9;R_=0ljZD&FA7&8GU(z>aJY@{n!kni2|FzLwc1 z4a^=TlfP0H)K12~RE}lCzYzFg7WGB0X|#}=;XCP>%G$)n3!+rGjDVgnh&Vfb?wdyBZL?kC2b(fRy#eQ>}^^~5ihLd!ZVY~=b4*0*}o6>1a{G-L52QVM*u zp)7eYhk|5~kkuAGNA1AnVY$+`?)i3}@Xg9T+G5SI{a_UdrrjEFCR+cds zj^uoMAnA9S<`)SV**UyDIeK|}KOa!>j|29aA5FWkb~}OpX+A)0D_GjaO8F|ZyTHJf z|Ksi3GLdp;{4asKB zeV<>=q$Jd&@og>HgP*3qtvW2MZ+XKSPN;v^5owe&8>e&p7;fL7K$9O!*-U^bfx`U*kB$Yt{VRqJTXwzzG5HvxJ-FbqCdN^F=RroK-E+ zGhhOHgGQv_+;}E=^;Wd$h~_ypl>Y1%#72@vzt@yXZ6#3^(^@}|;$&-^xocZQS;me$ zC)Nzgs2?dP%`c`FxT>F2_|8mUhrdHq@PrPbIuSg>m0C%7o6>Kbp_&h^t*S?HP+nk> z#Wc3B#417uT5Ebp-NZBYj4WJsa{b&Gkzttu$BCs zSBp<2YxWwQ@Cds$I}OZTR{~i4FMp{BaT-*Vqpr+RC0H`Z6D6+4<^4eNez!^X3xpik z+i3sI|KMYoV`5?)0CpQ9;rFqX+!vSr2lt#LbE>z!7XPo5OqHWZLs`%buDl zMUMJ4IGFXI!89iDA>E*3c!wL}?fMD*^ZwWi-(p@xNF77{b9$M`kfB+7-^y3S+eRWE zh=4%n!5<$Zs!nj+F&u5oX+30}9xul6cQ)jM?r#)Ml*E{>iaA1Gyp|%EgH3CZo0lTJ zl%RjevV6J|2;eAn{FlSN|2_=0NR((Q?F( zT6A;sQm${`M5WnAa(Qpi`MW-#!9FhD9-n}4r*0f$zML@d;&9Kp}ylFNBWir;bId*LxkhWUcWO_7Gg$yeZuPwDufy^X1q1V zwHuMii$%Y;w4Zaw^dkG*-P+3iJ~gs*iagivl^SvTd(;XoqcPG4eGR~&Ta3|NTE2QU(N~JZJwU%Lx8`u z@p|%ij3asJcC*arG8~@eY+-N_`e>&mXmqhAi?&Hh2JJmDg0d%ScwUSzw(!w$BTfu9 zE0nm)s^vG67&hAmp13RZ%#|T3 zhJCD=T%cONcL;`R$(M&_z%Zfn)zZUgLR& zJ(4s1x?J7nrB}`?k&urIin2RvLP(}muK+q9Krws^KoBOMQot_h9@r?jQyRIGrBJ2C zBF%L4KGw4EKd$}wo;RHFk>YN!^j|*#Ajdl5y|w#9y^#>kz05mK(rT-Ak5}@q&=ASY zu7_q+lgkFulKqcBEij||a-asNXw{KE9eOI-%k0(e%*W)!fa+Ka)E3w+RID`rl~GD3rPNZF(M`O2LzHrLadvRDKEbH(RW-~SV^ z$9cw={ApM{tTg?rS_C&o%V#6RVyX0fs_MDRb5C%+yqozp78NK_*OTU&FnMY5pDU|E zZuMiFy)L1-@A`UPmYysRouo->t{x0#VJL_-PkscW<&Xk4EZbGxaBZ^kKGho zSv=;EkVKZHu68YpYdPsr1-e<(R48``=i2fDv{3wB$8*w;lQ%roTPih)puC!a3|yQl z_Dr0%9LJh zd0FIYNzgDdt&r-j)06*J{?ZNAmReMRUMm}G==^wlIpW-Mt0f=aSX!-B{;NT)ePA%7 zxpGNRUCTquaJkx??n!DFZ#w+p_aW8R<3Q%$9|Zb&O4k;rGmHKY%YPsihG8W~#UOgH z5?pLkOZ`my za!rmY48VHT__l69&6=avS2fwdWasykgLPJ(fHz>hWqAqC(DNaqMfdyW+9w-&eG2@vTwb3{f4^tfE-Rbyk-tA( z?}gR8XRQj4-INA&Vg;67zPQVQ3x`TG>(cLR1lLt-*1QmDOF99v&%MP8$dVg*WqN6xG`!uB+q;;loX@^*`-ikr5 zKH+LQSCKQADP$o%Uiv_E;O~9LU656_o$-L4?Y)NG!6B!;xO*fN2O>&{3R&s7f)XkC zDn(Q98CFY~#`=fqJZlgWI>9KZm8OL;HDna!imCqnw?fR61MjQ1$00KfB8YBXHZNcz z_P;v{ge-IoJpP+YHi}u0w{pgf|J=|2t@8@y_c_n#7Z?YRzIw*-MYE1iJXuk4D498+dbSMDx3><65S*Br6=HP ze`}}-DNB(UmG%^xAg!zDPEeU9D3Mx(RCQIf(a|&hE!>a3gcGPrhIl?P(!62=F0SPY z(RQP%jW)0r+&@deKa6zAKXrw$b>MEdWw1(z25CqqHsJO&R>S9aaN>yAV*d_S)Vw<~ zMvoN?Tblw~M(61xB&z-dp^bB4wd!tYh0{dx70R=)TqVe>*2cpZhc$U(w;0gIUQitXD;(fH00_r9{_oGW@r2fv zav>HsoG;=dDoBWRgr~6`uF8=6w|#CuHHjF%jbqCPm19L*9ucmnsL9yQt9n2l`HyP%}l@IR;#1YUS)x)jnBO3bzhRIyuuG4 zSJbn!4$vwKO^YZgf3g1S5>e+;4ercux}myQ?S*a~XG4~#eeY#khXR@IMbq})$?%lR z9A<>bozuo|GIpM=#ZfdP6pZJ zPu2SUcKy1MIfR5Rw;`(LL#r3SoB#(wo{+#HH$LcSYr;M<%pL|JQn(dPQB;3rp_4)> z$5t|x?JCMZn4phiTv$sjD&`fXM=_l3@2tGJLI-53UOD2(kpHRA{x1TAp{UnWQ}9@f zdPTLh_M^@bNCdwND(R-DY~n` zQgSFh*ricrcnOoxz>H%-cQ!3(^T-ir!yR^9_WKjfJ-ot*;KWXg{dQzKA!Q6BsZQB1 zp2IctnEgwfrzh2+CLBG8|M8deo4|)5AFD&gEP`IX30uS*Hc3bxRnF1qBf;^Pm-so< z*m}CeqsOZa5uD)eVCPbqUu2Y5!rhg-f~e%NFw#8&T%`7mn`IA(%kXHfEM>wh8p?|? z%Jb@c7gLK{ghx2+v2j%h2KCCrcLkbG8CGN3qFCz@P_O zy&~i$YR%jlLJ2Me1wsmCJb@_zMU1~xQ#A&HJUsY(<(b**r`~Mh()b>*2{vWFee1VJ z1LAOW=Na&iFrNS4Vugt#Bg?(rNFStNAJ9PrEWv(oIR*i!OK-+D#5m)dx4SP-m)m}5 zi4n+=ztCX`p%?|M>ncYebyY!35aI$01%1&lDk^mebZU>1N>gd&ielQ(d#M;=O%lSz zI^fbtGF0c9!R(My%G9qL*jdJ7Ag-2BV{Kqxo~wDR_Pzi7?PX>5X8(%6zjXWY7w>i& zrtyu<%ys{uIa4;n0R)jWG>cubF|f`qHk@s9dQjMjbUi$;4c(oAV?;JkhBUb4!s^~I zx$Z<%8_ry!rL`TG>-x9hoU-4BL%|5AbnG&p_nqTi`IJC5c3wx`>d9cQn zNJ)*t`$m3Jj5@53t4V|sGI6K?c5sy(lA_ptc_s<<1i#0}qjQC^_e#6%dQ)rb!q%3a zd;NR#Y|ljB69lt(flquC%sK=;-4x)?^`;=no;R-&08$!Sxkp}W38j94HbqV)KFwhF z%@c}nkkK6;eMFzOMdJ8)HvH#i0Kk?=L;*(=H8nE`5S#;^vNAeyO2Mx!n1C z#XmMTM{nQ59RmtF6e^yff?yc%qZ0bLuLWweo?loOs@Xx&ck|c{&)wNOL6;6?Q6_VS zfAuU#7471XU%`Is8?_K-!`&2k_bE=-8Uy%?lOS?3OeG1MQN+of5V?7w;p1)pdj?D= z3cq(_d3#Uc?2L?EfGrGk&eM3kA2#kr=t6ev`TzRTt4Vb+v&N~xdc(0-nBg;jekjcX z3}pC*<$Vqtr&6QVb1b!kIZE_uHYK0i#oj}ZBdm~ieQ6>|UFr)e^J#?^mjt2x)#E2t ztuTa;)8s6kR*#sm1tbO6Vy_Fu<3NsNZ`VD-KJO2*JsfV~AlU01y6TP20KAYS4n3Ff}psAgLjVAsv-G=%4_la!Bl=CZKXHXZl@SVuY1K+VYh{6fal_ zcUP-T3XQ=EwueY>9ij>L4o&$K8^B-&Rwh01mn~yUY%y%a!xWi;wG-V*0N!Z-`6zi~ zUWGwu&|_v~XAd{f|MST@x8n;m?sU+};=e(gWp?xqYb=B#AtF|JRZ%@f4ao>#9xbS* z6Q;+ZKy}W@nE~CBL`e{`$YD>f7upXiI8O<1rB|kFV?!NE7*g7i~u=vhoddr ziX%)=0N~jhvg(j(niwStG%5H#M%ca9fBKxAlHo1010DOF9pce=qSD4j=k;S^qt&;@ zM}Lq$&j)NTs|!M}RbJf?EK1pZ1q?Xj{l)Ip_rHQa?Lvt7ud#c*o;$xOfe+R@gcVL# z!yh*QGQ~!MTN91(r%Kee^ty7${>?BWn{K{5c3d*;hvg|KMCoC`4l!?qI@r}X7G`!{ z-*3fE zjgB~8Tz9MT(4%znJ%i-CE9V6Suz3hIMX%`&!59X%rsXD&<`UIXF=5f+Fq$|-3OF)S zA_SX}WSYgrUOHZ64ESh}eB89{1LSi6LPj3rTwE+qKG1U4MQW zf+6y5%_iFC91AhWD>E=mSRrYV9~rG%V}uwDkKU;^d(lLQ;}@Bt)K^`PRAETb_{ z$^7;CSZ-y!nP2#F&Z^eDtOKwUfLTS3&#h!;rrVbNp%$k9{&?Ecf_UzMdsxj)#=5#j zS+bCFP(acC?dSvHuJ{9?v3^H;&&DjF-;XPqI0r{R*o1Ysg5}Jj^V`SV52laP5mCR_ zhh}d*VXbg6M4Ca{C!UMMx0_F+&+?pKe?Q?as=A-a6Y});w)-H;(~&N%c96_BCOBQP zffPL9(~ttTOfuz(ct-Xwv)@APeInbHn8{z4rOI4vwVR&@U`BU|x~@rb&VNId9sdOk za+tmLDT#P}k~cfuS7w(keto}FmQHS?3-w<#y_T|3@gtCYo&r zb!k?z+LysKxANnOx0NXL>j?*M7bo zAn}bJe!Qqg<%o-DNlXsJ@(gigV1gLbDn_xkLX2ya_5I6uv^0J~P_ccdE_Se;etJXg zeduJo`x)s=u59_f(;O}H6~n^z%4F}2N!-2F*-74AV{e0mXJ7LDcwhdmG@fr9q)vI| zJ!BhB$=P9I`qo>eHNJmb*>N2xu4HM3sUvm(L+4m;0707pDyugzkA2p1Rg!Vf=5Ll{6}s=tTCW zZ{OWgj$>>qZy*7|TOA2KE-#YR?)A(9Fbv+-!uly<#SMy*ez@hsuaGm%G-NYT{kJ3JQUorrFl$6|j2=hoYs zfbs)`RsO)K#zBo4G!6OBRIZlbQYm=)=c#VLVD&F0<)kU?k7)TfT3# zR5|(lDc}b79U1z3cPQ^~bo%6TxX~#Z846HK1_DxWOpt4Nfmj`{PjscTI}*{o{zt-Z z#rFOg0$JXmJ_o`&65uMBkS3x69;U@zG-}%?s$+em#%su5Mhqy6s)wj~+_?L>Jx_`c zVtar}g_(y(iX-dLg=hK;p?{qAgmITr0rC^@L~f~MUTt@$JyG6>03Kfd788s|<80Gg z$co8vqn*x*_wOxIPs zp{k_8D%=Ubg=oR=b-W?GMuPW&@#CjwWBHqudchtxmOh#CfLaV701w}Y>7 zKT*~_$b9|fi9T+N?aKpqL~Cm-4`cq#z2<|3>gP9W(i#pQfGNMf10LGk#qE zB|7@}IGcpjDvTY`J3d0lo;2jw|LOQ_&gdJ2W@{*)i5!&6`v5rFtUWcKV?E6bS@=%r z#&%g5OK^SVZ@OaQ_dOu*1m)k90jfj5pG>)21-S8yfl1EL+jnt>=#~}^KraM{A2$Dh zTLLz#fKKh^X+M5pdD(5{uG0$_x=O}v9Ao0`XwneoJE0@Z;iN_JVCpA#)2ujK#T(($ z`cic1XO_#1X~|e*wNVV0nT z1mv<$6@@H6|FmDe8nXq5bb#T3Jaf%CVKM=aXo<(E+8@Swoa75AQFDK^;3jJ{V;2mM z=~{J$o9MA-2`UN}@B|kAl#ON*RvYAtf4GB|WI(1D7?J57i|pAd;W&*q7rwFB^DYRo zOH3BDD4K`Ow>%Jj{EywoQcB87U%l`qjhGyi{ZKd$v0~5t=o*|nJbie=74S4Z|Jw3V0%gY@FEgDzLYHLgD>k}!YQxiZSmJ83*GlaU*w$zpQ<@rkl z(nwOxa>N=vtv(F6Qpal%)-3_Z(!m&1MQFgAGOp(I7lM)x{G1*89+KGcHDn$q_Q+vV zoW<)tf|vt$wT%`x8awsA<>Su_#Jp38aXD6A-u$xiX6BAE@<~__Ir4QVm*WNc3_9JZ z<~Y6XH{V~!9;F!(2r=7N@*ZH6ZPetD20@dVaJEor>t?*3x8#jx)3{7%82dtMV0R_v zM$H*F-ohp&8s*l^$gq_f)8^HTF1l1zCxHByYQx3I*_*Thzu$r#8RYtYyY^5AoM;>I&Z5JQ{r*wT;99#P5n4ttFJap~Jf660h*_z8A{MYc@K zVbEvt6DHI&j;-nLWYV6AYE;t8iw6e>2iUF+B%V7*LIYvgn32h4J?myWH{i)`r1Pd+ z9LagHlL<^FNNfWEIHK> zR+(}9*=#V;1VsxwIc2yCKtF6Q?}n9OAWcj}$x6s5B!yU@Lm*fz zGd^S1$R3Nx;#B`W@Sq*<mU zh`gLGB)P2KR=5jh#|n;RIbA_APT80h+TJIzW9bwqNy8#sRe2-^98xD0Vf5A!sE#-0 zELrmy1mRF!TgdV6mtgv@@eDx4H*9in2F0quZ@-qO(V8Y@MO|$@!V~sTg%~27--cZm zn{P!;Y`~tCpc<=8g62Mz8^3;eL-BP)8aJ+{vzWqqdV1b?E;lu?ot>YT*VK$0 zIt^C_V@5-1Dn7rH)!w>^l6?-A0BwFR115F2dj8P*OhLmY5m5q3;MyPz*#)M|*odIH zSu#Z`it(Uzw3A86xTvZ8?@gwn#p`$l#Eh}F=LN^}7R-C`CwbYMEgV@QBJ%+yk&wYG z#KaL0l#M9S!(&yR%5A4d*3h4WU0hw~S63x{eR;(SnZJGp-eSfxh}HHV@kj`3ey~e=51?nono4YtRR`ni>Ddg7V>m4(elXWjI!m{q{w_TtJl_UhETi zV`2o@6WIv}%oj_!`6|c~)m4Oz9uuwuv7ssflo&E@mtS8We3oR3j%hl&K3TtinS1KJ z|5GS#xjClaOGMGk#EI#e~hFDIcSjRN;53=gGa;K*P^8U;NF6 zCAPrK5=6h-#jLmY6ta!S9M>v(TpizTz^S=eQBhIQ(2xZ9sjq(B^(dEBNNH-~@c9Rn zvmO_aCZw`rbpA7y119h#6&0}IgZ<}Jychh-A=5@fY(p(yMbcbA7iL}k(ESlH{N(#} znM|2qw)9ROKV-x{;m~mKctePoqzFii7^?2&@@g($hmxLj%v6=*_`G+kgBI0E;9tnF zt0`kBKau!DH!k55m?x+nI6(3i8MNR!7OzQ6OAHW2>|7#17&L3`UplI)0?Wwxjg3ib zYg$45#56QCj)ETbe;+8dz`qkUK10HUk&%F*=`8C+Sp68?&o3$p0iK;BAeT8KI(gUZ z!-7zqS0IHAq9!FVSYn&XXEKx|HDN&}@j_tFg6CSO4)Ng|=z$KRMTMDwE(qWqjv71^ zK+ap=FKufJ%m~$V%oX8UQG!&%kfr3OOL=Me3aU;evDIeNB}0cLlO&BI{M){1gsUEq zIZnKb5ca%KgQ{0+0hWKo{Lqk~6=av|VsC-nV7Rs}4lGe4WSKa}{tU;f7x{0{JkTz+p{ z09e!HY_a^xV;yH_sWkfZ^tS#w3W8KHG=MXt<{W$avrAH-Fx9#O8H-wQKnbK{$ttsX zDGH3(oGX)NOnP<66OKOcd^Kdt6a`^NoncH5QHj5*MVK8 zUT-5TMnYTBrGn!%ljMlvxprPYLcbg6_)D7o#w*R}Q9O}(V(#(JzJ$pQq-c>M$f78c zQC`v`J@gu~VJBTV1t_2t#Zed+0-r79&$7p`;}W}Tq)Mel!C>W*Y9*$ne>9&?sH227 z$K7(gFQ8>(H~)A*lu5aOODVgkh)lV`jgPApr5DGjQtcq1*gQ7uRSYQ3#!s6Knl&b- zrG-~ixVXFj%j?FIr~s*Oa7FO(q)3_oD#H#WR`9>GY21lFGipd2oiK$KBgrO1COAIzORm`t z8u>>ic)hRpdQ)a(Nu?$AKF@6U!s&wYPTZb5!7F!taVuP_i-N?Y#>wO^y26PVE{Y;^ zD!}#3T6*m8rt;dRZ_Fkn`$;h-Qzu@C&1*)8n0_HJ>F_HSP%d9Ea*yQTA~pXO=(XSi z*A3rWGb7w|Pfls1yerRAOG^BH3#F{8N=r+7?bThSQNI_Yv$0L1#pBJb;riL082^4+ z+O^K=w~Ea%^tl1kSS^uvXxii&iU>-$t3&9FNy3~ffj{*?Jdtm#i}{}}QK*~%3sh#K zn0S=3iYWTY`F2^!0h{FOdzcmj4;Sz=TYpVL!(|@z-K6Uy?aKLqt0|}y8W8{_`ky)jsLPz*4UO{zp zxB#&b7r?;Yf)im?&h=|Zr(4EoxICi3p3T^vl$71;N7^2%SGMhPDau@-JBt{j1^z<} z`j-_(nuAQJ1@8I9{??BMJWW;RxWXtDXz@8Vf~-}hqdN-ddCI%r4WId%EV-j-B1iRk z1k*SpsDlLO_9w~eVN0tlx*V$#lgxQMcLrBjxs6Yv^sLR1;=8UtXZJAClz*M*oYYiH zp9BSMz!ay+pm)#W%`uHQYpSgeB-Ik^D=gultBN9rTG%wz>^Et***(kH^*9lpj=TBr z5zStCCaK4@qfj^w72^sb*J;Z<38Ubychn=0>;c0Q111qH$`{D)l8Um5AVpLdI$T3d zv4t=~iimDKASYNdG7*eQlFS&F$>#mjWy(c;H#BI!{}?ttE)5QRm~C$JlnOs)4Ox=Z zB7l+Dm@P`N(NdNSU9B!lG)Cr4I+Gas*QMKq+c)JB89~Kl57+CboBgqdn8`y@1_p$* z$0i_zA=F6_g+w^)S+BeYf3 zP8}afp>fSr1u+qPPl-PtNTdgFatVMvctA9Zr!uP`j%M@&2JMLI@Ed&02v^G`n_Rq^wMHL0Ty^8M{9~LQ zAq!aJc>|H{3G5Ht83{|)i3ZG=?`_l0d?(3pD+(TPD5KNiNiPYB^!+`k_&*Mo!8yoE z*LdG<4hOsRwgM_nBS6sio5X!+wM1l$ycxjm{A6lMqZoRS?WUd^Va={eXLw!JPF<#k z4pXG-U8x~q@xUpPs7G^C-0@b;o{Kk91?Ihzj$ZO)Y^7Pf!^<3s*KC*OxP6Z2w~jhv zCo_Drlb?pz48OA^j2hI zF_f_ncKlHV^PBsFMySl#u{SL}VAK_2_QWxYpeMkuv?@0@zMtF>+ibk(LW1mfi{8)1 zAJD!StcBwOTZ?RRoGv?XlL2w$q70@Gf;feOqN=V+%Jk&XSUc{GM4y96_`>qedHi~F z0m}`bg69Hi9*!&qJpvgyIl_hstk-WT$N?~4F;F3x`b}jQ!PE#BY_qbm%FD_OMq+Se zvN&u9mO6hCJ;ITI>1xW+bD#<8V{7vZQi+?q@$rKcNvDklh}7nXPli>{p;QiST*>f3 zmbSkm5f|WgBv?j=i9{He$HzH@NC0{I*?884(fPyhr#LcfcqJ{Zs8t)Y;V2C3@CXD} z2~uq}^qbB!Br>|Q1Vz1LR1gL-WK3B8F|s&mYQW9eyw?V=UzM2gMx4k=<6A^GR!5B} zs~0WObs9!UhLW=C!3%?29kIP%R{3@~; zdyXdrv*t@TdEa)20Roq22jh)!cu)03cDVJ^wDXtME+-l?a*W+?d8@Gr_CTYxnRZo#0QGsYF#&_{b4*QEl_pS(#>Ai={20|$2vfb4`i3RRyRh@XJ!l7}l3(0I=wM#sa$nca@jpyQc`kaJ*` zfbN4#V>7k{{}S8}c-nGY_`m$I#AMKN*~-eP=ijNQK%_|?87#8IkzttF6|p2!6JLbZ zj2m-tb0@`x&kG_1)k6+I=)>7HcaOmJWq~SFUMPi~VE`(+jE7hzSv5d3{iG zyew(gsGe^z0F0`EvS{!Ub{`BZWJXd%P{qW|Oi4wBZ4b(My@DIR+_I#t1%@CDorgIH z1xIu#otHZ}vt$P5NA`)gy3%?~0F#lb9P&_^K~i5p96z?9{V)z}Qa_r?)BZc_lMt+0 z5-@*JM}~w41qh->Qq$Jrmy?WJ9VKb258ErdPD}$2MC2&e05Pma%%}C$%#!(iq??t^ zVwD`L<98$*{JM+V_!YXR`^GPGE(De1Oef7lA{MsFRJk9+cW)>AoGcV{p#szcwYi>n zs!R2nVs`oG9dU|_H=*n~e2W51_&7}tthj28DEdr7)CKUFH2852BK;N#PiwsD#vD=? z3^k_yo@CvDOb|R@!y{LdYz}xtrwlopn{k19pPYgM!Hbu76a0*BRzcMXR#bJKok0&g zLBd1z#Pk!)Ee%pOGQpMX2nMJl*;Zr?nrUNZ~hQpSphlULIV9H ze49QDEdo@?NhtCP{p`gNX?oltj70`4(2A8fqGHIyWyD;g>q909(C0kzy{hA}bkSq8 zQpN3!Y4(32`713gP$;A3RWL=DsLSn+0(-CavmSMVsbSI8Id8I#5ept8d-H!2q2(7) z&t1aZ#)j+dw(56fs7s$;Lk(z5lW7B%7*Pe(=`xfGY!l~e1-8E(qY$FU1NhNNunE_> zS6s6dL`+w!z5_2a*!5Oyw8zzmXt3Qne{CCphv{)i%seY7o}Ud|sVt|pFDM<1<|iJN zgI`TrNFYx%AQm9TCg$eG37!wA5tQ!EQeX;-6R;NN45~3~)}B+DGa-mx!rl(M`go;% z=>EVeZ$WH1D~kr8 z*v;&C^XT{#5`+RI_2uPm_=v2+na%fu1`&GKnOPm>m6e70`Gyw8o zASeq17?Dp|!HIq}F_U`zxtA`8V8q6mUzcBT?FxiOtc>ie)&729`@*WC=jg0V=l}Hl z)r$68;W)b)Sx^m-IfV?;5)kkSp``qw{}zQx!p&{kcU4aeEkQ{}8Qhn=K@VEM*RV0e zrOom<&0lG|gyS?|!Y()^`@8j;J}q;>{8i0$&Vmh;k|L_6hDjJ7-q64T|eH)&0&CbkJ zW@BTU+p4&ZAI)OQfS<}q8pJq{qNbl9bj4dHmbB4P>0^g8S6KfkTKKI4*^nJ412}>& z78@BVO*%sn;7aZW@{^3WeyF_;-EWj@cB#&Dm8`Juus<+FCNFaoqS>wr@y`m96H`LF zm}r9MGfrxtqdE?I0E-kru{+J~j z>>VVW>KB?2GFl*njGLYqqRJzjY9vvlKok1=qXtf?_1~gmDl!}>(p_kh-Z0`yXdxH5 zpT`KOFyiTo=>%B*9VH9<52R8MV&f8mezcye=KRhX?O(0patg{zV!JX{9Sv9f1L<1E zKjc)uu*(iwu(8;#v6aYXi2?S#K)(h!X8#F0h@n53eTfw#18l8ifq5a*|DCWuW8CJy zt4D|e*4kYSDcRY+igD*cFntQtB0%!In5Ql$hDvdP2(I5sB)bIt9OUuM7dxAD97ocn z^_i=#GRSmgYQ%(NPolvffgD|vplS6RdPT*~<&Cly{*VoeA(Iqf>(obdbgwR7_YsS0 zHk&=vox2gRz}?XtN(_xIBUNbdbBr&lRhK!JlMe6nCj4_z0K8{RrWg}FE0DZ21nF#j zU*@WLsFzcjJ3UFaMI>gLx`T-*5V_!~J)NgORaKp1C(vgaD(pl=fuGbENl3%@U*rRS zII0KomZG6b|NVaANR@0Wag!(59D2Hwj<9hymz1y5mW8FYPTZI-y5jR}HCk-hkNUmI zK^rbPzqG|{ovHG#`xrGTgNG{Gm4SmY6kRUom&|2(2O?s(W-!@!&?bs*KtnnM7d|3H z4>6GC3JKyUqDF|QbaeWdm{5{Qq3#-lI4}jp1Pq!Hv)bmRB(aYNb+%_IQ)!K5aX;A$ z_y=NDLRVDa)*_Eoyw*?bgq9)Zbh4STWQ>iElTcB8kzD|4Y@lLwI9sFv;B+(l@%(Yq zW@Nm)e;aPgWgMOp{^h~eFL2DFiqv#;gXi}RR!bGpJY2pcQ+eKAUeq)+{fAD>-VZiz z{C}W#1=8ynLxv4U4A}C@aRv2}d*vy3SrJMn<;0`Imq)&qV45bS9Ga}fz*od^8aKy& zmoKV-Eyewoh=E|<0OW6h?WN3UrwxUr&#UozN70X)0n>bZted;(KN6=}e|Lo0^EO0p z8DJ*~;wq>{@%L60l+k*gj&FSQ#9~uK>i0S@X^rEKuoUqt-cXTM;>u+~se^pEO0xwc zf}lYWkX9jov?{*osq$Vi>_wd*LNJ961tShQ((Q9G%mySqIhlS4@+LwjKeHApFeLb;(% z)5Gf6QANRR*`)EXTX=r;+WI^&Q*F@_jzempi-MApB<1AHfT|;8(6FMi^52%!$?xAK zb#)1Nc5Q)p_FajxSsc4Ahz|&|2?kyN8|3_g&)dENnwi+q!vlbg@+g~*FW(P)s5$@# zd3$@?MiGmu2;(Ij@p}avPn=E1@sn)Sc$fMOMF)1gi%0`-hlF&sAtd2xs zx-4j-^OPpPtI(Qf$7d#ltWLy01srrv+iii=QNEXZ7DglOLx{@!@#CMs(>WQk$fz>+ zYIRp4*9j4*-c{IXHGsxx5_))wZg?fQ7z*066+|Vl6VCo;u3A#-^Y1udBnO^o1-o7E7QxhW*zU# z=C@0G|NY`Ly}kF>D=K#O6o9Z6_v%U^;qdieN&+&YXD|>|{MGBvpF|}OMD#jn_7x$N zItmRnprb}vTU#0!K>&;%a#mI^L-us?m=X&*btkF6SIGDCthn`xQ|0maEOis`bBRp~lvP34nUZPw^t-!G{{B{;AHYp$kTRwluIc@c0Y?CMU zJkk@BMu1q6xmN3T`4nZYrOH8|gpx-`LM=43+l@~NGTU+1W=vWiB0!R{EE}$6XV#ER zvJ_CGD!S5(ebQE&`B(VQcI$>#Sng|)E2_i}bg{80U!43|ox%=zavs(ijuP64ulrD| zFA;@WFJhz0tSPj7X$vWcY{c`fOL0vcZqa&BOoAM(%l`>QUcQ54R^B7{d>kfW3#`t)|~H? z?>{^Z`Q>tfpjK?*ft`!|5(IFkgywyvTM3=DEGS>>p(qOYXG}N0(iE;dkg?dX2_bL< zxg7ph__vh2Ot&S#jaLaAlv#m&$`c2-5~V27W^u;+Z z&SOvwgx>rQG1Tui%PT8mq!+Td9cw!}IjvRiWDjCjm6Rl=q->tK!~QCU5!N4S*7%Z= z{V9wl^wpw%;0fu%lb&Y1FMZYxLF zoR#|Y9KkE>fKWn?ugBDdUl=R{$imUl#Cpt8@6Np{D1fBV>P)>y>$*%V#Cfp*om;r) zKR!3>l$w^&-@_N7_=UmNd!<9A?0`32(7jY$m7{R0vC(3do_IxBTwS%FBcf=ZS8Z&< zY&Mftc0ww@@F$d9RJ-^lTvDrfi@N^7pG8GJQuucJfh78zqyeXg(qc>N7<@&vY1wa_jvQA-GQ)WBy1j|TWcxI95ogRJ$o85QWf4SJ#F+3Wgp*C zN@%TXuRIM%5&=;_6-PAonQ?qkQA&|vd^)@@+MU%mf`a*aG11h8GRXY&jqHYw>U zTJXhP>s8d-*f11TG``xOJ#+SdE?a4h)rleMT$z!p8Hw(q`EJ20Y=^x~>z>0QlNVzO!Ju2W3XT=Y!c#_Xp;3LU{h zn2?>M;b+&GjBs$x-==N1M@}>b_7|1&8saEyb=gAJ+U(6`_b6FNMAYJ=t`G|iI0(|% zI1%=SXFD|x`*(9 z;1umCyD6sl<@v;{rTBv#Ss%x(Ovs|4=)5y8pErBfv7w_cewRLk&a^!hC31Q#5)63( zx9o0BIH6)O-&|xvQFIyYUV#bq^vdy(7E)X_rAE^gU>J-n7(u(;t5x2f`;~+h5Xic` zyks%CiSBPQM8&P<<^GNI*S;58|I;Pq|I6d)-=9xm-atxAOEcplm1#G{`#fBKFWHB= zx+91>gX_%BCVpjVWn_$2TRnPop|v%Jyf3x5E)MJtbC*^KVtf*?h{VEdMNDO-yOOeG zX;2MrFhXd3^3z*7s=|KAqyTyV5d3xHc0a1CVR-W5va-awMroZJds?ecjOz-xQ2;u; z@w=eK-{%7&M8cFmXFo9WN zD;dP`ONz`2a~FC(At*6bG|_-$Uansf3bh-}Fa1$urvSu{bRP8E4y8e%A*lc zon^!}T6tq@VX?kYZG?%58Jm+MWSKZ$wsq%yulG{H28;+(|I=5H5~T~$j#@@G+D%-~zu+=_!i%Q~0z{i@TW8$09U znOdx^Urt5m?NJf87j%@+ z97#iiOMxa8f1fM`%`Qg`phst3pwzP4jtXepQBqay2LHkTq?Zii^x0ikbP+V8GJX=JVkLQKC?mLX-ym~hxNcOx|NK)WBLyLzA27rI_IQri zv!%z_xDW-^57-e-L(V)z%32+%8dh5%RTSNihI+oFa3v&q&f$wCipu)radC`D*(_Q# zYkEnJNa4kdzNo3O0ek@l*9{>8TI7F*ESfM?9V7-XCNXigl{5&{D050RMS<7KS^wmu z$uL9pWoqK%xEkfC!{4MOC|mH&iY;c$j%sK3R2vPX3i|LW7m4pQfle*j4P-(QZ&%^JQ8{Q^y5K8mm(q>+M!lBycijb2&J$i*z z9b&oGfyFf;`8NTa5p!q(ciCq6 zFrS{YPSL$PqTQjO{8@nKOndTGnMXq7M*8BY4trWc5`%gfIU=pjJTtD#AqqxUZeYu= zw+V}(U8q?YkzY+lvB|9}v-^lhG$V{r0|gA{KII$p=EhLc};5_dMOYfN@qoB{_V^PsE8nR7B|i^gX&cGPI6K~$l5+2HXQ4lWzVz|Rt@5Hj8z_%J3;M_!YF;8f)CC(&Y+GQy zN`Waxbmo-5hwqz10+6K%1qPDnLZgQuHC;OR9#a{_O(!OdW}811%95zh)=_Cpg7Gi$ z_#Jupn`GbG^7YurF5}L9+^3NMQn;YU8$*viWMt&C)(vp{{{H>D|0&JN)^;15$n=_Z zp))hPDUD~TpS{{vMPUGg^Pl79H=xErB@0|9fR)wiAZ?F?^VW?e4B^LMu3rp;mt;J9 z3HUOtf7>&6FHKbY0Vr8HIi_dey!0 ztcmjRD&cml%9a!rju+h?9Wi<8UmVrr_V{A3n4@0d_HoIsIpfiKwcPAVQiz}q&1 zQBx?c)tbbm)eh4cqrpKrF=dVtl-azY4|x>v**j!T($1@uE#)bTbcG3m7LOwgB3oE3 zE4G%FmNZOE04Z`X!bxD5g5?-rR8*?Xr^vJ!=VKf2hD^n$*>%0o`rMrBdAd5V!xU5l zW$+a-!90_no2$PN@!X;aNx07=K&+r$Fq*~ZCK`vnrh9a8xo^GSKfM}Jsy8yMpU8}x zzv};9&pj3bcxu5wL}rkdhFBPxjzS9ereUoKJ!7ReVj^j3W$R=_3v0@mNCk@pUu=8a zDIj<9&uqS!X3WURX*1!A2feo8fTv$)!#Nb;qF<6k-tKcd76)`| zEP8Jv&d0^`diJWQso_Y(5Ssuc4ydO`@e84t(2yC6?p>Od%@s}?z3^bYvqqC6B}xdC zM)Kxt@dB*J|E!;l+7)ivxHDPSn_~hh>Sg@~7>2T@P~*mQfD3C~B^~++wIgS=F+qw~ z^`{ID4jRfJxsst%P`d9})`hNxMBt;G1^IEIZR?7!tSNat1zVP!4!07aJFllh!9t_q zQvAhpW@ujM$X553qvDq@qNJ#y9VEd02~ujH)J;-B0Xz$r&J!f(gd`U!27FfeVEsGvR-bzTcWtSzVob!)7%KuhS_iccA4E?co~<0Yplq zlAiPIVjsF$I99~0q+LU#{kUUrNr^i@v8d>%DciK!j-&C31Gv7eY9fZ%YQOQrDq=1) z`@kQ}O>7)-S<&$P4xJ$BHsn-dH$%6oOqH_L{h)Bf{poJ1qPW^oRD8NyGJb)J%N)1v z=g$LPxT%-N*_XrZ$t4$nDh^#Qcm@op&=reIthWbVp5Ev^&B-lDgl1S-SbVRkiC?TW zW3%{OU|{FQ1KwhAI)f>@%CIlIQ7mlAoG=#a;LLqv19;!!($n#ANOz2^@(y@iW{(cn z+yd*jcat4lZ4s=vFj-tY#UG!%d~O{6g$DNUoXe(98F!kqqQZ~3dj)YP*qqJpUEDF_ zj)!-E(XorP+SF$%G{$3J6w&W_b=tZ9IyQaJSXvR~mjprBR~1j*C*X#SPPTO{G^^S3 zu}TxPJO4T{V839^Sty&mRvf%;EE9{sj!Wizj2L95^rIUjILFaV#58_Y)7jy(AyE z6P>}o_xI<;-hbVM(2771iYFBJZrfP2X89OB2!0)X){L{ddquJjEhIvsjZDPj)*SId zUg%t{cE~Un7vK1!6EO+q?Q}b@GH{UYE)Fw|p`n4}bj(zIo&!@%OcASlU2=`k;0scC zo+w3`el_mTQj49z0M9a24AYBAKV4ZWs63j_Y6shWX3^)_d}>G@+4~0s+=?n=hdfS0 z!}y-q$Bq&zD#OFWaKWGG_1e7`ek4E77K5Si(O1Z}fzQ^;uwjXM=7Vd))w$nGZAN;D zsoiP!?Pypk~LXrG-^UAeZrhS>M{40u>I}JNJ%{#p5XeuQ~AO3yxK{jt8CR z>xPbMx0BVcw=(vMQm;BZfAvDix_g5u1eVzMy1GQ*uu(1744c8ry=V@v*n<^=TS1=L1jo*i2*8vnE9Y7`KaQL<+(q5Sbk2rm zqofpkQ=w72BWN1Qv%|vH8t;ke#5MR_)u2mBV3!l7hHyp9+W_V7f-crsu9qt$8lr_)OEC zQK{;9dNqCPJy5+Mip`iMJ6>=oT)rXnPrIg}LQbTCEsnHqM*)0Szf_5ORD(kjp?7XX^^Z%5^E z9&zRyEv0?i6TIna9VBqw@qlO+5hPNxvmB??UW- zD(rg}p;rYqBWzFP2o1AQN!maE{}I*h)RE9k^UBN-Kq=G_NOVVFOA34oerd{fr2Qa-rAd zI**+FY~610{>sHRn$VV%jBdet8!`!BOc4y1xPUx<`A#=DDr+35hC}1`l&%9VQhm9pim=MqyT}}D0dwdR6 zEuGyT$HkZ0!kyK9hmtu?0dDBe-Qpic;MMR z*P%hz-|pKKh}c-HN81({zBb~ukc#M^v5G*438 z6dep|@hVmb+zzcU!l=ynk+?|c>BPV4K4T?GQUsDBIIz%!DV~K8x7puZd)^%}xqcty zrTtkiEJO8CFE0qDlB;*^xix32v}lum0FdLqLezA*`>ni6Pd!AYHZh@^8H$)NL!|GSFE_Pp zs63mYC@7a=k;uSH0Txt=Y3z+qjAz*v=IX;L7e%iTYO8Qq#$@N!_5~GME+mv+I=jEc z<2&GGS814>-T!_bwTVeTm~X!r=^(Tw8ulY>G)KtqORXC~dc*&Q5?;xV5`3cXw?K~> zL1b$6&!h2vSXwi^*dDW9Yk$gd-J|XLA@b_XJ&dCW(`R;9%mLpXP}_K1_Aw){8M=*G z!8S_%jiV6FYuurPUw!5R*)Kx`hZ&9zyn0iT9y@6xYt_$z+K6&*T2^IZf0!1 zk_=PUR$@N+^!$9Pl}K#aYsrQ@yuyJ?5ud3FK=$vRqQP;wEgzDm_@K&qqgdYi`c`st z17xXqW=U8iSc^_CR4>8WzQJyjJ3@~Z6h-~P>NjGFd&ie?@utSpawAj}&m}Sh9@`CG z78OqUg9y7*OyY6+&_gtFnXYqnEu}v)>c7b=u@cc3r0Mv1W=X*;aw{>md(0_%S2YPkM!86x5LMIR=eb1k8_O75Exapy+ zokYmpK){NKa2H-=C>)I`;I}f}RV&l?!-yZ7> z#AEd|u*slsoGvFw6i3_4BD~qk6dy;!tWi6}w!|(pJ%rE;(fvf>lNm*!=hDB7|^8 zPO0kNeX{H-`3=)DlLXDXZ>sY1gU-(#0R<+bsyesp#{E`j{%%C?x!dPvWq@shzehz) z2c|QV$LaQWO1ty-cU;1O@BcSf=EE09G(n>y!O}7^_M5Z6x*6ONIjMNBe8~*TMu>ZW zzVn<7QBpCvxEMB)6h4M+qlOUpG55wg$!YxD0%#PQd#CY&qN}w24NEa&76t&Z#5_G> zp`4VH?IJ?HiN>U(tIQafZJ_VjYqrN3vEm$C@6_VB^)?`kb`pTdhl3L(`;bS&>h?VX zq-W0mRE!sg!olWmh{VTISS(oPQiKDS+1bleH=9KM2GbDhAx{bgTFZ*8Ol^po8_7;# zMoO<=A%-U-HrlT%-yQq(Y-Tc7tIq{-ZQSGP;ohRDdR^bdRo^xmD`AAbOldfVwwDOD|G!s167irRx< z$KSsRt=nwyARcbAC~!lOGMcAIO2@u7a1B1s%f~0Ag!`lF%%KJgLK$L+Z!Yft%A)~k zx^(QQ^IASiS<^6u6*nk}>-qCPbV&faizH)-3X@vJCoJz#ajvzdTTF*ExZt7a%rD*z zYF#?tr_D_GeFk2K=>%pCIcH8cHanO1R5CLVylhNS@mZ90Gj(~0Z(t%Wr0@*rH$H(! zBc-9S7^>(){{4VAM(CMa@3tEU%uR0zIISDuB+^K`cKqltTrHztLx1k$l>(mIVROt$#!q~r+t?%afcOIvFXmmKpyWQxFP$1bF?DC|? z?ui{CgAMvhF4cR2c+rw`@;#R(qU0?rvhp;K){mJM0Eitm-{hCDS3ZZ}mCx+Wv1LgC{U9D3w?au*Y78bvi z!w5^5|Ie(afrg~7y(FEl_`OK*iuQHz;ki!JNMxZ;xS{ERgUTU#@SB5HRn&ZiwpGX5b^m*o9knd?bhY#P0Bt*7?(u4RyB=YdG-|Dm7n=dU9 zUL8&s(Br=+ty_JGT|?3aUR+V#T5!fH-=X%amiGRh#q-`JpI>(t7n`ZWOC#i&fk4F} z;pNrL!9@zme(Nh?l>X)LXb%N!+Qte* ze%7=0W$lJkBWiLx=4Z6SG1>hmh!R?9$;@|bgg_idirBK=+8ag|;4 z)XkKw>&;C*1k>IAieJ}5SE!np{O;=Cl@*r%2&o~D`ijiT*~0V8qnK!JqM*!?T$Vn5 zeIwpyJL>NVSk%FqQ4j#Mu&@xu6a&7!=%piKCshXuis_}T0sU}BS9Kz6ilDFPir=!V zRE)6(TB`b1W@p7LENDTrKmFA8Sca*sH$?FAJ+bHRd)xNAZl86)jpe-_n=;u`OP)A| zZ;ELU0At&Caubt&h-P&*4D8j?a-xqO{KV2SGMn|J;1;tIgJesQFB({hm@+0E+Unea z|0_5xCSBgTV@gpjl2=ro z4lD#eLF5!SchRl3v)oCksCclcmlhNFak;#aVdH>>20W&W6V`25Tk2*B$f{5fgA(A=oFT#JpwB9hOT zUd$4>Ux$$&E@=qIP*0k{;S=HZrLJItUR`>j0!1`4@#m2CF z*ADz?%!@~ykzM9T6uJUq-X_p0NZ;YRUOYh=f`w~>&7wLL--E*>JpqJLC8bZ6miwXo z10=VDNzQd%Kl$fGDaZ_~aW}DO<)-0-jWIP$&cEQiJSP!Ixh$r!7{S885bLg8aeex3 zJ}ZX`L&3tyMbpXi>=~Bh9&1 zlNuj%1^zZ+)WK2L8gmc9ZG-JS&?#VHZmvHRPf0;7!S#D$?1Nx~N@iSKfK=7#?mJf{ zy{WH@hTZ$j`6c)&AqT~@e0`6GY3N9|UPcdhItSTLLvfR!ua$Yi9PTC&= ziL?TtcVzy9nSdTOPvdYHMYY4bddrOv`i%t56akH zO;E)Eoty{=qwL0JVwby?l=O#fz@i+L^!gMc){gaNVohuKjxEF6AP$sJ0|Vl#$CSKX zNEP_T{e0LI1U*C5+=vDakdYUv>eZvPo4$wg9qR_y=9o(>C>X5FI=OEJJIb1}?J7E8 zMSn$usJ06e-OnJJnQAhfUT$oZosfOw{6&l)0Xd3H!fe-&lL4jZheGZ*G%*9wv$wgH z_^*C16|EXa-pV7M=)B^5)%RFpV)4+)Ws#awphBU;#}ex0>8faV|I(mA3s&X8ScCHK zyLD-|)9(t}9RD^o%cxZKIGQ!w4{N5d_(=d#UZC^yLV2i@& zmliXAzN>JwF#&Ny%5Z~Kqv3;6xSQJKpGhgflIq!XJX1h0clp*Gw1HPc^6ev%tW5++P?R#kV zCP#euwI-flULFPbDKIe&ctdhzL@nPvb69&#u%fi-$Y{yDYeuPH=c7}dz~$`Q>@P>; zY3xYOK8A1&`C<1{_@uP%=O9{IY~gze_8ONjKxy>#k&<5u%~8{d@g%L#b-U(g)Z|Qxq^GuFXoE_Y{MKy8jQZZr65nY% zM<6HRT%{Xkdf|qdW8lpnCW>xh|uSWB8!1Ik}51v zOqo`jA8U^=;84;96(N&~5N`7Z+Fnk&&s^|jL=$B4C@Cp{jR>h^JSIsb1jXT?yy3j< z#3v@k=g(W}rQRTJDa4FR76!HaWtt0r^u2sFhpt8 znocb($#{A30ZA8ZK8pk`721qA;O`I38w|&y+u&sCnOa;9CRE(mVERT5O5h_xJ}USZ zpm9=7*Cc4TJb7R9JHQ1AcmJ740l^$^0pWk4!}l2}hV^)NeLgR_hvoR0jC{$yPG8bX zrjCxcV%EHp6<+?Ln2wU@jEb3ESbiIoAVTEK2rI3~7T8`gQ;=Sd&})gydAvacFca|D zi-a~|2*4}xtx#B86`jjEN8DjZ7)UdlSW8h{qnp(dtK!Ka*+O4;c@S^OL6WiJ53WG{ zN7Bx-631GL;)MR$>Jg+s%8=zt-#RV-nGj*jd40dTS7H6|lfO9Ohy zwiQkor@@jFQo^i~3pUq+Eje)OlF%J%F?qv@N0l3Y-jx}zjLAq~$*HxQQD!l$ICHwJ z%PPG7?*tU+12W)Q0zP>(mBpxgqY_kv94$3mMA>-R010x<5F+LQ0IjC_Km%q`)2skpkVB=dTCOTG`_g<+X!$g9g+LK$46{yYs19BVe`4aROEZpqo}JpK3A@FH>}p)4K}g` zzv_fTWV05qZZrt_xoEHqa*>dBpA|rN!GuJzi-mlpc zQF9o3s34raIB1r?nwlo`{t>85tp%9xy$eSTk0b5E@nK<9=;zC)9rw*eC054}JG6VR zAoKL`2I6NL3z32tP_-i_1_S<+=rw96vJKB|Q4xmOXIkK4Ob%Vy?$}trl^@bdvwLif zreSCM)8@={di+7@C*>4d0sS{Ez>C2N{AU+gbsVnOWB&qyinW@a)_N1c1##N;?h%#}^i>Hi zxNFb5XcF)?ULVg|Kitlqm4n|+U_J|J{-QBjAkC{43k50+qPx4hxnRNu*)kyCy*@ExZ!c~XtMv7)M&}RAKm#wJC`;!VsOju>`;ujd z;fRRR&3gEWzlmUa=ZrVa8oM@ zmOi+)tbn(6RGe)c1uJBwYdNV_Qd*#6IA{J~YcP)7L0AY)K9jo(nQOVT<7uhm4BT2w z@1N1N&nZ9(_L&xU48fFagt+=d+=ykDXrINfd=m7-AkoUoQDG!d$r=7GkSZ?0@90cQ zOhj6sX}=jb+594g0cjUo_H)m8D`!mV$|KLCamOm!sy=;kCawcf+(zar!*>4N6=j zlomWoPJ$-GC;AF?Aw-qg&&F5@9*=M2QNJ26sIS6;?UMmM#HkT{3&(?Hlpn~|EZQ8GN zVg6ue;zp=HEa;bLH=1^W^1}IIlq_93uXQQdGq7O?05t$uzkdC)UaScQvwFsf?@i0= z9Z~aN+tGRCR?MEg1u2f_q7gl)?g3(9mwqf3ooeJytPfJ?fLt^-F+pCSsd()dPyyc3 zq3kSBU8h;MqQ2BW;L&qVR!5zG z@-h8BFh1{n@B2EGJc>~ghCWI+V<@7+za?*dQsPmOz`yDI@xy&tS5#4dufM6R%>rIb=0ZZCy*XYv z^QSpwhdFEB)JLN}+WmJq;z@Z9;hPp%58i^&ggmdNoK(Qj6;B9Y0$1VdFR5kQ6io7b z8iH}(ol4r(A`GChs;SBWj3ErzlsW=d&(e1ODTh!&50LKvm*Jj%&qZ^CYBc2!36TAu|2L3ENm zi>`q&dcaxWdL-)$aS8e2R%f=e>OcHQRcjPP9UB4u%QmyyxtwDn7NZ-bqK=yt@M1|y zNrg=y*Eci_;9wgXPJ-e&u4yJN%vaY5rp~-Zvoo!u`qt#gj~SIr;d$qCgc^0%Bkg#l z@n=St7O%LT;aDdh7T}mY-nNA(LqSwqYX@s{HRLC8z(~}ewE8|IAI+t|eODl;OH$Jk z-)g>sXwIKkK)@$fGA6785ICmXZ29WF4v|OkKen0eT3+N@OsxqBqq-m8 zJTz`1a#d|Kdq9AoxM&bypF?}#d{h*xvul4bhLgGO+@|mpGNelP|6|9e%Rq&OG;0nD zq@3Dcv4@@6vBlCVR|RN$aBR#3;MRQp%}G$|Pz5$Pzs9tffMw!!Mp%pkH1RX-t`O7$ z&E1KbGlDJT_Bili|b&PN;wO+@HPwO4cMKB}vf`k`W?oM!Ca( zd-H{ur|X;n5!MDXCiu<@;db=hvHrZ#+n??&*p<}&GziAqO^uERh84{owDH0P6&2A> zUec3fW*DO1y3NC>>N4qV2$djQ>)jV#lz58d>mXu<%+O0K^-wD<+n3DKvDYk#hn__- z`yg4&tDCxjGN%kW`ECeC2M1GQ{Z{z`=tsa5WW7!6~2GyafN$>2EjknCh#t6!~PD-uaCbprp4=Q z0XVd16`tB|Uv(un>d#9}P0jcl=ohc`Hz2BAIvYM@OoodT?N!Mg`vH(6lJ}|GCfm96`r{s5U2Sgk_(bMte z+^d$X7i{WxNqr=6gH--?20)3}f}e8l;=IvKml%AL&JA8H=}5Ba*#WQFD*RW-475GG zY17jWNuj@YV@e01v@U?_>|F2qV)W&R{NFna^Te~HV}usi1|L+rNl%o&p-~)NR$24 zkmpSoXuaIwN~?8*1sz|=4V8bxa*lcr;Qvb2_n+kd#3y1PR;mSHY%>qhb(CkicCg9q z@S=hx&XzO7!p4S@iwh@XOdLQwu>O~@TE+V{vb5|xEeB{Cf1&5InE!4O%2%X;9Xa;~ zTP*JS+V#_SRGAdUzAeY7TX!78RVJ!XL)a!MV5vZw$e>CC zc*#J$fUsU@ypM|dk%$?-M6Fl(3=yA*mJ#*h-JW%$4NUg6?zMnNYW=j%6cdsqd(Ki) zR(D8yQ`V&vEe5Zv&ODD(9*kZ?%;+Q1Z$~O@GaLfMq49B3u+$tb@T0GO`In%NtfdC7aBZX|V0j z*}M#|i9S7%#lZnGTTDd-_;%Rygpd3F?ye$azZ}^%Yw|-hIw~!ApK#DGGrM&j84~od zTgcoJrE?=Q`_?oOz7gP}Fk;6`t+j+5 zsYsLg&8#t#4<^f&=STbp;uVDj5-Li%v>Wd|s_^6(J6k5IX8>zy>FEit-P-+1xlKPF zUEBeC*+%n0#pc?})7tA(0ZyoVaUNho`&i!ScI}^F0SLbt@oH+Q9emhWkW1rUu$x{X_?y4cd zNg3M?7XzHK>ejtVhQRQW3f?9$qJ5#YrmkEeS#H#><2sa66T)z_mlG9Tzk4{<7MLPB zUV;+f@Xv{fRWqF@iLNr<`c#N17By@mrHUjD&y$Bl2eB0js!G=-1s?1Rk6|fKGn}HsOxWPFA0*b9`Nn9xE^gRn&oVD zJRfub_Fmg*j060LuRiSF4GGZB{9h!Bd4}X@p+*AqOasXbED$m{@dKxCb8|B{n5RIs zD`2i#OWCxsThcV>5MZBL2o>EA1I)P3rSTjk#ouP`NiARZG0?Z0>U!rdoZNtYJH%W= z@?Zpt5H6hsyzVRcC7aGpyUKbnQTF5Rafz$`EQO@qzo>`6=I(l>*O1NO$V<%;{CG%> z3Tj&Kc6-Z>!A-}SyT=QD{vco1n!30gzq1o}P)p{DILD6I4Ez0Ksz3}$UVB~`)8k_{ z8jNXVwmgZjUupp+L3(bllaB-jJWl%AD02OrbM4Jp5TGl8!%N+oO4UwxaJHe6khOne zjlg&_`hw@{F>R2WhTgupdkb3zi*v{T9j31VMW<}388-u2KDH8zt? zAb+W+5UVj#7{}patT%Siw}wGV7#hn$Nu-Dl%>Snzk2E#BR94>szF6-G83H%%2u8;7rZud(J zTGTyO_-l$#qJ!A3#lH6aIS~Ptm1dMerw>{sdFKNs0ucaHN`JdJd=h(wNaa-fbQvDc zF_jmqerxQ9ceGv?6fMub{uq78KK=7=7R6|_-RAdMBB14_&24rm(Bq}X9HSeN1!jCo zQMf+4l}%{bnPOkek48pptZ&1)_h>qvJAD&msQ*ulezY%76 zz0Z)t;Yq-XsrmDGdb+S?Ma0~_>!Ccssx663r4}>Q84g15>+}m4BTOtTxm|Ur0EmV) zU%o)n)5nX6O?&R!zi)*?^JswK$CQkTRya`R+kamR7$`t&0}O^p>esl82*;mpA3$Ie zFv!4QY5>w{`HZQpONqzj5RivHM?63@8kETg_wHTv*cfc z`dV6A-eJbY$WmJI!7fY5RklmChK3aO zA01*`bz8&UE+in>D{ZnM7(78h0QK4$%1@*$kcs7f-`T9sFm|MB{O@Ag_xh$Xif zAK@!xERtf*=tsS+32RO?x_N0>c*?w7QOp8Ck?o&iJl>bjS{}Dv6O${eY@Kf>(=2zc z{nmP0XM>h5aMCGKf^K|W2$&vSxpZuZO)GUrw_|JwuY7^MyeH({rejkokhH$at(>%8 z$b)%@spHXc845k`WJJ_x6P=>*%YTXqOdx4*lqI+iOVuignNPUBU@iwQT&k!ffn^!% zSDqTxhJBO=n{zq#%&auyKtr4qMj7e>^OAE$diq8f4(Q}dbB_ZVgOM$KHx3TAiN0>S z2=1y2T&f6%&vfc>SfJtqAY1l9<%;$^VCs`7dsaWBdTbLOpQ%@DG|%PIUa4l|f4;~v z_neWIP{9P{zvD9$6jGp-Y~ZBh>0SH7LXmwltlA~J+-BTc-M_O$A>devSc#+w1LHMU z4$}{BKaL!)Q(FXVBpV^;!osK=-)l5}qSf2OY*M&Ev|!*?^gY|^xM+HNVmf!;6=!V6 zuPi%ALd8*9dHyq~#DWGmb7&-~xLs<}bY9$p=(w07{Nxj+2?0S$gDbAuojPhdS{UHu z6IUf`S?DxLzrL&j|TJk^PIACID^KVxW=skT6SeScVEmOoI zRv)4v1k*4uh{aQ=mZ>`|Qt*!IYJ9Yjf(kFwXBMAGXqXP^Gcdi+>-yG&Dxe3*K2S;g zO1(Dv$5PPhK1J9_0zeI*4A1u{Lw~*wdjXpwJ`4WUKx5SW5jxL0%^x4|*|24|qbHDU z*ZWI8lmDiUW_LNYxp~@zi_4XD6bIIERQQl;b$Uskfg|U|y`%H9YniRrgG%^DsI@d+ zErlp&$M4;XGhnBdac^KOO9?Q~^8P@q84=lG^_>gXD!sy%E)h^HrD;K*cv$@T1o z_5cb&tqeomNlVF&TlGK4GcPYdH}iRaG?eo%=L8;(pkG{-xR~#_lGoPlxkuy3 zB><_AR&|?TlJ?H`G>DypqZ+vPm6X9snFP|VAM&pPF#V}J|0`$2mycxyIj}uqXlS3e zQ3+^N&?pa*n6D4cuzYo1$1xHJhY3yxbIXD#cuf8wbzyTLP7l8d-o9Yv^mi zfM9UMaBnBs&l$dAdy~o)ZbVVUbGtEdVlbco_LY)u)$v6o<(MAA;$qlNUs6NDLrdlp zfPxTHWWoKWO9uaz3>;sM-_+%~@B5{Yr~q(}Grxb{n!GqxzjaAik-mKtxWGV<)zwddZa26jMbF zY1DgM5PSb&ZkkP_!`H{#wyLZ(GLR$9ncZ#u3R+SsVMFTxyxw*xIft|sWlO#eFsqW_ z%aLe*f*x2c3s>XHkgvDD;j$x|KhcqWq@<<>!&)Z%(<)tfcZksA|F!oWOi^w@l%pbw zq9~xCAfS>INs^Rk0z{HXlAI(-773CDK|!*B2n+%W3Wx;Bc>swLMRLwL3_}{iz-)iM z-P*1F2V1qT^wle$zXXS6b`g%I9<`=+Jtzx59>725f znog<;?;?pi9p$mx>%K90vILREL>1k~kNGT;Zvk7af1B~TS#!9x$zBCRAMrKU{M`CY zg~Sgxjon>3)bk*(C6x^a3AFOh63)xty#`!t@r!58r*$@2A(D`suQ&8DP z`X4r0xQ^k|@e_F~97Fl}?q-LoFWF}h69c9cBOEu(rKfPc592aStf=)9x%TiMTUeD& z(?(3h`9ua<>2PR9WtG?n{cfY(B5v|6E5^e-BWEBCYpj_oPb8CGEtXxZ?0uOV8!5Z+ zFmCGC!q2hAEmb^Z-?o?Gw@p{CbUd#8tMEyQ!*RAPezmxvLF&K(Zk9l1fME7@(kmD` zEFAwLMYRR`51U+I5ocs%BnRVS4-Cla>0N>^W8<<~Qc;b*s1)rRLeTwP@1DiDC2YQc z*_r1+%M&i}vL}Z(=?N|E?RiOV7~sAcIvf-y*cFFNEG#@{JS|&(bIzWU))w3&J`r>D zrdrQmEkfJUptsvpLF4bhI>;A830+@SR+?3Exx^1miljo@Kc3(`_wjj3YIBeP+fk!; z?fzMda~PSeGfAMypl_zc{Bap{@KZtDxH3P8>M7&37w(O-d{^8TMj&x~b-V^{c66!bjiaC@=KV8HbAPGVV93X3 z`Ii-OB)J%ZUr>GYs42!q0@yP9vSBE?KTJ(kf7v1_fZh&2dyFZ0?#&{cPsc(BIJM-Se4kb;EN3?1q$=Q8m>dHLk_9o;%$LZiN{rK1q-7>CphY_82Mjfw%R-S6Z>&QO~WDcY)XiGG}XR%S9;lRyLo%<$9|9 zgdsPK;7Ds|6?>hYkCe5mtiO&v?GG(l?&{y0fs3l^Nq&XO5*F%I=n>atQJP!8vsF({^JWyRId6o&sr7`dbQ^2wgf zAi3vd0A>bW+cZ<>b^ESAB!x_bhK9P%EIbenoPPH!XJ05^*!ju@wiD+S%mzNm`I6na z(W^--ZPxm!RatWVc)_&!Pd0=f#Rt#7htiPVXgcMn$CCT~_JoR!Mjhfl2k-d9ocd_1 zT|{>`!?(VlDk;Kp`D%R-Rpr^%+l6uD>iDUjKG__N1umHrE7{geYeKU3ZYm$VpaUcj z2vY-h^0hyHjBin7)@whfL)ZED?>%+(b1)XhBH?KrrEcgwYPeJpz`d=z^vT#8%-`J) zcF9*%FDYPRTm8g(jpZ+ji~dQB+0N^?MkZeFsiPG;i$QASx>7RR2VoHy#l$)JhwsO7 z|EU(vBPWUa!fGYNL`oqXU30aKon2~0#U;JoNgog_oKm3$%nrJ-`aA*?BNpdY zvUrE9x{EUD*A4H*XNuYz9~b1fRLdCg~cFnI>FQePDx znJ%|B^Hb6Ai@Bp}J#aBs7T=Dg!VY05iqdpIS@PJ}`p}1tG*_V7-Go=chWD#cM_?v2rpACzJc% zr96lJDxc@L8g|=1timL&y)>&qByezWkb>OTWQ3C`^l6qIXzV_7+k)CF+ahVBfQHQD zGFYkJ7`^4vI2GZDci!7sKhmzcJ3w*e%R{07oME%UibdJs6!mjaMF~<(*h~JmRXhE% z7N03OJ9M`;7q88*#cq$JHk=W{AiSB)`-j#EP1`Rv|FsBNxBLpz9n;rLOp6S*!K*%*3(T|WD%>U(v zy9y}%kp7nTTq?-efSigP#K4#^-r- zZyDhUAh=94Ano=dclH9+8M4Pu&AM&=uPZ40=H8c+R}KJy+=gujXSND%ky_uefFqTe z$*u1R&B;e=Ii7Y`d{y zJRuwWA(J~?^(S!E$C#(!_cOxEFq|BVp|Eh4YN?a|D2}n^qR|;hY}O;?u^?2V*vD(C zM}d0G&D~uq-=f3Yx}82}0XmQjl8L+{fh{d9<<=2*jLCfOg3T5fX|%+N;L6E&j#S*m zIxZ@&<`W_k;sRNYZ@c?|`K07pmEMgC+v=m@YhS`mZ|i$5%+1l~s|>+lGBjADJDWn?w!PH+6oHaHK|?zn2rpEt%vRjJ@f; zq`?J4Ye3qw%FVJJc)=XwT0G9fpU%J|y!*#7jtbU?tJyM0yt000le5y7CraJN>p}2kTqwUZDYqSqiW!5N2H~^q*;k7F{9rn~6H< z&BFZ|0Bmwz&j00aeV|WyTHK(;WE6cdk;A*1HD?a9{dZGe#o&s$9C8-d6kUf;M_ko2^%ooAij%Kmi!G9 zx~}W3B3il6CbKo^#3k3d({O!?9t>Tl4u+E7u? zoqGRq@yZm{nLn%0k9mAmuFyERa5^44e`5Y09o!&^P)ktNBnm$ zE6g|16HMR*w?9H&@Ddyh0A2}h3)h^N`l=C^3lTde0kf8|lG%hwBvhxw*_Lv)Uy?6H zf>K@{4UoKMX6&F>xX*J<_lEJwL#ayf#?aiDojxMMDC_(YA5HS02K!|)zL?;Qq4F4l z=laJ(>eUCIZukGP!)_nXbh5EX_p7rts?oD5o?aJ8(2UdQ-E@7?4Dv_6b0hmY;WYi6 zShYWb+}Ph0FXx}M%&f0>h%rO7pOIxIvH=6C;8`eSv$?EG3jfi6(9cj$ymfWwRH-fx zphwixa#uXOZ?GV4OO@KUM4kzprR(?U0Z$7c6F&#vA;Lp)UBT|zj(Dsqg5_pTzqR#n zX;hpYHWq3Y13{G(&L(fRqmjR9>3o$^*OMf&Q!Md?V-s~jywA`5^(>7{&eotlEyMZr zLwk#9r{B33m=yee8TziGgGAORTA=a`iV`0_7@w5F`m^=6CH~>Bt$p9Sc*)R8;9`z2 z7UoQU{5V-QEcy9``*&N)AOG%917`sc(&*-2Psv&YPWc%_krZ^iuP|8l^MzC-+U-LEjd^ zT30vrbUmN}CNmuz?7!Fb#oz7#RJ+_pD~OLrb3h29Hh){^omdie2S*O z_&oVm4?Fffu6>8vy#nqea>Y*s8OwiN6m=(UvGbC~)qlO_6F5KZ*ehatnVZ9@Z?8OO z5~WPszU_lO6Ty0u(4^(Dam=NG%ZG+-%gt1aorA+4L|f3Es237Bz6!?||Aor)9YU`o zW7p-Oz|^8O{(H#4q}5@ZS9Cl2VBJ^20mADmfUw9zzMB6Q-Pi*Bb2YNag8a~p)YH?$ zm*hVsw}sJ$pF6cCml;n(6O)=CUDoyS(nYTJ)lruNMz|O-Z#jd{LaO`s8Ur03pEx8i zu@51s3(v0od{D04k>7NM6`5o?d5CUd6CAS9Xycs@e#gnD&&JALCvgG_2Adl=+*k`7 z?)7ZYE1128OH9~<&Z3pQf0+tw|6-PuG#2_f-e-xi(#~NUj43O$=xQ3b*q|$u|9B&y zas-+hhvA-cxTJL-H~Yn(X`*m&qu>r-x4$1yaAh|r_tvg5x@N^>5Ghe`r3Ex|v-dai6cU8ylO*gQjs
;_eSu@&hWG6b_)O+BY` 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 z zwbMU-JTI}V)f)=i>PXXE`OO`@O_`RZHShT^m>BBV*N_JLO zg*o4(8b@0(F|h*YJx9f{`_I7;hSg`@_V&v06T@R;p8-gnqoGNLI~&7Z zH8{9R;y1$`_8*o8(84Vd4}rjp7{&F%!`pyk|J##vFYy!7+*-L0Uf-$0T=nD<3-qo2 zj0Fbf2NtUjt--?nOQ#hC$ymG@PGsA|s9WQ*^Ww&QC%mahU7qL@Cr-fW{0dt$?d#VE zfGO0?%*<-rn27E1=`}SqkCc?)$UIk@p&1Q)%=s0pr=EIxdN#GSVJDM&ZKHuKS^x`^ zrr*DFgiCZuxGs1N)z#I?!zzrFc!(T#dgjIydeB{UxkQp0G;xmtv`#!g}?t%>ihs8$V+ZB(( zapcYK%2l;G)5?RIIbx7}LG@W4GwRwx(pL&wKH#-x0Q&W*&u_9VQKEZ}ES z{h8d5$N;Mie`4Du{6d%c0{pbzEIn073_@>NG3JcqzIS1_a?w*lmT4AVx8&6;{fgdS zG=Qhp(A6DEL-Uj;Z$pjSYv;Ajz^z;S7;qNEeghcRP1>$S$@rqk?Bzq5B+}tb?gOar zbZnPMotZH!8Mcl3_;JAwy%z_^8*;?-OVI+uYM-77MdPN90UGDi`10yA0QC$-_?8(ALI)2Tm5?{&}dG{;ao4F^_YQ^J&BS z>OgNIZD2s#b5UpXB7PP!2V@rr-Y?3AMPE$41JRpl-54OA4U&ZM%yty{=vhMHLMhel?uB2f?Pp_S;d7JvlEbLh(5?(7W^Ki!2K-vrd? z(*48qbcfH}QG+}MeCu+5o~)nI+@CM^p_vyBKL~npn{aj2gUxr*)zx>cOzz3b`hyD) zJb3CQV{tyd&+xNaWBBg_?fB_&!=DGLw+?c1b3eR)&zE8an?}>XQyoTj;e)5=!!7m4 zrP#dj5H^N1hKGmK)6(7#E^C;YegoB7MpSi1Mn;-n4+I*ag^Y>{J&3f?HRF#F-AE$udXg*gB9-bhX6ie&XT4GE`H=cN z;c>2CyQZS073)*|86p^@qw;1LgV{c|0%%-t{%E#|o%H_Ce8T}BIO z`#gMa2;MppAT8D|dGYNc14Dtsqzu5WbLY=DjoUvEG9xD^&!AsgT2iyN&N%0ryrb_R z?je~7qk{F9&_Mll!c%TGab?eyjqdZ{j}6tqn=f2#6T{89kM1RmcoOuWnpC9Y(S2`3 zkA!Q0C@|c~0*jTDbmbc?iI6S%v178qU*q7^3Psq$z}VS}qV`!;6O&|Mq`yFk8oVP) z+HR0SK-yn+SzGBx`whT3kpeogH+h@!0qfpk^CLfE;YJ}^$zNA z6^UO_6#(CLZtf@}dQrEHG)OgU(amhBowq06&sjhohm^49Dh~fH1@pWN`rx3TvTyGG zF1N!(4q!2(5)-ra%A74BE7dad$w54{KayhEG`p_F|5Q&e6P#_ikcM#*lP@IP9v5GJ ze*PX2Ux4h1q7gidXb^A0JP-4_01@n`kj)I|`HKN@f)2h}0DQC63vf2g%~Jv6O#|+l z`*RtF#h(HgfL*AaV=S#^PUe5_vXirO(}Cg#?}2wZ>$&d8nngi)!i ztG0mV;IhNi)I=|B-ii%s{4s@_WGtwmB&hwDhs!i!lOH?H_}I;@wBTkj&V#Dghz&DnPEGvhRr+x&YrU_&$K`gZ({IdcQ5) zX!g|9Gpi%Np|t`J4-g3ui)OZdH$Wmdum$$x_dq0U1!QQEM=Kz*>mnkWJkj!%2bkw7-n+6hzb zQ=4v105#5DotF_vEG{Y0f@m~Q>hwe3eOYLNDyA0p?K>Z+7m!|kIAp_DuS%eK$pq&h zy}0-(VooY^?pZPzK4n6p#>< zw7Tow0T430IT72{$z;!U2@1!dHQ9hq{{D*VZ_ZMcC>L-A+)h z0@BTQ#T#>j-&hv`hr>npE~>*h0YCw&n6H3;L2i_upZ`)}^wis&l>z_*_AdkT4wRDl3N}-xgjHKt=l&f|S$32j`Wc?|`@)XV)#e)71yC zo@H2kh+VL2Jf-0plw5{~;gXBpx#Y0_8OES|QV$bfdj~)O`v2z`7`Wupv$NsDbpwF_ zijgG#(QGJh;Yh*(h&G}>L3Vhc%q5$$<_{2wN2X_HWEM1!@Ew9Mz*h~?7{IL#KQy|f zk-7s3k6hX1Nr@!ltlL(%V%C6YL zjJQsoLMjeWfW2>?e&XeYrKX{=vwS2An-&S=AUTJ%wSWp+#lsCnbIxDH`pqG>(VZF&4F>qjd}*VM#z+T2WV_|wz9$AKriggWT>j)E%Ix? zy7;(5>V&!Vjfo&$Z8Tt7B=iAnhm;M__CkDqKPupJh)V$}nZ;C~mVk6~*S z5$I5Sk6~4m9@D5RO(n=4q?iu?04^>TA@Bjb+ literal 0 HcmV?d00001 diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py index 1c9fbf623424..9717d8bf1c58 100644 --- a/lib/mpl_toolkits/tests/test_mplot3d.py +++ b/lib/mpl_toolkits/tests/test_mplot3d.py @@ -1510,3 +1510,16 @@ def test_computed_zorder(): zorder=4) ax.view_init(azim=-20, elev=20) ax.axis('off') + + +@image_comparison(baseline_images=['scatter_spiral.png'], + remove_text=True, + style='default') +def test_scatter_spiral(): + fig = plt.figure() + ax = fig.add_subplot(projection='3d') + th = np.linspace(0, 2 * np.pi * 6, 256) + sc = ax.scatter(np.sin(th), np.cos(th), th, s=(1 + th * 5), c=th ** 2) + + # force at least 1 draw! + fig.canvas.draw()