From 08cc0761bd57c64aa644c2b27168102e21015903 Mon Sep 17 00:00:00 2001 From: Thiago Araujo Date: Mon, 1 Mar 2021 10:00:08 -0600 Subject: [PATCH 1/5] :pencil: Add contact algorithm theory --- _sidebar.md | 1 + theory/contact.md | 208 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 209 insertions(+) create mode 100644 theory/contact.md diff --git a/_sidebar.md b/_sidebar.md index a4388fda..e395e961 100644 --- a/_sidebar.md +++ b/_sidebar.md @@ -43,6 +43,7 @@ * [MohrCoulomb](theory/material/mohr-coulomb.md) * [ModifiedCamClay](theory/material/modified-cam-clay.md) * [NorSand](theory/material/norsand.md) + * [Contact](theory/contact.md) * Code * [Overview](code/overview.md) diff --git a/theory/contact.md b/theory/contact.md new file mode 100644 index 00000000..5d75f25a --- /dev/null +++ b/theory/contact.md @@ -0,0 +1,208 @@ +# Contact Mechanics Between Distinct Bodies + +The Material Point Method is naturally capable of modelling distinct bodies because each material point holds the information of its own material. However, the conventional MPM alone does not handle contact mechanics as the surface of distinct bodies meet. Additionally, one may need to identify contact interfaces without the need of prescribing their geometry at the start of a simulation. Therefore, the MPM requires a contact algorithm capable of identifying the contact of distinct bodies and applying their contact relationship. A first approach to deal with frictional contact was introduced by Bardenhagen et. al. (2000). This approach is the one presented within this document. Bardenhagen et. al. (2000) also describes the normal to the interface surface for each material as the normalized gradients of the volume. However, the authors method can lead to normal vectors of both materials that are not always aligned -- i.e., opposite to each other for two materials in contact -- which can lead to further errors of the contact relationship. Therefore, a slight change, as proposed by Nairn (2013), was introduced to the algorithm to handle such cases. + +# Contact Algorithm {docsify-ignore} + +> at each time step $\Delta t$ from $t$ to $t + \Delta t$, the nodal kinematics are initially computed similarly to the conventional MPM algorithm but considering the distinct materials: + +## Initial Nodal Kinematics + +* The state parameters at the material points are initialised at the beginning of every time step in the same manner as it is in the conventional MPM. + +* The shape functions $N_i(x_p^t)$ and the gradient of the shape functions $B_i (x_p^t)$ are also computed at each material point as the conventional MPM dictates, with no changes due to the contact algorihtm. + +* A nodal set of all the material ids (with no repetition) is created by identifying the material ids of all the material points in the cell. Each new material id is appended to this set. The size of this set will indicate whether the node is located at an interface of two or more materials or not. + +* The nodal mass and momentum are calculated separately for each body $k$. They are based on the mass and velocity of all the material points in the cell that belong to their respective body and are mapped to the nodes using the shape functions. + + * Compute nodal mass of each body + + $$ m^t_{i,k} = \sum\limits_{p \in k} N_i(\textbf{x}_p^t) m_p $$ + + * Compute nodal momentum of each momentum + + $$ (m \textbf{v})^t_{i,k} = \sum\limits_{p \in k} N_i(\textbf{x}_p^t)m_p \textbf{v}_p^t $$ + +* The nodal velocities at each active node $i$ is computed for each material $k$ based on the momentum and the nodal mass. + + $$ \textbf{v}_{i,k}^t = \frac{(m \textbf{v})_{i,k}^t}{m_{i,k}^t} $$ + +* For the USF approach: + + * The strain at each material point is computed by mapping the strain rate from the nodes considering the material id of $p$: + + $$ \boldsymbol{\varepsilon}_p^t = \sum\limits_{i} B_i(\textbf{x}_p^t) \textbf{v}_{i,k}^t \quad \mbox{with} \quad k \ni p $$ + + * The stress is then updated at each material point based on the constitutive model as it is for the conventional MPM with the USF approach. + +* Compute the nodal body force from the material points considering each material id separately: + + * Body force: + + $$ \textbf{b}_{i,k}^{t} = G \sum\limits_{p \in k} N_i(\textbf{x}_p^t) m_p $$ + +* Compute the nodal external and internal force considering each material id separately + + * External force: + + $$ (\textbf{f})^{ext,t}_{i,k} = \textbf{b}_{i,k}^t + \textbf{t}_{i,k}^t $$ + + * Internal force: + + $$ (\textbf{f})^{int,t}_{i,k} = \sum\limits_{p \in k} V_p^t B_i(\textbf{x}_p^t) \boldsymbol{\sigma}_p^t $$ + + * Resulting force: + + $$ \textbf{f}_{i,k}^t = (\textbf{f})^{ext,t}_{i,k} + (\textbf{f})^{int,t}_{i,k} $$ + +* The nodal acceleration and velocities of the next step $ t + \Delta t$ for each mateiral id are computed on all active nodes: + + * Nodal acceleration: + + $$ \textbf{a}_{i,k}^{t+\Delta t} = \frac{\textbf{f}_{i,k}^t}{m_{i,k}^t} $$ + + * Nodal velocity: + + $$ \textbf{v}_{i,k}^{t + \Delta t} = \textbf{v}_{i,k}^t + \textbf{a}_{i,k}^{t + \Delta t} * \Delta t $$ + +## Normal Vector Computation + +> at each time step $\Delta t$ from $t$ to $t + \Delta t$: + +* The domain gradient is computed at each node for each separate material by mapping the gradient of the volumes at each node: + + $$ \textbf{g}_{i,k}^t = \sum\limits_{p \in k} V_p^t B_i(\textbf{x}_p^t) $$ + +* The normal unit vector at the interface of two materials is then determined considering the Maximum Volume Gradient Approach (MVG). This approach compares the domain gradients of the two materials in contact. The largest one in magnitude is normalized to determine the normal unit vector of that material while the normal unit vector of the lowest is set to be the opposite of the latter: + + $$ || \textbf{g}_{i,a}^t || > || \textbf{g}_{i,b}^t || \Rightarrow \hat{n}_{i,a}^t = \frac{\textbf{g}_{i,a}^t }{|| \textbf{g}_{i,a}^t ||} \quad \mbox{and} \quad \hat{n}_{i,b}^t = \frac{\textbf{g}_{i,b}^t }{|| \textbf{g}_{i,b}^t ||} $$ + +## Apply Contact Mechanics + +> at each time step $\Delta t$ from $t$ to $t + \Delta t$: + +* A contact node is detected by checking the size of its set of material ids; sets with more than one material is considered a contact node. + +> for each contact node: + +* The material's relative velocity to the velocity of the center of mass is computed at each contact node. The velocity of the center of mass is the one determined using the conventional MPM algorithm. + + $$ \Delta \textbf{v}_{i,k}^{t+\Delta t} = \textbf{v}_{i,k}^{t+\Delta t} - \textbf{v}_{i}^{t+\Delta t} $$ + +* The material's movement is checked at each contact node: + + $$ \Delta \textbf{v}_{i,k}^{t+\Delta t} \cdot \hat{n}_{i,k}^t > 0 \quad \Rightarrow \quad \mbox{approaching} $$ + + $$ \Delta \textbf{v}_{i,k}^{t+\Delta t} \cdot \hat{n}_{i,k}^t \leq 0 \quad \Rightarrow \quad \mbox{separating} $$ + +* If the node is not a contact node or if the material is separating, nothing is done ($ \tilde{\textbf{v}}_{i,k}^{t+\Delta t} = \textbf{v}_{i,k}^{t+\Delta t} $). Otherwise (approaching condition): + + * The normal and tangential components of the relative velocity are computed + + $$ \Delta \textbf{v}_{i,k,norm}^{t+\Delta t} = [\Delta \textbf{v}_{i,k}^{t+\Delta t} \cdot \hat{n}_{i,k}^t] \hat{n}_{i,k}^t $$ + + $$ \Delta \textbf{v}_{i,k,tan}^{t+\Delta t} = \hat{n}_{i,k}^t \times [\Delta \textbf{v}_{i,k}^{t+\Delta t} \times \hat{n}_{i,k}^t] $$ + + * The following normal and tangential corrections are determined + + $$ \textbf{c}_{i,k,norm}^{t + \Delta t} = - \Delta \textbf{v}_{i,k,norm}^{t+\Delta t} $$ + + $$ \textbf{c}_{i,k,tan}^{t + \Delta t} = - \min(\mu \Delta \textbf{v}_{i,k,norm}^{t+\Delta t}, \Delta \textbf{v}_{i,k,tan}^{t+\Delta t}) $$ + + * The nodal velocity is updated + + $$ \tilde{\textbf{v}}_{i,k}^{t+\Delta t} = \textbf{v}_{i,k}^{t+\Delta t} + \textbf{c}_{i,k,norm}^{t + \Delta t} + \textbf{c}_{i,k,tan}^{t + \Delta t} $$ + +## Update of Material Points + +> at each time step $\Delta t$ from $t$ to $t + \Delta t$: + +* Apply any velocity constraints (and acceleration constraints -- when velocity is set, acceleration is set to zero) ah the material points + +* Update the position of the material points based on the nodal velocity of their specific material. + + * Material point velocity: + + $$ \textbf{v}_p^{t+\Delta t} = \sum\limits_{i} N_i(\textbf{x}_p^t)\tilde{\textbf{v}}_{i,k}^{t+\Delta t} \quad \mbox{with} \quad k \ni p $$ + + * Material point position: + + $$ \textbf{x}_p^{t+\Delta t} = \textbf{x}_p^t + \textbf{v}_p^{t+\Delta t} * \Delta t $$ + +## Nomenclature {docsify-ignore} + +### General {docsify-ignore} + +$G$ acceleration due to gravity + +### Material Point {docsify-ignore} + +$p$ material point index + +$\textbf{a}_p^t$ acceleration of the material point $p$ at time $t$ + +$m_p^t$ mass of the material point $p$ at time $t$ + +$(m\textbf{v})_p^t$ momentum of the material point $p$ at time $t$ + +$\textbf{t}_p^t$ traction at material point $p$ at time $t$ + +$\textbf{v}_p^t$ velocity of the material point $p$ at time $t$ + +$V_p$ volume at material point $p$ + +$\textbf{x}_p^t$ coordinates of the material point $p$ at time $t$ + +$\boldsymbol{\varepsilon}_{p}^t$ strain tensor of the material point $p$ at time $t$ + +### Node {docsify-ignore} + +$i$ node index + +$k$ material index + +$\textbf{a}_{i,k}^t$ acceleration of node $i$ and material $k$ + +$\textbf{b}_{i,k}^t$ body force of node $i$ and material $k$ at time $t$ + +$\textbf{f}_{i,k}^t$ nodal force of node $i$ and material $k$ at time $t$ + +$\textbf{f}_{i,k}^{ext,t}$ nodal external force of node $i$ and material $k$ at time $t$ + +$\textbf{f}_{i,k}^{int,t}$ nodal internal force of node $i$ and material $k$ at time $t$ + +$m_{i,k}^t$ mass of node $i$ and material $k$ at time $t$ + +$(m\textbf{v})_{i,k}^t$ momentum of node $i$ and material $k$ at time $t$ + +$\textbf{t}_{i,k}^t$ traction at node $i$ and material $k$ at time $t$ + +$\textbf{v}_{i,k}^t$ velocity of node $i$ and material $k$ at time $t$ + +$\boldsymbol{\sigma}_{i,k}^t$ stress tensor of node $i$ and material $k$ at time $t$ + +$\textbf{v}_i^t$ velocity of the center of mass at node $i$ and time $t$ + +$\Delta \textbf{v}_{i,k}^t$ relative velocity of node $i$ and material $k$ at time $t$ + +$\Delta \textbf{v}_{i,k,norm}^t$ normal component of the relative velocity of node $i$ and material $k$ at time $t$ + +$\Delta \textbf{v}_{i,k,tan}^t$ tangent component of the relative velocity of node $i$ and material $k$ at time $t$ + +$\textbf{c}_{i,k,norm}^t$ normal correction of the velocity of node $i$ and material $k$ at time $t$ + +$\textbf{c}_{i,k,tan}^t$ tangent correction of the velocity of node $i$ and material $k$ at time $t$ + +$\tilde{\textbf{v}}_{i,k}^t$ corrected velocity of node $i$ and material $k$ at time $t$ + +### Shape Functions + +$B_i (\textbf{x}_p^t)$ gradient of the shape function that maps node $i$ to material point $p$ and vice versa such that $B = \frac{dN}{d\textbf{x}}$ + +$N_i (\textbf{x}_p^t)$ shape function that maps node $i$ to material point $p$ and vice versa with independent variable of the location of each material point at time $t$ + + +[1] Bardenhagen, S.G., Brackbill, J. U., Sulsky, D. (2000). The material-point method for granular materials. Computer Methods in Applied Mechanics and Engineering, 187(3-4), 529-541. + +[2] Nairn, J. A. (2013). Modeling imperfect interfaces in the material point method using multimaterial methods. Computer Modeling in Engineering and Sciences, 1(1), 1-15. \ No newline at end of file From ebddd8118342325a8bc96522712cfbddc6c36dc0 Mon Sep 17 00:00:00 2001 From: Thiago Araujo Date: Wed, 31 Mar 2021 11:23:06 -0500 Subject: [PATCH 2/5] :pencil: Edit contact intro, add figures and revise normal vector description --- theory/contact.md | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/theory/contact.md b/theory/contact.md index 5d75f25a..242e7bff 100644 --- a/theory/contact.md +++ b/theory/contact.md @@ -1,20 +1,29 @@ # Contact Mechanics Between Distinct Bodies -The Material Point Method is naturally capable of modelling distinct bodies because each material point holds the information of its own material. However, the conventional MPM alone does not handle contact mechanics as the surface of distinct bodies meet. Additionally, one may need to identify contact interfaces without the need of prescribing their geometry at the start of a simulation. Therefore, the MPM requires a contact algorithm capable of identifying the contact of distinct bodies and applying their contact relationship. A first approach to deal with frictional contact was introduced by Bardenhagen et. al. (2000). This approach is the one presented within this document. Bardenhagen et. al. (2000) also describes the normal to the interface surface for each material as the normalized gradients of the volume. However, the authors method can lead to normal vectors of both materials that are not always aligned -- i.e., opposite to each other for two materials in contact -- which can lead to further errors of the contact relationship. Therefore, a slight change, as proposed by Nairn (2013), was introduced to the algorithm to handle such cases. +The Material Point Method is naturally capable of modeling distinct bodies because each material point holds the information of its material. However, the conventional MPM alone does not handle contact mechanics when different bodies meet. Therefore, the MPM requires a contact algorithm capable of identifying the contact between distinct bodies and applying a contact relationship. A frictional contact algorithm proposed by Bardenhagen et. al. (2000) is implemented in the CB-Geo MPM code. The approach involves prescribing a normal to the interface surface by mapping the gradient of volumes from the material points to the computational grid, identifying the normal and tangential movement to the interface, and finally correcting the velocity to avoid interpenetration of the bodies and resolve their frictional relationship. Moreover, for each distinct body, the mapped gradients of the volumes are nomalized, yielding the final normal unit vector, the mapped gradients of the volumes are normalized, yielding the final normal unit vector at the surface. However, the gradient of volumes alone usually leads to normal vectors on each body that are not aligned with each other. When this happens, the conservation of momentum is violated as the contact mechacnis is applied to contact nodes. Hence, the contact implementation allows for the use of two extensions to this normal vector computation, namely the Maximum Volume Gradient (MVG) and the Average Volume Gradient (AVG), proposed by Nairn (2013). Both approaches guarantee a colinearity between the computed normal vectors at the same node. + + +![Fig. 1: Contact nodes, each detected when two or more bodies map information to that given node.](contact/contact-nodes.png) + +> Fig. 1: Contact nodes, each detected when two or more bodies map information to that given node. + +![Fig. 2: Resulting normal vectors at each contact node determined by the conventional volume gradient approach. Different colors represent different bodies.](contact/normal-vectors.png) + +> Fig. 2: Resulting normal vectors at each contact node determined by the conventional volume gradient approach. Different colors represent different bodies. # Contact Algorithm {docsify-ignore} -> at each time step $\Delta t$ from $t$ to $t + \Delta t$, the nodal kinematics are initially computed similarly to the conventional MPM algorithm but considering the distinct materials: +> at each time step $\Delta t$ from $t$ to $t + \Delta t$, the nodal kinematics are computed similar to the conventional MPM algorithm while considering distinct materials: ## Initial Nodal Kinematics * The state parameters at the material points are initialised at the beginning of every time step in the same manner as it is in the conventional MPM. -* The shape functions $N_i(x_p^t)$ and the gradient of the shape functions $B_i (x_p^t)$ are also computed at each material point as the conventional MPM dictates, with no changes due to the contact algorihtm. +* The shape functions $N_i(x_p^t)$ and the gradient of the shape functions $B_i (x_p^t)$ are also computed at each material point like in conventional MPM. -* A nodal set of all the material ids (with no repetition) is created by identifying the material ids of all the material points in the cell. Each new material id is appended to this set. The size of this set will indicate whether the node is located at an interface of two or more materials or not. +* To identify a contact node, the material ids of all the material points in a cell are mapped to the associated nodes, where a list of unique material ids is maintained. Any node which has more than two material ids is identified as a contact node. -* The nodal mass and momentum are calculated separately for each body $k$. They are based on the mass and velocity of all the material points in the cell that belong to their respective body and are mapped to the nodes using the shape functions. +* The nodal mass and momentum are calculated separately for each body $k$ based on the mass and velocity of all the material points corresponding to the body $k$ in the cell. The properties are then mapped to the nodes using the shape functions. * Compute nodal mass of each body @@ -70,13 +79,31 @@ The Material Point Method is naturally capable of modelling distinct bodies beca > at each time step $\Delta t$ from $t$ to $t + \Delta t$: -* The domain gradient is computed at each node for each separate material by mapping the gradient of the volumes at each node: +* The volume gradient is computed at each node for each separate material by mapping the gradient of the volumes at each node: $$ \textbf{g}_{i,k}^t = \sum\limits_{p \in k} V_p^t B_i(\textbf{x}_p^t) $$ -* The normal unit vector at the interface of two materials is then determined considering the Maximum Volume Gradient Approach (MVG). This approach compares the domain gradients of the two materials in contact. The largest one in magnitude is normalized to determine the normal unit vector of that material while the normal unit vector of the lowest is set to be the opposite of the latter: +* The domain is computed at each node for each separate material by mapping the volumes at each node: + + $$ \Omega_{i,k}^t = \sum\limits_{p\in k} V_p^t N_i(\mathbf{x}_p^t) $$ + +* The normal unit vector is then determined in one of the three following procedures: + + 1. Pure Volume Gradient approach, as described by Bardenhagen et al. (2000). The normal unit vector is simply the normalized volume gradient vector: + + $$ \hat{n_{i,k}^t} = \frac{\textbf{g}_{i,k}^t }{|| \textbf{g}_{i,k}^t ||} $$ + + 2. Maximum Volume Gradient (MVG) approach, which compares the domain of the two materials in contact. The normal unit vector is the normalized gradient vector of the body with largest domain: + + $$ \Omega_{i,a}^t > \Omega_{i,b}^t \Rightarrow \hat{n}_{i,a}^t = \frac{\textbf{g}_{i,a}^t }{|| \textbf{g}_{i,a}^t ||} \quad \mbox{and} \quad \hat{n}_{i,b}^t = -\hat{n}_{i,a}^ = -\frac{\textbf{g}_{i,a}^t }{|| \textbf{g}_{i,a}^t ||} $$ + + 3. Average Volume Gradient (AVG) approach, which sets the normal unit vector as the weighted average of the volume gradients with respect to the domains. The conventional normal unit vector refers to the ones determined in the first approach: + + $$ \tilde{\mathbf{g}}_{i,a}^t = \frac{\Omega_{i,a}^t\mathbf{g}_{i,a}^t - \Omega_{i,b}^t\mathbf{g}_{i,b}^t}{\sum\limits_k \Omega_{i,k}^t} \quad \mbox{and} \quad \hat{n}_{i,a}^t = \frac{\tilde{\mathbf{g}}_{i,a}^t}{|| \tilde{\mathbf{g}}_{i,a}^t ||} $$ + +![Fig. 3: Graphic representation of the normal vector computation approaches in the CB-Geo MPM.](contact/normal-approach.png) - $$ || \textbf{g}_{i,a}^t || > || \textbf{g}_{i,b}^t || \Rightarrow \hat{n}_{i,a}^t = \frac{\textbf{g}_{i,a}^t }{|| \textbf{g}_{i,a}^t ||} \quad \mbox{and} \quad \hat{n}_{i,b}^t = \frac{\textbf{g}_{i,b}^t }{|| \textbf{g}_{i,b}^t ||} $$ +> Fig. 3: Graphic representation of the normal vector computation approaches in the CB-Geo MPM. ## Apply Contact Mechanics From 977e9640f2131bb1d9d90894ef7ea4aacd1528fe Mon Sep 17 00:00:00 2001 From: Thiago Araujo Date: Wed, 31 Mar 2021 11:25:36 -0500 Subject: [PATCH 3/5] :pencil: Add the png files of the contact algorithm --- theory/contact/contact-nodes.png | Bin 0 -> 92729 bytes theory/contact/normal-approach.png | Bin 0 -> 65813 bytes theory/contact/normal-vectors.png | Bin 0 -> 106524 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 theory/contact/contact-nodes.png create mode 100644 theory/contact/normal-approach.png create mode 100644 theory/contact/normal-vectors.png diff --git a/theory/contact/contact-nodes.png b/theory/contact/contact-nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..29a287998ce016457b7e795a4403c4f6476eb38b GIT binary patch literal 92729 zcmeEt1yfyJ(fRt{^9l0E-I?0s?{{DIuZ+0s?Ld0s@8!4GH{ap^5A#2neXHrLeGq zrLi#x2xXj0T!*xfBKClvm0{wRg0M(zfM}2qx`^@8CJC`w>|Fjr)!&%W4k-z1z%&ty z2(1so8&m^i#TP*Z2o%~ka35OYriYSTk*v{{ie1MSoJfZR z8P^%Mm+S*h6Up<{>kRJUOwNOB>qrp@5rO}I|9=boKP?a_wFzS7w5X6AVTux#SoaoZN!XmxOeK5$#DlUC2~$9r{vNEmLmshT?Z_RWmuwVWBHbF z3bL32>T#k>&pv;(z{^)kjU*`u+2~wzINK=-@;FZwYJlJrW|Y z|8eud3{lQNpn#$v|LYw9jT)ET_w;$Nade?= zBE64%{(Md)0y;R!zXz-Lmv&V6|5(D` zuFri${@W&i8~T6mqoTzMKSreEgR%tgQnw)B~LSjo?jp zI#N1ZI^47E>`Xbc-hcEL;i3(_(f2h{|yLC@71X{Zm9}xJcKe64l!&;)cKEGv!6f;t@b=@EzRngSZ>G0&i1zL{ZwUT1VA4v z$DB&F%gAUZfR$&mw}s!2%h7Bv;~)6fsmzF#H`?$08M8T1~0>;e!&-r}et8SPY3*^UkhL+|e7* zrWWh&C2fkzUq1L@)}Zcgqp$TkaTBu}Wo>h2g2ZR=}J3 zX;5_NiRQMgjbQd~nDp!%t#Q85I*n8Ap!(ZJsLVM0w;#V3p6ist418lPZW6!$-gj6`0N#SP)bo zkk4~?fJ`K4TFBMO5d|;7aAtMpy0uj2mETH&B#B~tcyIsp!M|H(jj#98c6|TP)2R7D zV4+QkKvy|lKrzYN7rzycBy{AX16^onDf$cE>Fxkh-T2mj3fp*b7vfM{0oPi`NxTJ7 zDky5lXZDW0!$XHqgMbUps>T5ywFL{uG|spxS@d6`FF#2@XSEQ9?BrP|20bSsno!(x z!A28eejAB=9vi0NeCnt$-~1P3WbtY=`+M+2=sH3n=rp9%#T#o!c%IBe4SXw}6lqK-+Qxwcy!`*?IHwTi`Bmu9Z ziI{OC`K{zaz$qF+*-M^X+p{~A9!{vFVKWPFXtF&X%Qdcmr3hQ7FT5!s)vGsDqOsSi zYO>xq4xmK=*KKh1IN~q|RzH%`mzC~c@;q`91YVJXjuFAeiN_8aGPFBgYB;UMCBQu| zKxlGO;ZTI$TW{cnGxtZ=*Tk(L&W^;2h==b2Ys^%1y&q|s@s8*t_I#met#BJnCSTv1 z!KCQbeJB?a_OGY)tn6k$j2`z)7Q$|>q)11uS*Do}I^U!8=qnWq;zTF2=j0z+H4mr{ zK^HP^F&l5DC_?4pPjmtDYtN{E8HAKovTFhMsulko8^C{XGXCmE&xlXF;0Er@8lt7d zj<01TuA|IAKfy@FU?P-9fH^F892JyIk?5v9Jw>Ql~Qasy>|A? z5hGl%o{CT-c((C`irDE2)54*^2|a3|vjJbm^m6&Ohs9K`{uqt?B z6$qImiuPM7Q2Z<8%a8CkHk@w6xP|pda`H2fRB6oIfT-DEVbb$wQXEuC@%-aU!}e>6+_E>t9G~K2 zAGiAUmlyOm;4ZOuaZ8cbsKv^6yY4BCDYx_%4#p^l6vUDZ#RNxt2Om;HVhKvSa+&k? zbO-G}7_Ft@aGiMOl^;7z>8p7@>`Zljr-V!AEkcfJ?0I{XErxmxkuC()$fI{Mp@hBQ z@>X(sjaDe1ziqAjn5pA^_(%xCm>%}D{Hug1&?a;wXaf83Ga|C~XAYRlzXXs75iHE> zuREirOg*lBk?H;Z0SBRKU^SLhwQEJvY8rK9`ThPwsr^3-bF{gD2EhOqO_d$0MCvyaystHY06mLe^|G}|1=?1NSYTsM|-3x&6BwJ>u( zi@#a}gmp}{1fy_+0IB)OclJO>q$XhnCK5Ybo0Gg-BC(Jm%7|Yxo2S8@8p;zPp9om> z69XEIL;X{TnMQN{^k6GqWts$yEU3} z5}nNH3j$&!S(tzO6*)iw)nFRc%rg_{z$OEmX8aMpum;-}q<@2lBJqEb_+Jg!Y?e(t z?@!bAZSi>A0pnasmbBQ#XOyhTl0w_Zw5Y6{=9VZt|D3wF-b1P;paYwSdS{PyI z_y2e@@6(g4ge+M3_H_2LI4mW#rlXjHJ2CtdH)j@r+<={$K?0{$zmKn)Sn zTrT}(=Rg3*^!}Xj?#&=3K}wVnw1O&PJE5TRKVh|i*|%6)?PF~`1bnX9Ob&-0@7JqA z%Yk^-?@ek_89z2U*JRRJhIc1(HcTe7*CO$`=M$+_N6NJtsBJKgDL>t0j{-<%lKt{u z9t(gMG&q^BnDE8?em|KkD=8_tUznoD6oy2|#_f8_V6$A$`1bP9#gOfEFp+k(Gsqpq z>E1jx5cL%Sfw}Xe4^2K*x6L&Tl}svi#kOrckxF@hh-cc;y}@d3Rb{;oA-Va_s^!?uUD0N%won+I=7yx)x?bp9xJ>6~{9jO?J6t70JI8^};ex(Z#xNea%rSyqfT)d_X>j z=S3@ALAsRUn?j>vUhf)ZkWCs?&HH;8E4}&WX6rep5HOO_0WMwfsY~_SJ)$ z>S*B&3X#TXjnaf;5vQ=1p>_-yE5^};{I;EM_u2WYU;*&PPhcJ(Ny} zrS@Ar`;~3yOcL17PL$BFd1t=H@q z?R6t4Sn7sXBS}$JT@UL7g%KFs`YkePKM?3!DG4sPp?pP0lZ*7CaEp8wD)%4LS-m5? zRyZD-O4afLJ>I6omA{CPmQSjx7d~q$66UDV>ho>$l%Xi*u)!{AG**SfqsM>Ja1gQw7H$FZUHDHiU zXJLGMp2D#jizOBwTWxU~SLLX>%uds+GfNYVz)S=C0*f7rqUAVDmXcb>P_|I1Yn@E5 zf39;Q3O<2qBKNu=VbMNSozCae+HzEsky(XCA$QBYe9`r>Zi(09bkI}|`_mr*OjU6| zSi8mktBKmoE#QlCe2_}o&9Dv)5Q1p%wc%!bw!I?J0-`LscZ3k~H_C~^^tmc@Kx8@oxmFq4}s+MLxObmvSNW%o(4R^)1<{i7epJXy3=v^=1 zUc6Ao1|uMQEPhN?=Pk86nO}`_yRv*wb{OfHhXRCh3Vx?VKoTM_ zSK^Ff0pHf@zI@D`){~ z;X+A>%ZtbhQGvt@ix0WS^#>6^48T|LE#-sR6Q=Rpve@m|<1z!&6MsHpS+J80#0-fJ z;sa~w5osAF?6CC4?V%TK+<8a-bu!&5)Fe3C)}V~wH?z}UbLkRrQpc@(S0n$@ar+%p zNX3UFMRDI;?AZ7}GPxH-Bdvx))tx`+49dJZr`trPgY3z?tiNFL-;BN1MU#ikUl`>> zeln>Y`}t)mU_7jIC~D#^Fm{<*3Q*k!e>7U_pWajSx!yOH8_W$-@%0|A2Hi5p(_J** zxm?PNr`v1dABp`{p5%o8K(-erj&63CK=vhlS5G$^Pv_j=w%_!pQYneeOR-sNbupvw zQ8=3G$u`Hb5>Gwp(!yo?k;;rCp`Q7Necip+oc{iF$ym>Q>r1hqna5#l{sww5)O-$O zF&Yh6De@*bF0N)no?qL$+4Iy6;0hoISjp8n83`YSAfgxM54o1?4jH)j0)-8B&t) zcqT&JHW(Kk4?{=YM$W<;>9(HjROs|xAmH+>AHF`CSxBPO%aoVBp%u2eTxR&YNdU0+ zwrw&xi-Qr)hHHnVLqbItP3AVhclr^&>~y_jB@HHSV7f%HAQK1C@BPW#X~X9s4TItQ zU^2&!E_4AEveI&+v%{$ZXT#WnL>M`ZGY$tkhJe@Vc)r5g@$U|o%dv_%Ax@>l#WMFr zyRjAt&pc|Q=+1fDMduAyau&B6*UBIDs_Z&BSYa~D#2S6#Si&oXp!HaIMnWM5-!@gT zITypG8G^l3gCMab+R6t@jj3_z9rLskUOtaptf+*G$P->%Q5j^Rf}c548Y>7LYj>Pc z)Sd(7-z4El547kXJlEQKcFseR-MkVOT9V3x*5BoG3)c8PaQy82U7hZd^q4(+C{Ir$ zo9^AKMrk5xdR-~YtKeqU55Fa3SL5?NASr~4JCgV6+v4O4`#1G-9GodJTb#PaUn-6`?~v%OAeZ}{T*Zv#>)p=}r4NRyt` zfhd7o&^-F9IW`{-!gPht%P;jNTN||seSHK-n}(jJ8@G-I^(wcmfF~ODAV?kkp4i{K zQ-B5gJ41wdL?dRiV#R)dFs>0i<8O-N){{zRyRNrJ<~*p7>@s=&x7nkHo}vlJGz{4) zy$+edXlLrby8b(zViu>QF+AHc@78V@e zduZ(r7)heR!PprJjr1F$K2m|6;pGoBA&%kUGZ{j`PT{PjAh+f8IG%kep3Ih&B*xyE zhSpOo(;bGHJSfmZ?W{)hT&1B;tK#AhFu%K7(0^Du9g2HT-da3s7zr0hhtBL*)EOP2 zr#H(h1i*7{n7~=D8|7X?ae!N7c12k z(-h-WJ}&+|Ai>EXehhE~Ax)6$VU<y#>eQ ze9_8~R#Ex~+ba(nRQBVdaUNOv#PUVwQIU7==G@c%%Z2rrX8U7awz|&L>oq8Nr15xq zrb862!$*$K(GQXt!cO-qBlAT=U}lpAB44`TZ)TnhV8}3FuZVIs;}va;y$qtBiOn%- z4UchYv4}!gZ7$1i*mly!V46(5cZRpoQ=|QS3=OoxNVIkYQ7pJxx0_Se10qDXfm46X z!@Wo-q61c9tKk<4LY8wQ`<~#N$Kh{Czg`YG|0mau4<;M8X21B}_0d^oJ{XONZPLEP z-eh>D%CJiVpX;zlYPElmlc9U5GS{tVWQ;5}|C?>0K1{5$N7nUt_)>ZKPei1TvT)ry z#Uc0z*reX*KvZda-qtdTQ_t3-ewoFT)1Z9T^GRPgTEYYw#f=%2=?<-=0EC($!Y=b9 zk1-@7o`s(GRlk3x%{LT(8Qz*tX>E3EkoW3Stud*vGHAs>r6+76=&A|qv zLuPDR!VV*b7TksX{4jjv%bt*asIc~(r)OLF)@um=FF`K>OaHsD^I)c7s69H$g(TiD zrq{^iBzX?^MJGi=O-9RU<-2YrNyi^H3s*Dcp>OS4mhMX*sXEG-Ka+kW zX#VXtGITKe8zi>};vf+~g1Eiu>tVqcY{8eQ(b4+ezBekq%5AGtrI*EJdKSRSArp!s z!x{JuE~U456x6t!6qV^R#hLdO{F`y=^Qu!3Lc6^yS*!@5X-(ysUj1O^Xeo@bofxsn zrTh=E%&ETZzv!2vaf+8&^8CDabH{TOejnQr-<{a3c6o(Ge?sDxi4YPW+lrN|h4Y@lU>k*snHj&%-QjFBMPdQVRdq9B zlo0*A5GCQchTeBv-BOR$mge}$MvEcZz}n0;G%yye8EMI8BP_ah{;>bOzM{hk&w^v8-NbwVBb|4$VgaA zEbD#|*y0rP=sFPT1ii4Ge;O;*W?jX~S<@L2qrDaq!=c}6*7=?9c_^`Wpwsmmasdth zJn7WI7A<;kOzwpMSZwc~mMDz@RDHb5pw7LD7=FF$A!&M3e(zIkWrLTIZS2H=QA#*i zG5w?=%DONP?2Wj4Eu~Te6oX@Ly5C6=%c3e<5#8xpW#XSic7CG3+VPzJQmxa0|8f$w zX>YbB3=G3hAzG){CwnY-rgQgWsxgx(SR52Wk5`8qwt3et+Ng1H7pX|{IBq)QNOrm< zCTPN&5^1&qVjTa--AZrW)5oq~3OtU}yAni>^pK)}9o78qP2wVv|-{ zwmH|3INqGceUewu&J+Az=qnIe@6%zMsOR5LD^xa4Lej!^>;i~q8086=F^`^mi7RRv z5rr3z(Edvcpf_DRu;tE2$LXQoKV9e-7B}$bUm1G*z>h~EXamgE&1eRPAnd7TDldq6 zPwb#RRMuj^Z+{BFBOfkz`rK`Yz+F)3l`o!}hay#RnC(hfM^yfdJg0<5GshLD7c$=a z7OxsCWGhVG0dXpL4>=!oCJuh9auzxf(&_(@{grEWR_OW0VD!;#oe@7ypl^Y?WrW); zy-JYpF+t68bWVn_Ro4C$?fg; zM%tH9QO|pkLw!5UWc7;VAIM}BKepR0(jN}SnKjJ!bv9-{Q69D?s*~}Wa`iX;Cy)+pk6w~wCi+r*eAOFLi3wk zowddPi ziU-VBDz~+UQEz7RXv^7#KbkkA^n#>Q`Fgy)4chC$hQX@8m`dnb;wjYWm=VK8d_SJ8 zoxI0!>+si0k<2C$(*y?;@i-j&9-ZW;;dxQ=tH%W-Fu(7zr2HW=-suA_`;AWAX#2js z#gWm)rC;D!QS(0{XA>DX&Blu^6a9?z9?@KgcvqUCH13C{2P9mThMmF`M?xHJCJ?>+ zcnN=pw`lyL-K(96J2}%$&XfB=!XhmFi}sn*#~XQVm#6P6R(;TQl-g`N6^&#=zV1G; zY$f*#DfT{kl)!$!lH3y-4q}QFC$a|NaGLBPw8g1zW4X>;-(A}8e7#h8)L`}x*MCeH zPSIi&&2o~Yetn)m5g0t}hO&7e#^-OY1X5l6e%F%8?-CX$7i4)M=HghD8itKO77Z$c z!)RDb1FPE%$n#3{YVy-SNH0Z0QS-aO6)Mk`zxcrEm6s1ea8eFL))w8JWbnhek3OXe zWwm9om8yQvzoBdxfZLn2Bj|X$r_siu8DhK}rs(S1->&+h*&N#zu8;1Lr5g6RIwDBm zG(Dm_p^O+v^z;z~jNcsa6JQa3_;ei4(RYtK{XOXdw!LUGu-5I~K1b@^okra`aIE+cDR^{rWEVnDX?k|?(D0->3 znS7--S2GAynaArLK&m@~IO5IV$D4kiA2ttnY?~tK!E&`lifwOL#;Hc}0t|6}_BA8? z%nhq`dW^mg>v%78BKQJ|9;DPcDE4*?tU z@oXR8+YGyGT9w?tPAhH~zC7buNaq31(X(#9eVK#2WJ?>NfzHR=Lff2g_cgc$FCa|) z(2GgCZ!J;C7ipkKhL~Ma!kq2qR0=R96PO=yL zp$Nbwjl%_r%KZ}t&-fH4Qn+?BL(UIh{|1eq1A(-}h%K1YE1ZPnl~kw-wgOo7G%<|&8=*PUp}xAy2y` zlbI#3k))g+Wm+Aa+0^<87?WOUWL4gZG8)>4ueOVd9q+$%EgB?(bEcVa3C>_ko6u9b zoVi%OKGkGi4n3g5iexwWF%}wCBA)5S;X9ebenA+nS=Z@L{evPMrv8JP{?qko;Q|W2 zr_5*!QL3MjEhIs7au`QiB_AE5pT)~q_!m#NVdQD#Bg_i{e*vYjm-FsUSf7xf;{y)B{OfJv+F0gGo68{shgahd z?%ILDjdVUEuKyIph^6iSgN#L>0s%%7jFsAt%Jyb(X?xfYf9JsRGS+(S9ZD|US~ z&Vj>^XfW9kk7A;s2uA>es!4OPg-XHmz&clTLtU?}mzulY8+Wl;Np|7D%fZ)gbJZ-Y zHKoX_6tk?5AN+^cH6ufgC;S+LRo=n;l+Xykyf%1yWS^_+J@xMhhwgfzO5&WJb7NX? z)A+6JrDTvXo28lrQ_A@}4BW|8b#nvNk5_-vm=Tm0rH#S_41e&)s{H;r3Cg*EV$`9b z(6?p5d0mtNX|%Rl3uF@I#j^w-9w7^J%Kj1C<;VKh(u++>Dnb?}IuU;YY1M&S??50yYz%t*g68O-?3PTq=+Nw4@QJaCWhPV*o{h~blcgQ7}o;mYw%}p4!@mH)E zc+ly~?(Q!4HJjx%T>4E4$m~iVz%Jx%12#D_?Lv|sP3WfkL%l@GL;$R_u^gt~-XeC1 z5yA(mJ1pOPt3nx1$vxtKFRVLHs>M+kh$>kMMB+&76W_EgVxLwLBG=@-lMI* zcL6{SW-`+KUULRC)LV9p)|Q|Xsui&nLX(8TD9f;99;Jt92N{>>o7YwwK8m|ZT zLAh+az=!)U9DaA&h96CVWX9WG(}Q?Z-q4p|N>`DB0@fo;10G8BK<$K4u)z38QdNK; z+et4BS}j|d>US}*LPL@7pp~RL{ysC?bRDzpV7-wi&=h+UHmFx0RU2ND&S#5^c)Bs# zOr}y-8Lh4zuvE9~y%Ng5ChZl}zXF3B=a)b;uPF{}G}rgfSnvM!_cuY+Smu+|jptph zj!v;0!yh$WlFcL#=5L+vk2@%2iOgQEH)GX?;q1=mnU71;g{0z$*wr+4z$qB%GSz=b zA{0e{qAK((co!fPAaaG_Fq@R)h$9`O`9Y$?FxPn7-)$&Ou%|_~QFo$cB1T~y9KU4<9ER}VPj#@; z4CyGR!cN46VdRwreg>fh`7$dP1#v(ObR$+7tRIxop-3dW){NuK(@jD^>#LAOT7U9cGYK_M^n&TRnX}Y~uPF z4nRG3aC%9C3eOKFv90+cnC?zdU*0ue8m;f-2JK;0OJem^!-mpZcrX; zp82Utb|};C4dZPg3*OhcFiLO6GWi%T3ZO0GU{+mrqI{eV#+Hn((c~AIhM2B3=G;Dc zZ!nLWbTgNe*}sL4VfHo~SkUQw+Ei3&hd)_wdA3J}lpx8$4YSYWiK z^t+vXC*EJt4e(9DXb9uBr%tINppjXr|2c3(_K(FmuqK>d_mV#{Bj7hZ-!b5e%1D)w zB{*F6$A&PYz7jrp-W_vax;@A+S|Ko{!^qfy7{kAC%vN)0f+E3R&gPQPB#~BqWu{+B z4SoFK#RXaOb+9r_526Esiz})1F*k5;ae_0$=1#nYF!#2+P&K>BV^cBlWzKBr7Tt^P zZ_sG|E6AZSC;`^}cB?Wpw<9Yh&~7l$-^eq0xxeht&r>N-?U63@NY2=HVJ^_3mI;Osv zOz}+jlM+FYRkQ7>*r7=iwfN@66~K~U9N?Y~;{!SZU!*Sh)Z5D- z_7dXX(=C!JQrg6rdh;?_`oWwLo$45D~Oc`#NQH!eo7xP|ZLuBVYO zWctM?ChwdNrpnGjpJ+Y+HryS546P4Z#W9B&F_uv{u?_VcKBla-&8CLRHL~pMB**) z@&ySt_E~tmj!nYg2;t7E7^^AvUL%1kUUUC+0g58Io_izs_XIo~mpdu?i0OiuqP@!M zB1A?I1|GX|W65WG!2X_)*ZcNRwRqC1>gZ=yic+*jk`J|=_OB0?R7jl-hRiTcYS0m*|Rh@ z8*}CJ6cJ9+F_h-6lWO()W`pz%{Yyg;4Z4adkXsfg`o{1)!F`c-J*y1U>@b$NvydxF zln7C#T4FH&cH!s2-C!}*KNo$#m7>5_)yhl}&}9Ic`M`QB{D`a;l_m4j6=oXRP=c`c z(ZWC%{w|q3N3S3nK#|KLBll<#j064jv}3yr>c^}Sw@oXu_~wJ_qq873spfImjtv4DF1z7`w92T zOiqORS7VE$rH^s;+iwygL?#gSO4M- zVq1`;goC!ni8v!Cv3)hx3Tiz;Z?lHkEm)>w3&KWiF(ve60nh~wl7<{)39-#^{2QnO zgl`yyak7(m2uhW@FRL4%ThBUTn#~e_@PQaNl?+fTnP6rfAK(1AL?s@L&wK`n$g)AB zZT6hQZLY`Vx9+^uGDGumDLhjxja9dwqAxVDeJ0Px7}e_Pf*X8S**+cVdpGwJJD5c* z+wVqJ`JwEO4Cw7%Z8qq{*&#&%XU$rv!?O)-A;_ zW4x^OJDvbH0dW&Zut|Cba(*m_Lh{Ip7qH1qWTZh>`6G-6WC=6)-;6^oZ+Y7Nk;%^b zo_z{E9hH-5im`dX+1H&>a#+lTgAdNxU{|gTywbXhjCDH`M4XUu^q?o~M$_q+qaa=hO_q;jPPYi0Et=TMFNWY%CK}vh(5cyPEvY{Om%!2(g7SW`AgA)1fF%yIFMf;4 z##AuV-d$!elit;0@T^EpbAU{=o;}^!mu` zmUyx=maIyqEJOId-tUXxkY#O`wgyHznQ7p?SKHF5-HTliJ%6=rZn0(E5Ad1MAh)8s z-kDse)!B@J9na?L(}e)8v_0SI!|jY2L?p7^jUm-M(SG|W(@nfJ;*%A%0-~4DPGblRmyGnIsKGe^HQpLO^oki5ho#yAdm6CGsMbulV8yr_Yu#1epj945 zb!ho_YJT_sD&xHWN5<(}F-4>WQ&@b_(<}Kp{_bJ6Yd9~Vm-8v(wA`5fd!vITwi6wS zfk6EL0M2Xy{tc1*l?VpB$ym{ON#!|jb`YkR;=U;HC>}Ew1sT}{eI>|16_NvPW)}1v zmeg(JteZR#iNtW2fFO=Fx*r1aTKK(h6@~P$wGumLkj8T$ZY z;IPv1!r#$SzVr|^C{9VwY=wT6xqo|+^>Qz5w#w`pAk00Zn&h)yZrl_;+=M$2rot|A z*`&H+dl_~YR3(}K}D5WzdsxQBhPnKb>!^B_wlD{ z?5EcSYr!V|4I5$d?y#}%U)H$!r^}sC1heHqLO*7YLx7q?g*KFNg>>rxUQy7Ub{v=% zUJuLG^irg0BGro*H4#Q<>cmoEFR<-pq7RVQ_b5Do+8NYm7?RlLE>EG3iWSxG5qE}) z@ieI-ro) z`Zqh;aUeB0+XuP9_MJMP#&Dc^c^^_;pji<@%5{LuQ9#Prg*V3->ti=Y<@X;@q^k=^ zK0erz`c=Ea=YWylmNPQi^pI&U-tORfZS_(>wst%i3RpHo&Q~L1s&pjn{B2*SVU-8N z1uUQe5u%eAynd)iU`!({WdC%w2oQ4Rx+~QtTRm^MvnCvG{Eo=%3!L@^7t)Ur&ZyR7 zLc}j|5`h69>%ov)c?>50IzbGqlj!={KF1*74g=<^>@4+6en(1mQPwFuJ(Nq-JI0kE zHGr>%zQwPZP4&0&H^lPPXRQnUPxfGtKdSe*v4i)Jn1qHOydPiO8R|TW*XJKJqz~=* z>IYdF!9z`2$>=KkllebhQBKAVEBA5H!-1e^7ly$ShM89`$nh=XKKhD-0$5o1CFg)c zh=54(+&=lQ?2d6aex1T_Sd<2G`_~;Qg z=@@Fo9C`~e7%fz5T|f!0OAi;@B%ykqZn5Xd9{r@y8|FY5wEPUV5s$~QZ+F1^l57GB z!Y~y{TrQ`Pm9X(_2@M@SX(XBUeY-@F3?a_te#rMh~F2Czt zo)Ra|Y#xuqG{!dx)gYjWp@HN-9I=inEf@*17X)=8<eQq23zsUCV@2)s88s?D+&3L;~aDWf6g$)DA{0+*3d)1pvzrf7eV zrZdIehE9C~@DrhkrLQ+;{APde&1tEYG1}$CyRABCsrnf86I6hFt{FM?SA;*bi4~Z` zu!93L0U;L)F%}b45&7JAHI^Mh_rL8B7rjEOm!9X=H(={t1Sct0B=}yGzug|r%}TK* zp=1$pK?=@0xzS}m{!FylwGPt+8y=5i=S@97g`5p-c@wIPO`?6-NuXO!t$>ZU@e*ib{z;SqL_mOs%@2F}R0S z}>ph zvG2*cdZlN$hV*d%@J@vF&lG=!I?nO0(Z1Q@fxj`;xR`IVUWk=}$_{dn80JsL!8Ek@ z#0}nIAasuwGDI$7Bh>TWMJaY@9ojMMPjR=S*&pHn?$|*ex87#jg!AExw8*kr#*MVj9nh z*!x8ZPON`4`KBu4VLN}+yR5gjpF>})Nn<-o7n_VP1$f_{Ps|YSy_ch8gCe>G+REkd zi^IyTo-W_BZI(ONcw%G&QYy4e?@1!7I3mGAX{Mb}CG^2eH+`eo{%X%6dL^!fGYrf& zjuoZsV_?VJkjuh0D8`L1!rK>UNI1D-FFeG+~UayZ2}hv{5?V6bxR=7AZ$w*PWk23XXEW7O)UJvl{Q9#8M- zJMb{eHR9T>-kv23DC9fGZ8H?Lm3ndr*^TN+3;A}KtM1Wy%8^wFf_%%u(4ykm1(je_(`Ne>=zXAqN*~V zoBb=KHP4exW9xaIxFbVofqG8Rd_&vBQ=bT6Rk$T-*|C+EdHn*B{G&I zKl33N;hhl5X2E*}so9FP+>U&&t^bZdYGXYpwNd*19lUzBb_dnJ>F79((cx zZ#)qnc43aMjAYk|{j*222A_j40iuUWpO;WR7I%A=V6QL(_cA32CiZ}>x90{*?fkyW z;9v-HQh-Z#OR?}bF+bd>>7i$Y5nbs=b_D85x8EoOtY+|aS&)TTC!~i;l!PSC0hmEd zjL@bCiPke#!fvh6=FNl$Y!CD8@FRCt@bb4wr{rBH8kKFkHAsR`&CAVTRY7^H3n6y^ zq8Iq(zB|s9T+qR57KWpvS`*UuR2Ul=7ya*pC$?;}Gel0@w>>#$S6B$Gsc1N+jBZk_ zM8I@zfa-33dnirNcGmdgI{r&S*)eLsA+bWefnc4{KqMIJch%#BRMwL}Q!~tW-_X!< z*$>qh9xeOIL#H3})XQjRucfA(SP4e%v{D3+gxuPq-zHpm+;%nze3bK8KvLS)>34$Y zJ8bFOjt$u)aKqV~N0?E5wy8(@*#)kjJZHX{phi1Ye$1R4(6LZ22m{}m{f+RRdQiYW zFMi4#B}pz4&IwdCITfpb18Wa7c>oOB0M6NPN2Bs)RM9-u|m&Vnwxm~K9 zLGXT5Jj?DHQOoy-n^FEREQYhb`8;|-QH|4p%`JcPd*znrolbB6&YE9uIjeENBFJ|I zC|*Y$_3`R{G=kfuuyh5whm>;SwO>XNR8ALSW(BA%PmZF02K z6!JtA->9K-<^CDsl|W}|)D;CdaA0$h00GBO2Qbdq@H)M_xmPZ1o%)8exSkfYjb32Yo_@m7kb#7xaZ@Iamt#Jr0kXi zC>L6vPzhcVrH>FIC4rVmC{_*nv;l{~?AW82h7xQbI$mOh+E?LZbYTMPzuK=nl<|-_iwQ(x1^+yUk()WgxEvFPidH0RvoE@ahueH<1T8_j|MQEmfA|DAE_Gup$Ko` zd5ud9k<>mWB1Z~{lR3`l)pYK)XRh-CB#b6Cj|SnxRdTY0sss5B%Tjm3*S#j=n{|A$ z4j;3QvRM_21pq>6(m^ZurT29X(oEz5>Z7^1E$n>K#5Dg7KBFx7L|pj>lBiX!zsiyL zwOi;O8^aq4-165Yp7^mZA_QSY9iWMz0R0BGzV|c2*$g_b4>wB1RR}{oh=K&Km7(W$ zqKvXsSA%JyGt8ejS-rI3(!K^b=Gt?OE0wjX&l$N7!@1Ib49FpN-tPY>nD@-|)cFn^ z59U3k5K@d=iB@AF;LDW)IF1qWiHD)kXpiWn>$i}`fDqFmKL56AAEU=%KKbZi7_k;M zvbnRb9fc{{_in6tP5z@5BwPT2(h1R4-cj_@iSS7IG=l9wJ2a59MK1{@4XF~B zqblXxzT#!~VJY9R-h3l;9J`htb}|?pb!S(g-+HSzFeBn<%1`66NJgpMBkEp9M5K$9 zl=oP96$?PgL*?5xF#m#(!(iG`1t=O`<>6x0Rw)ODu8N<&THQ$%)Pc+Gtcd@~d#f65 zKWdsw+}Sn|wFgY8F#e@fJyAVTF}#nvRh?dy!PADM{~|hBP*Ny(%0<-N$*`3=2ZR`& zlXNT+WKNJO?lVXe)Hs3wBEmIspeJA4mCpd%2N(PPH2f>L{fFUU@2E7<2c zrcxO6>o+37un9~&yz9}uP8Gyq0%Xv@j)A*0QUOy77jSmJ8_``FB;LeO=jW!^e^9Zx zGBpO4tBYotW}WtlAg3egIh!@I+b$kgk4qy-*?@iG0jv9!u5a)r{kOIv@NZ ze>Z}{a{cTu=LQ6U?M?9;85iJ&a0gJy@oDe^$uLGYn@J@94e|*wP>O^1-njy3@e1UT z@PKtgH%2{LP2(opP3txTBMrGye-0qKdhwo+eFBIB9kNX#ra8hj+k^duzvObu&3 zEhuLupargVrNDe>e7;yO5C|jr9?-^S2~Y6;yjOWK>kf7{vP$s-&rUBVB_|K{XevXp z-fXRsne1R)n6@&uje?QFYu&e9&1$HZar|>n zoCu@NCl>Y};LRTjI4J3;|6;(bo)e{FTdS>(RvSeA%VmSIH>!=teMuH4`lqz0KleDy z`~1YoF581fp*mYYULL>AI(F;dLHY4B9~S z!10Z#W0UUfk?ltcEmI(}Ef*n@Rtsj$uuXH?PZrZ@W@K1(O@2hi$UWW6%*t4_y0}i8K3|2AGBcw zW`dBT>VDbl3IV#m5KG6n>&a;#1eILcszNR-(L3h;{Zoi`?Yq+c#1uc01{Pg@$>xGu zhPS@LS6TVQon4njG=MlU=B${0n9pFGu}c>UDgEX;NPB_~4tciK_~kYyy47Q$jPIzQ z$h=Z2h=WWIs=BiKWg3$(Up{1AHx((9yLbYsBiiGvvStD>FZ;ZUK_hKrJbX`~awEv# zE_mhfx63C9V(6(D?FS}(EXS1qzOS(SkM#dSe+y8@>f!s7g>9gjy;1Br@hAMYXym1k zqVX*-O-2nn$bW9Z$*qdFzz{m@MFpr5G~9~E-c0F*nozleHhtd_rVJ8O$iTB@)RWD& z_0*qS7{BgwUTa^X4S=fVi)>))en$;AWtjJvD^VzV?(#YGtU#jnxHlh5hG+pH0uQXY z+HlJt@_VH+zu(eN6F2`ss;qU5czbYDA@=j(PF4hobbYQBK73(?9Qju^o1LNcSz674ZS8l6*Mi>wbvos~hqLIz2@3JV3( zU#kaOUR4EO`@cuW*8c?{ewdlV|7yoH$n5;xV$v(RP?mNCgw#gH#C!o=F}zPQ6-gtO z{o{}?u9JT%=32X(xcT}pn0miyi}#5$AyWPARpTy~p~Go|QM}D??m>PM%I=Pv|L}{C zKOx(-QneX%B2T~@#X%WY_MrRc}2uP`k~5|xprp0~sF zn`FNEcnHFwCWApZR`1(1ZU~C-k`S>H|LaIYklMtOXImchhBv|ymHI4{*piSth+Mxw z{b9dWt5XKWHLPz~8?2Y!M+RRBIk3AC4;5$Bdu|D+6w~v2*7O~A< zzImRiL1lLn{7!g0KI6@c{}6_M6&>I6bU*gQAZEM9+nn=OH=G{D2)g_cv{ z#*S{R5u?B0CF!1Y60=Zp9+DNUMrOTW#(`Tq zY^~2ok}4{$lVST`G$p@1Zl87dMV%P^a2H_<8|7x~wXdplCJo7Sf5OFV2EX_tkIMtr zKW+LY5D&bs2YnCAtJ6OUrG74bUI++!4nMzAEE->myI-vt4Hv!59}KrmPW_Ob03a`p zmQ=X6(I`Uz?Z_l4uoJ=Lp~?17k--oA@_4NoSBYV$O&I_%77Jap^)OOv5dd+5-!X?k zraqEM{hj{}{%{p>$?CvSk+vq zTXAHyM87mB;{}=zUO*tL4&FX~UKDt-jmp_%tD}HzJQj|rU4dn36}V5FF`oRO@fLF} zJ?#z~yw0odKSc-EVu#(#+Jg6%Dk&uAKXf&;+eIM4Pb?|B<{Sc3K@TI{b6JX#dDMc(<{61K_{7 zM?Ge8J{}j6(Judk@~-Z$P?7 zOc*^tT1J3_Jni+~>Y60>CyaNq?S_i>5itw`h*>-e8OlyuVWE1)URTT-)_Okz^gi2zcq$wF>q?D6#NTOSx%PaR$y| zXSEPt3H(2h!;o~kv98#umla=wJ1i)O-O(BWeL2lhaysw|3^L}TgfGk9z zxGO-b!CC!d+X-Cn7YUsZ)Q$KK>$YXE(O7Hr8+!F+`z8yNtQDnS4X2#1zb$kPf^7o_ zwk9$z43dpogBF}8M&hV!_RY-K`1Oj-G=DBB7`|Bu1ARVif3^@XwG;V{45~7ge6dub zN+${f4oVkg;*tL$2K^}b%gD`HJqX60Puh2A=|eq;8++&waDSQUHR`s75wIvHCG|=l zDN|nB12g@-J^^d&sS9ayO(!I#D&%j7E>b6`rA@=glBj%0$80-piQtgxld#2oVWVFF z+S^g6>~lTuz3K56P)bNPh|r-t(OXVP4oDF{6SROf=qh-6abZ>O8LbWsmBl%M*9{R!)`bs#71N?BVmu52WY)E;+RY%F-# zI{{1?sGYirgYuqd>j=zUQ!)#8?PKSCG;B)Yk#*7@t8C^dBOTzl^JOaCk=fGrX(`cS zKv6JcQ_v}Vy~gmYfcg5}pjH-3`aE#+NNIZ)xUnC3%>VT(Cg~(RaY_AZiwwQ$B;^ej@BQuGD z=34Q4k)p;MdjNxH#Q4J>bBm~P85)2+(GNtbfx%urfOYb!k z`T&!cYafgec0FOEVv~*5-4n_bRM^nI>)Kk$_eY=AFrOAf4aL3fzy3y8fJ7YRGyHRH zG@Ml7-T9wRho+Je>OPn6FIFGgbFY&PUm2tEI5%zykg!ovlG9PsD!PXvMjia1TtrfK zRyO7wB?n1{1V%Y?IS;uyIs9!4gRw#(n4hqncw@+;xm8noy)?oIC!L<)tKZrfl6

NO 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