From 84bd7966b406bb1ca97d67283719307349889228 Mon Sep 17 00:00:00 2001
From: Tanmay Bangale
map(object({| `null` | no | +| [apigee\_environments](#input\_apigee\_environments) | Apigee Environments. |
hostnames = list(string)
}))
map(object({| `null` | no | +| [apigee\_instances](#input\_apigee\_instances) | Apigee Instances (only one instance for EVAL orgs). |
display_name = optional(string)
description = optional(string)
node_config = optional(object({
min_node_count = optional(number)
max_node_count = optional(number)
}))
iam = optional(map(list(string)))
envgroups = list(string)
type = optional(string)
}))
map(object({| `null` | no | +| [ax\_region](#input\_ax\_region) | GCP region for storing Apigee analytics data (see https://cloud.google.com/apigee/docs/api-platform/get-started/install-cli). | `string` | n/a | yes | +| [billing\_account](#input\_billing\_account) | Billing account id. | `string` | `null` | no | +| [exposure\_subnets](#input\_exposure\_subnets) | Subnets for exposing Apigee services |
region = string
ip_range = string
environments = list(string)
}))
list(object({| `[]` | no | +| [psc\_subnets](#input\_psc\_subnets) | Subnets for PSC |
name = string
ip_cidr_range = string
region = string
instance = string
secondary_ip_range = map(string)
}))
list(object({| `[]` | no | +| [vpc_name](#input\_network) | VPC name. | `string` | n/a | yes | + [XLB name](#input\_network) | XLB name. | `string` | n/a | yes | + [Domain Name](#input\_network) | Domain name for the XLB uses Google managed SSL certificate | `string` | n/a | yes | +| [peering\_range](#input\_peering\_range) | Peering CIDR range | `string` | n/a | yes | +| [project\_create](#input\_project\_create) | Create project. When set to false, uses a data source to reference existing project. | `bool` | `false` | no | +| [project\_id](#input\_project\_id) | Project id (also used for the Apigee Organization). | `string` | n/a | yes | +| [project\_parent](#input\_project\_parent) | Parent folder or organization in 'folders/folder\_id' or 'organizations/org\_id' format. | `string` | `null` | no | +| [support\_range1](#input\_support\_range1) | Support CIDR range of length /28 (required by Apigee for troubleshooting purposes). | `string` | n/a | yes | + + +## Outputs + +No outputs. + diff --git a/samples/x-nb-psc-mig-l7xlb/main.tf b/samples/x-nb-psc-mig-l7xlb/main.tf new file mode 100644 index 0000000..142afd0 --- /dev/null +++ b/samples/x-nb-psc-mig-l7xlb/main.tf @@ -0,0 +1,145 @@ +/** + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +locals { + subnet_region_name = { for subnet in var.exposure_subnets : + subnet.region => "${subnet.region}/${subnet.name}" + } + instance_region_name = { for subnet in var.exposure_subnets : + subnet.region => subnet.instance + } + psc_subnets = { for psc in var.psc_subnets : + psc.name => psc + } + region_psc_map = {for psc in var.psc_subnets : + psc.region => psc.name + } + +} + +module "project" { + source = "github.com/terraform-google-modules/cloud-foundation-fabric//modules/project?ref=v28.0.0" + name = var.project_id + parent = var.project_parent + billing_account = var.billing_account + project_create = var.project_create + services = var.project_services +} + +module "vpc" { + source = "github.com/terraform-google-modules/cloud-foundation-fabric//modules/net-vpc?ref=v28.0.0" + project_id = module.project.project_id + name = var.vpc_name + subnets = [ + for subnet in concat(var.exposure_subnets, var.psc_subnets) : + { + "name" = subnet.name + "region" = subnet.region + "secondary_ip_ranges" = subnet.secondary_ip_range + "ip_cidr_range" = subnet.ip_cidr_range + } + ] + psa_config = { + ranges = { + apigee-range = var.peering_range + apigee-support-range1 = var.support_range1 + + #add_more_support_ranges_per_instance_region + } + } +} + +module "apigee-x-core" { + source = "../../modules/apigee-x-core" + project_id = module.project.project_id + billing_type = var.billing_type + ax_region = var.ax_region + apigee_environments = var.apigee_environments + apigee_envgroups = var.apigee_envgroups + apigee_instances = var.apigee_instances + network = module.vpc.network.id +} + + +resource "google_compute_address" "psc_endpoint_address" { + for_each = local.psc_subnets + name = "psc-ip-${each.value.region}" + project = module.project.project_id + address_type = "INTERNAL" + subnetwork = module.vpc.subnet_self_links["${each.value.region}/${each.value.name}"] + region = each.value.region +} + +resource "google_compute_forwarding_rule" "psc_ilb_consumer" { + for_each = local.psc_subnets + name = "psc-ea-${each.value.region}" + project = module.project.project_id + region = each.value.region + target = module.apigee-x-core.instance_service_attachments[each.value.region] + load_balancing_scheme = "" + network = module.vpc.network.id + ip_address = google_compute_address.psc_endpoint_address[each.value.name].id + depends_on = [ + google_compute_address.psc_endpoint_address, + module.apigee-x-core + ] +} + +data "google_compute_address" "int_psc_ips" { + for_each = google_compute_address.psc_endpoint_address + name = each.value.name + region = each.value.region + project = module.project.project_id +} + +module "apigee-x-bridge-mig" { + for_each = local.subnet_region_name + source = "../../modules/apigee-x-bridge-mig" + project_id = module.project.project_id + network = module.vpc.network.id + region = each.key + subnet = module.vpc.subnet_self_links[local.subnet_region_name[each.key]] + #endpoint_ip = module.apigee-x-core.instance_endpoints[local.instance_region_name[each.key]] + endpoint_ip = data.google_compute_address.int_psc_ips[local.region_psc_map[each.key]].address +} + +resource "google_compute_global_address" "external_address" { + name = "lb-${var.lb_name}-ip" + project = module.project.project_id + address_type = "EXTERNAL" +} + +data "google_compute_global_address" "my_lb_external_address" { + name = google_compute_global_address.external_address.name + project = module.project.project_id +} + +resource "google_compute_managed_ssl_certificate" "google_cert" { + project = var.project_id + name = "ssl-cert" + managed { + domains = var.ssl_crt_domains + } +} + +module "mig-l7xlb" { + source = "../../modules/mig-l7xlb" + project_id = module.project.project_id + name = var.lb_name + backend_migs = [for _, mig in module.apigee-x-bridge-mig : mig.instance_group] + ssl_certificate = [google_compute_managed_ssl_certificate.google_cert.id] + external_ip = data.google_compute_global_address.my_lb_external_address.address +} \ No newline at end of file diff --git a/samples/x-nb-psc-mig-l7xlb/sample-architecture.png b/samples/x-nb-psc-mig-l7xlb/sample-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..368cd249fbfb62a89999bb51432779801257a573 GIT binary patch literal 302297 zcmeFZXIN8P_Bb4xGz(Qgnu;ij5D=sWqM(9wL3$Ty0-=Q70tj-IrXszIAV`zm2}KgA zQHnt5B8ecOg_cnAKhDgZncrOR%(wS>KioV|lAUvQS$pl(*E)Hsr=xa)=?oJH1Uhk7 z{gyrmL>~qM(Rec)1FjgZUdMt!ROZgAs(N=-RnO{qxjQ(!+JitMFMOUOHC66$ppnVv zQg4MzU;nPh;?zA{{6yj@!>tdop;}56g)gy-t(QI
name = string
ip_cidr_range = string
region = string
instance = string
secondary_ip_range = map(string)
}))
vYYH03eZ+GWC zGZS~#Z>MUCpnIot4!&KIzwt(_6jb=>Sf?R%C!4}T2UmymF}}p4EZP^P$+$h)D=U5P z%p;6DO^;?Er{!g`X$QeA>nbN5oMl6X`9RfR!a{0f93MLk)_D128*K~PF6zp>1oZ9t z9-9aJ__9jgiJBO_lpOY0{ZkRX@!gLe7+oV~y>IaU+QGH|S#XPgpQYi!eX*?*J`RiW zhaY)C-1M@dTU|es!xqNWer-jvq5(^yC> Cs5Lh& _OJPp+gTWR{qjbPw*?w;ilUL;Ky{!FDmf%jSO-;oMN9^Cv`%Mg1X{ zx~l+k;9MW-H)-1WLP W-8Ddv4I+^n zq)yg5hJ9YN0bF->3NN+o`z?Lsvic3f4?E q}syB|@Kau>txd?;*Z*$>z_*ksteJRwGYY;Rb( z4N`EQVi$;VMzvLEk~|V}W1qh?S21v0zR7F4(JO{vqy^$!izYxozP1!5JpN`T@@eVd zVrnE(*u);m%efrExGgg8zr7KeH16RVG43@5#KHGD!4Yakj6^wXzo*GSucyb?626$j z@9svt)!2I4p)Hzo=TS9JIY%M!9?7Bk6?=+@&m`M2PYJ<7`bq1#r}hpW#^1J Z}V#rU#()GvY(&K?xL@63|yn&s)@AV=6;Lus7F)Lk2N!uK>p zN!=-p#GRnw%Qx$7Id>Js%uc4IA573Bp>=uirDq(p*!$bIhBN~Nt|J4&79`xi%g($B zv-N3_dLnm>_{yy%ApBF4nLj(-q3U|S8&*E&*Ws|m>(7IHf)jumP;;Qz%HL%-q1GVx z3$<|Rx!gu$`+(4k+F1u~%hsW?+q+hA<~NNWPcTF_9~;tNLnQ@{jR_mopd$Kvh|NPE z)VPLMme^m6myHD|!ww ^JEI69SfMDYb} zH9w4zWJ9ZhyB~W2@uAFihb?zVJYw+CQf(B)<6{ zw3^ACMt>`zed79dH8P2V8hZ6z0bk0FzA^d9&eX@Wx(yTRiLXZ3+j|zv#{HTha$Ngt z2VTko#wa?xo#N!4=|sKRn3t8x!@({)xwQc%p9@okEbDAv4deusYaXw?dK9v!2t`Md zE8{vtN3sIfvm{Y<*OVu$uxiM4;s6S=uMfozgl5ts1gxhv?=B!l5|12t^V~|%9#+fU zZIEMcmpzNzc~lDq2Ym9y3#LtK)1?Y@eigM?H3}OOc~@aQMcA0KrlM2O1gz$2av%1J zo+y>dnTVUz=|P4@$##oB{DXA}B#K5W^UqWTA;;NXURl#G)c8z@pQLsckFI7Sy9<3D z4jw||9Jm&~HI;CbAYDVTS&l!uWOaIKZ;=2C4Hw1vdBtWB`g~Qc8wIeXvx=~Nt758N z(PTlrGlwBHK|POjV7mQwu-aF4(|37c+kB^%J^ipUsAKk`Q89klWP1CxfIrsAg)96l zGRxy~dra*o4%D;YeOH01TEELck=dMncaLr;tET_#UDe0=p7r?UD|4H_4Ishbt+!8^ z)rLm>bl#FadnR8gS4!0#vYcuKZzDJ3w)Xn0?;ck6uG@lXLrcGg_?z@le*Z6kg*e$w zF;9|xqWR$_Pgm(x``T|nWmud2YEMG}*j9M5p%zATgA4jlx-~Z(_LO;+UG*y tnkYw>9p!XGOYHHN5;#}O=7MA{at%m804aq0V&wfhzj0kWkd}xaa7Jo;_RgD z;DF`yJ5~T*((8YL@$W4^Fo3h&CjvLabxs2nk>6&jSDCyU+7FM187Bh_*jPV2H9^r) z+|@?E8*XooV)3{2y`a4B=XWNExKP89bJ^^0Wj4xWsmWu{ 5!>vY1!fZ#?;K{LAd7rAoaL~cX_6;FOnXj3;j zEMUG(T~t4n4?F_!lUVj0R{!kp9j3I}L3<7=Fyq`A0J`l}YxB45$pBf+3{BfD{=u^U zTMRW<6#z-GW}&o>+6^elg|WYhzIP*h5-9C&3z6FWWkoD74hE!XgQd>Zi|V-pd=$7_ zQD$JH`LirzX|>Ypmjos9DGvaNAM0sk9xelfbLts~x M<3j+%=1oDRnSY3G{0&_1A^@al-^@{? zTy3DITf~+GK#luAv)&yi@M|mp#gYI_?iauL(k%lNV6k>o>%-*g3_vV4tz`7eDqcV< z+y_8XRUCXI`spIjQ|4wMH{ffB0L@8R_@6y3G3NjPBFpa8OuY?IK)D|Ut3X#*^D{2G zDj*6}VEhU`exL|yDv#f>meVN_*jvU~CE!t$sWxB`A)_(+mqUOZ|BUZsFg99-2LgvV z){Jn=qBb|nou*p<+N+;#nyNFbIqdx25lF$wrZzP N2d(YYlpw~izVS*(X~F%3g0|HoY3^<8X}q|-ZNRxf#UzIm2Lpt$>zd#oUStyg z6+isBoRkz*1V@}%<-Mz9sT3gPlVP5zZNO~cEPs@*-BpP&K2V#VT7fo70Qn*E(2fVs zcb<=vdxDdNayy$A*w2coKW4ZHqV^a2J@P{yx2iVIbVs2*rY0ov1yn;+$I`6QT3_x? ze^GjVr?cg4^F8;Sf@xz1Fgp8kyi)3J#m<-(9~Zn=y@qFOd8a4p>G$fMsUge5W&_0d zD}rX9rZa>bD1#lH9OXT%^>Z^{!c;bXu3;g(hBem{dhqjz)O)gn13AT$>XeU92o08& z{F;jSmWqLXrEX}p>c;QHa0$T`{`gS$RIgQ1L8C{8hGwQB`GE-5Xt{O9+JNLg8C2iB zGv8auH8gT?D>jNW#Wk4^i$&{mtH#oymRJrs9YRVLQqg)9&V&4R_HuQnK5X=vJlKE8 z7j!ZHW(arJ^z^igowKA?MZe|XMa8cTv0eJ^JKYbZaiAzWSqyafx&S &gs5u}XnmB-vIOl)DVY7k%)fq#ue!Z^JH@YnR~! ziHSe#vk|S56mkY$a7+_7tI@U^dn@NvCtq6Jf|a?GMIUf|lE(#dN*Xu&5zF_H=q`z~ z-rCLTM;0`+!B=~_dqy&vh}^SQY5Nwk Gx+$;Y0qA|i$2R91vNtU5F%dc+o-fD0n)X~- zCJIen%Ac ?pN9~LwY<>3iToc}6Exx`?!7bp2nKyzQW0Q}#VX7OiKJUfF&+2|{ zs9d`bDO5yF@5uSp!Zb(X4)OZSZuexDm8!Xs)#5(g7S1CTZ}nxD2Yk(x$GPwcWWS2+ z%qH!j@*;$;asKq-=T&`x_ EYbZX-wzi$bG%_ZY%tx`or2cV>`nr6}Py8Di?p zX`e28iMkUXj6E0l5 tBSYI#;?E^M=UC@Jn6C-e^6xuvcKY($`oqu=y4xBVaHc z-*<~Ir%Fn^xu&8i1hUhe+($E+Z?11FAFv`NGwj5*VDDG}8@ZI8S$=!^yZNAEOQ PC&P_DR&iKcj9LYkBJfve++=hR3K-i`I C{*_L=a;FBs!xVRmtdGmCILv#iIX^1YCG?omQN%~Y{&vAK^T z{CE(G*(atiG}JYXenIk71FSBczQHo4iD**3Yf-Iv*{;?CYBpfoUktVPJ9wtge~Q#7 zQg^RD`+LmvyxH;qgPo#}`EN~<$$oC&*Ky=mP20Dc>uUYQ^O179ak!g2r$z&AST@cK zet?*?^gwd6`yVfFhX)e*?oI|Z<-@cw_9Gec*mAt-a%k5N%`MXxqQu;O3cqX`egEf2 zIZ5*U{ V>{_S*`ZU_6?Q=!J=QI^>X1qO}YBD(ne~2@TWmgD%Sy6P0q)bOg!it zn 7NY4-x% (K3d>bzaN#Hyby ~&Xdln8HMWKfcYi(5(XYV8Y|@V<*oWA|KP9>(We zCf=(EksmLAl9tap_w|lMsQ {R$^^%Pn;_J*ed zVP!H=fH&0J$2=bvIU^V!!Xai7+oq6u(hb^D2i{-sJg;>*;iS@OpULVk)(0yVTVr^G zoZFf~L+nBc__^lKIdMk{*F7()y#CA=2yNb R y*#Lfb@h%kw0)>qCsxJvIw%bIWkDzFgS z=DNjoZZO&y`Wsh0exYT5_{BJ~3B0fZ9#ig(R=BpOj)lHQx)I%#Q5(ghBs5>ZMV#a1 zIFc+oacvj^C~-S&qI)pxy!&kMk>#@u8Q;ewKgooo7j0Qf>e+}B)ewq<-O)fM#`faP z?=Q6Rf^aC#dIb3jH6>1TM}+39_#AB _X=H(e>gU5>e6Q$AlGnq{M)^~DE6<30 z`i>bY|M7FCOVNFK@CJ?NJ$zHAiBBr)>b+oO#(JWs<&^8uJ#hJG#sIRCVUSVu6hZFQ zo!3VNFpEBD&e7F!{DN(h82`AZ1hTmBemu+e)P=Dp8{Qu4HvQ0S%9$}v0l1{rpjLM8 zDMawzQ-*V2awvQAX+6UmsmvtO+S3=8ytvIygi*Y<^Bc-7`Z~53JX`HoiIA@Cm%hXU zHSWp4qc}Vv6aS(iS>RcvQSaBG2M|ANjU4T)0cfDtx8f6+gg8779>9k`dS~G$Cp*^1 zEP09n&kGnK;6CDPaOf}>2GP197}C8)SFj$ebf#mwv6%R|oZlId%622AN}1w7^vRU% zzCU}zCzNc_24flJf94tCylr+w8o`qeB5_+|gA8B#;8J*p{m~*Q*lMFN$ ?D8LrIo@_2J^cL)~x zq%Vq_{Z;-(sPLerRWQym$J+9##}%^VAj!!UPlurXuCHSm@2l4QJu$y|?8hAh@%2WU z|Ju}p7KzqN%Xg+VJNQyCXV#*$qF=*;x>`9pK^Ee75C-vtxF*AX9xxZ6KD!n+#;vq? zeq<hS#f@XsQZzZCIO4NOSRIAJ+EhBN{nV#tlfyz>KT9t&rD&yrm!AIZL*)+p@g z_rwmT-8P9!7sTx!`3PvCAtJ s6W(K<^8Aprho2&tff6 znkSuJyT$rs#}oyPM*X0%OA4rx(%QW>{f-z`=`XyK^=u>J@;NPpeYReOi(~>mjb1XE zQMAO4G~{m=KP1}!`KM9C^*|9W(R{0Uyp8-S&9aD>An??M7v6w%T*O{y-Cv7=OR1Ik zKn3lVdY4Utq_Z^`!`~6VZ6zh8x_I_;yQtY+HN=bfD0&u4;(VV> hM!25&tb6qyWiTW+0oSA+5`SmfE6gG--!UIH=JB*i=?wh2%Qbjvzzr7v zi&z<6yQC)m>1O4@K8PGI94LY%Jb=7XX)f=E$oZ9RRI7bGoFA?H=!+sPa>u+vFN{rG zCyvSo9+?4J>o5TgmDOzS }MsM;ytFAVk-Xf!ykC1?`%94csWD`kU|LjGq47Z&p z*sfMzwj7*af~mH!_RlVBlYdgFF-_bSUPfJ~809zyv^8)Lt`Ktq%eL>{f9^7tB)8*0 z%q2t2aZZhOpOv#`D{!*MEhvya|AheWE~0Bc1z5SZtp6U4)yHKU(zm^Mb}XSVpnaRl z;EiA${xL3K-85FXe1gVv`di~ON#nr*f5iajQEBow^ _7uo!( z(!yeII;IoC^YlkxTWIMZO}XVr9NrYyV}>Y);Ts>NyZDX}DnowQF&fPL=I!umZ2yc; z{%XOi%0QVq12ZMewLx$s@8TUy^~mm1k1}QJIZyF&LH2`_pSB=<5Swg^^jz50Z%&Xg z0Y0l7Jn4-aIp-fikbeb6iXPu+rnaG`>zp`M(I$BFdn4Z~7Lj%8Affh0P9XwdEIavL zc6@t+VT=8B(UR-BaXCN*`0ky(?V+}muXO9E5{Ed$JIt)GLt!h|wlh?N>VW|i&A7)X zO3Ff%qmfRC#LmqYZix&UE9wOO MMXl$6tQB^D^~R4D0cA>WzF> z-`L|H+(S$3uXds^`IeC%o9*^1=g|*F)fNmnjE3TFXAR!@RLz}7Eo#YV)@*F7%a&Pr z?T2?{Ug>dMlwZV}KI(i6`D#RF3GnzGtK5npgyoz`%W}P$_^tI|Wh=f*&jY06n`M_R zE&M-DJjHmmGI}!J^*gm vtr%2+{B*TgE6i#b*>%dEa?((~% z`CV#uv)jh<;&*-{-%GtGkPyOXT5@ T!9D2U z?(Xi);5N8^le@cj_x _OUiWp&DD7$V6!mW{8Ob z#2g(wO8eif?l#@3$KX&5b?DT#i9}RxNd^19iXPEk;eS@@)ox4<%1gTP{cIb_cgGB& zKvWMN?&1vF9aG(9*Yxtmdz35eOofxg9-S8ekKor-V>1sHC`cqo`l}yQF!PB`pUz~$ zgq~$gpEM*ECzAb8d{OR$C2MS9xApcePdtVin~kav3j1iv=_NuJh7dD?UoVl!!uc@A z3rL}BJpiRDq+9I^dRR>2X Em^b_ zzXLf0pR htrV!TQ}Bn7m8?Kya{gDiPiKYf5EUhr{;oTw1)wFo~!M(ugX1! z5j(-@`27?SPb^OURo$28)dOR&LFMC%)A|0YT8I9s6gW_FYbo;BA;e@(r-|#NNX4>3 z bi5UnQ`|V+?7cN(;B9p3BVbirMzmxR2*07*xwxz5I}YZ2ojs9aG`^ zedL@pYtwU(p9OB$0JT=54o0 ~U1 z4}tAY0a}=kJr6)0hj-7rx397EN#(OwEOS;O%^+)4yX?nlVjIiLF8)uZ`c-RH$(bu9 zManKuRbTGbqml8&C>X<{&-lp9F64cEKaIjH$jZTaDiux+E!(5iQP4IYYp2Y JezCCG;XF$|T2)15KcdF@?O+*t@Y3ui1uyRc1z*wfxGpx6`g2J6=)DLuY zn>F2aa;@y2C|V%XG >hXez8P;IVk~dC8_QM8gOkHB67bDG8B{>>`{g%$ zoU=`s3d-ANhS7-9yh_~!;vUOQ>9*{KGy>;SYUU8aBor~?EmXh2fOP!R-z}v%8$Cm3 z=;dtsaD%Ub-q&C& <^GkxN49(k(9%zbo`ulPImzT^?2 +Y TyN zOnC4~t?C=pIL%AThW mT$U!!v@`qIG=Ale(2<8Mo|zTVE;+5c-eyyLqRF^ z?WxG-`9`7!xXAOGnJuOVYbwt!`6YVBH{uy$&4Vi|+E009DCq^|-1}GWn< @}sM zLv@Olw(gtwBBeFsHagu8;iiC()ygZb-l-Jy) tdf?- $GO*+%w*T7D)B8HQWSwn6Od_+uecsuucuL^KnD^g$tb$;aKV7s%l3-#fN zNw(2GSGaBC!(V=@OwM8&1trL^v?670^nmrR62bh%;(Sv3kRc6@KA(I!;A5%rK_~;L z$AFPEbx9%{cd>m6k@TKr9^@d~!7+0!Qv2-%(lPVlDb)rGn0~MOwuh@x!?{e1DzCng zuF%-K(9gtFy!M}R>~`)XRt7KgW?(E(2sqk9sc9%ReGm+5b+CbOEd7LbXv2T3tV1>e z6CE?(Sq20>K{zic#-yh!E*M?(yfUKXh5`9Fk<#+M8QAdym2C?!ma((6CP3=r*>*%1 zSqv1b+@2LG9?1hor1EWIiu2mK0XxTN7X!J9W7Uz!bugg_3`jjpNWssC$SnPQe)afJ z^_ZjGoe`GB&eZLsA>f*VR$!K 4%0Z+n56^7xqWFCOT6 ;JtfXeU9l|_s6J`sODpD`7x@LsZ>FJXVI*{W9PF(R__*Fzfsnf zFyUU6tQW0%XWC=#0(|}eMb)$07#3;%s<)DKlomGgc{!&J#WfENov1;Yt>n1D#r879 z<;o!Z2v*fn5JAjg>NEF6Z0PB5h`0|DVr^%yWB8VBNoPgMy}z}Y!KjRs-JAXVs)ynB zCQ nmDpo zlWj`*>U9mJ= A^;yfSJFIHW$APLh%m V1R{y7ge|T#RI|`@<0JVANg7jBB*V33ScW?CDeW zrB>AO+JhMj_qA58=o@CA$hCty`!v7QOXB>NVd3a1K{WVlEYd!^nar9d!QLf-XMR4D zebcmD&gX`V@+8s`(WkvJK;i6>D}=&~QMA5W2t4tC^+Sjq9wqXz=YB5k>jmq_C=79o zxWt_3PaQiyIW$9_wwKL)R}Vc*tHB24I* N9 zfl-V6o!gVUr*B(Y5DI8Hd8!k8AB@;(d-`U;eX8?TJ69;S)pOmN^!Vj?VbOD&5z;dC zX}q?%>y@su=ibB&v8>tq1Y)rwH1=JG^vw{n@-iD{c1YrpP-w+S9W0Or%>;PQdty{q z{qvWno$F8^WUhSXv3SW|lP@}zf?!R@gCJ}kbo@KL(ZO!N$4q`;No#DSc*O>~=$Y$U z-7*6%(pqSnxoU!cT|fwL;ufFpBnRWt!ff%%1z!m9uad`}vH7GsGmR@KH18DY9NS=? z9M@v)i{Ee2BQ~hr>Zr(qZG2-@I{ZO-9{5 8_OI)#;6+jq93?*G!qN+Z8LcZNa@^ z;_4kyNgtd_Df&D`zn^~p>S1Qm`#9CMZK_ItUz3b|I;xe;XI3bz`m+rbezCR|yR>P+ z{2Mh^?52-Z*;|uT%YbHaiZe$uRf|Hi{Jl{SL>IF>z#1PZ?o3s$2eU?#UB
vw|bK<^+?(+mbGRz#AM@!F@ChlM6&IoPHgIB6#7upV& zmo3X6h)2;(kSdv_l02|oS?|7u9U$Ho5Hxw{ncG-}wX|p7X&h*}I)28d%(lbF%2Q91 zxz6?kKY@tdkBh~y;jwt@@o-)^`G(L+3t?D(kdN(2#Na0|^9g!J(aRn}+SRIbS+)A_ zSh F9bOR;7`)SA09C$VfGPfmO {pl@d>0OOn>mv!NAQ! z$Jxzc7dyp`s%)yZ$G`h>cSmXPxvpI}Ylzy^7ZiE;)Jk^IHFZ}uqiWaZ#o4)L4HFL6 zi~XVZ!mdnLm-N3A5X1mkgX|EW9-ev{a!pD#?R1O0>uq@uTJ^-QwX&-J#0{FBOIwi0 zSjWo|l9%j8*~fYdq(}QK?bJn7N^@OGoBtjB7kY)nygV-`;w0>VwZE@;M*eNqK1Jp? zl9^o|P?7cQBYBh_s$I&U4*q|~Uc>}7U3Qd*++2&@M<9ak6@_z<(*JN; KHz=?6RtHGXL{W1{FOx?_klj3|nnI z08Ts*J!Pvz!W3#oI>PbSqDD}H=e{}d|Go3CPv@NTcTYTUn#B~Mrqq9)8o}R-!xOOm zEU(MPTy}%^cCU1dL8y`i=lBp~wEg?3LwgrPd!Kf9df1fwvTH+yCFN}9Y6NMUaO7{d zS&RQXZ27~JdGfm&MXns&e|T2DTJ?$*eLZ)*JOQA zsA;_ti1iBP(+Sy?l7Fn+UkmqiU_S8kiPL5jAJy0P)L7DtDLS{76OXamG``iY+l&(! zIwBP%N_n&x*Au6|-^ 5JUgFCp#%5K}njK1DEMf<7PMnA6#c$`KUw5CoF}L z2B!DRiik{`OK9SvW=rgabCM>};bRB; w^P$wd^gp<$b CCx zaBhuN8CUl0`=e}JYI>@4O%osQZ&k}*X_%zN<2oPp3u|@#5279uL@@p|`Oh>i07wGn zGV(zCUuP2|+eZ@fc*V9$QV6p@3a05$Sfb#Q_`z#BX-G95f&LX?IpQz1M(Tgs>T@Cz z`3~(5tqaY3Oq&yP{O!`ZDY%Vd3;$&)wrr8~zeMz}k=E}C8dS`GEvwRCWAMbL1`#fN zLwI=H7>I*QQvU~hm?Y`9XmF8^Yy4Sjs_sRCQIc#Ugyh@hx4mMBe9M0X4)1L|K}@YW zgCv!7z?kEEK@cvHw+&C35!3w>3dyCEIp|rF)TV!IMc(PU=h{9T!1&K};k|=$@y1PX zbmxqJ;b{f^^pi*5B{kp9%aq9S`m;LWv>hh+IL;Dc%!u<=+^T8{$UJHU0`v06%}Odm zdjCv8OqtfWhPprMlOnHGcCTEU=a)<`<0jomDMcCUVo4lhQhxRtL+^tCgCBJNSJntf znm6?R5sBo_ o1N5Ve6nROA0=lLoi%U~s?w z>Kr8%FzWeR_JtKuP%X<#BwdA{s!4d2LU5(iTTPaW2obBG`lEEylkaa`phc@Hl8-I- zmn0&S`2Q>*%Z;FLc1}fFl6Hn~k6}>wN19E#r(2j8=mfq25~DQL%j&7@`97H+e|u{q z-0(cf{ZC7{)&?BYt7uyPdT^w{# =lu58ZN8mMd zpj*)*% eW1(6ukxDyE3Ukk4Au;}fsNF~(;5>TS7ovNqHwY{5| zU1SD}Dzh=u3420x -2jJ@xL71Dqo_3*vYN;e&RKd!^dbPpWgWi@0S5d7o&Zo z*P_^lsi2pL43+;L)8KzZri~H+AwuS< qG zQgBv*q~U)x20pwq8X}8% a>==2PiCnTMiVc{)2E2xvz~w2ip& zn$78PW3(^Q|KC;lzb~LKw&hSQED1PlG{#|~%GzNgK;q;5qv(fcNvm*0mxn8QLlrpS zck$TAsO+DiH@L^=B0PM2YG!H#JO`Wt)%7%9XkIKYU8VD**-i$r9T3SY?ixKeLkzqk zlY+Jqqmnv|vwCG%MoD%17Z&1dY-~AKi7PN+GQqu}bO6gNqSj=cs_J?wFQC`&9 K}OEWSQTV2P&+QFcPN4y!D#Pm|CvOV8~luI zaEmIqkU`geg;<8NF6hHb#;_{8qe#nLf0D*#rlPAW6LKr9uCI?Nt|IHnvRqXN-P=?0 zee&Jj*^#!hv%?E+nrrDoqGzY(HOm_#A&>^%GZXMPy_k0?Z)h$J#KdA(`DlVaGduGg z|Cou$&p_W`po`3mXk8)0Fhd*9rP-<@F=TFk|I6Tzu(G-KdPzkEy<~hqnnBvY(p>7p z1E{=!9=u-5V*zDB=i}v7SuEmm&fY~L(kETKTqQCsi>M|5gPY=FDsVl#VBqp3LVE>J z#nEC_fq_9j@iMX2vb}y%Tbn4j0qjll&TZry4|_XF)q9_Zc{xFscVrP&QQYSHD46IM zG-znDYSoPwaXl`=yoR8vs=9#J_KLjP4~c&p5|!#m=GZ&x>TUtWBwrW?>|cWy!Mb0x zSXx&S1zB1(=2cLo)*Do;9rru;^x-_s9q5jVohuP<3{Px9J>O;2aTr*Ra^cHGi)(ge z>}ZBk?i78D+Hw}kw>?n=*bG7h2|ZDj&V#VW1v()yq5ib%Y62ALY=-#p{OXKK%MI7j z*-=9Nbw;Xza|4|{w+Vrjp&bs{e3QZqab~R4#G~0jN2?b^LWpAOAeDoD%R>|*ZfxB3 zj1c=@8%X N3aNbdxdeFa!x8oM#I)FQzYvk{OEUf2{f98UAW)+r zCp$e`MKY |Bbx|znE?oo{+n(`kmzslc$b^=0s^a5mLPD;yHwGjb zIT-^wY3^zWI1+F4G^Ax?GO}t*=F}hpETg= sK32gcd8cB{WA+Jxiq7;d#e>kIgfkWZ9gMnn0j1lr#{m=bN>{ol_lF_^? zG}JDN_AE`aUk+CUjm)KYuxF>)`+ou|SgiU8T{2L+FPYnNTAJ$2$h8!+O*Xhq_CNgO zxBYAR*J4Avo9)sEYb~|{Crc&CtjOF27_rJ=VU^bO=z$N&Nr5ZTEc$-*pkjO?=pJYr zO~|`}El(ova2CYCME4``KDb2D)1X$o^mop8RX6(rY5TUKMJ~&ZBW{mg8=F(uL5+`Y z>%xAhT~;8> {KcUW1H=;Ku zjfX7!b}6BU-!3!N@mzmy7nwhov3! G939=X=IhgNzfB@@R*R19`|HLeG`z* ztWMU)U5Jl6c%1sT*^|n%kneG+4^6~@XFpO$utEUe7CI&ZWFkN07fsQrF8e>(3Jdy) zWV)Vw$aAsgQ!$rL#N4w9Ug}i8(Z{(TIbH+9>~lVStq>PS#Pey>Lx3FoR_j9C>fA^T zqs7hcBlnB7Ni=J6N*&xmF)km&F`)q~X`yFNS$xR%uu{`v^*ry~3Uwj<+;=6szW5%V zRg?c#virE)%l4L-+3NPU#utV=+^;?Jiuu`HFBK(eV*WmLBWT*4UMKRlTLrB=0pcXK zSf7bxx9@lwz&lHTc2{(^2@M?8CpKY+ZM>Gp#Uc4+8#~@uWc?C+pWIz~(PtiNFRSVz zre|-qqlK!dA3lxAc1`ypB%Bri)W1UXMccI;c1~yzoN9$|H^2?`6{6TAX;LhMo|LKz zTCaq2x_@Qz%V+vrWEA`Mrlm5X+8l9+9_~+mjdF)NIZ=IW`;fR}{=NraR?T8GKLAAK z<|ZFoeq1um{%`waU53iv*d qxRG3-fYKHkAS zxr9FsfLmM0i(s2C$&4GaU7bkQnwo4amuqes{Kl)cW941J9cOqt$b}dc)n~U=xqa$S zbIHCF+#Z7{=p9qsHa&SIU&Q9ykwJ}YK^(4E!vg4W0T&TQq6$=0;_|PWFH%}y1Vm6Q z{PWwHr01Z@Zy;I9PnGn5#vl$upSxg&Gd@13P+tDA+7=<+y0TesOupA~izK4S^~te; z*Is;&g8Hr%sZGlZ9Go1hNM>M&b+Pr{@Lshu8x4U;whQR&Di5`Oq+lDri;_sI-U*?a z%X?OFN<&)&XKJK;eQM8=k)53)75%4`m^Wa>?b!fyD#Iw=P>sLGfDjfEQjGnVcPY*_ zU0CX F-<7rxB;d~JLsyJNpxbsz?2^tsA(en`MpGa;|MYPU7E zkNN0q`z4@wP=2xA zi{9triqtlB*j >PVxNRiQNxO(+;rE%06!Y@i@%Si z3zroi6Oae+qB<{xBEqg<&7$-NfR?*CQBy-5nJVPX&qQe}a$RbT(*C^m5kkcOSd=w1 z2yF;p?XwT+_tZ$0S0D0ZsEp;{c4^(OiSKoo0fsW|FHzPvH(xF$dB%#k+vB5j$)J~X zfB y^CH|yC uIEUdzw&0FwoT%b=NgRLQGt;*wINBR?5u4px#N>_685nzo$x! z)+)8>uR-~t&%{zHY`(rCpa_)j%o4*p+YpnE65WtgGtLCqx?_=83zX{1@5;SsKz#?l z2wt@IsGGH6f*R=yg@~a9e{DqZ>8>ths*?Ly+)g4OwJaNSa_4($e1UKAdMo6#GY-9J zI3hPKOedyC1gC3RXV>WIffD6Rn!>mE=H~Xkm}6|KHzu2-CdGP;KULbOLKoT9ayl7D z=JhT`*T8 anOA zlrlL{1+r6@FxmkYcW&$tBpx2NRqacGA&riL4nk2s{J;|79p2B8BwT@ZA^yv8iH-ce zF0cH-tfD^0a+eO0k_3cAuR0KYBQ;r`bsbE!4r@NgTVeX%JZ*ZNOE_?zPcBfY!_eQE zn$%QQCNnuGW50Q)4W7MSHJ;;!%CiM#4PV!wo$H2~=r_k2B|8nJ^oFoE`>jz8hOOIR zdA+g^{EAAWcE2#w?MMIMrWR{dcuwyn?vIOs{qg#HL`lS#rd#%>6EW1~sl#Tr4iBML zpY}!Ejo-Jv5U=?A?}!sV2aqG@({>YD1enhoQHJPHYzhgX&}fizgwtqR>7RYtZu&PU z5n2pHS?Ag-uv*H$tnoP7cYSnqaVpRwdh!pA0?e>!*_){$ck*ZE>7)Ar6yKt3 _MCZzqbeo8dp|s`b3i +!$1bLr}Q#vr6l z0}-Mq5@n@xwAqaB#b)wr)v~@545iM=;f%2&j7~jEADLtATF#*qjrmDJI(>;u+32_e z2>6xj^pj6PQ}P#U2VhI+oZRUx;d8rja0^b?Lr3lkAeRiUd6xkJ$S-K3X2>$q;*z}| zL+ ti20J8KQ!`6Z&&Kxum9mZyC^=ZAR=mhIcgPN1EJiQmGTK?z#uNAv8s^lZs6`iU)N zp~xOSdzRhlsfB82tilxoyh0MQLt=VinqD$lL02etUb62;brtRRM&7M}%S`oXRW+{< zF?=+l2Q8uxh&-kN6?oB#u9@Tl-leQz4gg0YdOGaT_shx{b rzr2WvvlUK-fY zq8;zrC&bno;zwrx^ Z9K(RrG~e^)zcWXi_8DUu+| z6izJ?$pqT-O09FKX)Tc}ccnKy3~AtD;F=&-i-)&ioir+jC(y;EN_u7r;Y^U5R4Z`c z#QD%zb(F!@@o@6g=%=iN%ZHHIlS16svM>nxvTZwT=lTQq(;Mj%dF|$lS5vt?kfKsK zNU%JWj!=w=ij2JX*lmvuiDX?~FG2mD^fm<>gqyS1pM9^J8$}n{jIVy>A`B~Stvy^3 z+sanDrv`ZKJU^~c$f3#pW+oCQ*ckLVCRQ#v(*~RJko6=3Y4k5+@JW{aQG0V`qs;=U zl6`MWGK)iWTZx_8Q$jwC+K=2u>r|43FSiaS_XRs)!va~8h<%^67Go6gSs*wh-2TVS zUfC~q1>QP;mP>i*r|f?c*CiV#Dv&C%(M&GLjUf=fRXI;uddx%gWr5JZ$f!c<@URp> z%aR$&U=$Mq-C&gDw0JD^(~o=^7(*tSeeAOOdc3Ne{>86?%-acR(l>(S^c8U97Y|7| z4#7S;@Cqew=*OYWVb#YX=Bvl+?u_eZ-ZTE)s9AMfw8~kSoSMCk)$(s&p0a08+8uMt z?=%vkW}aDTrL)Ng*sr;hAuFC}mlUt<1*L5%^{)1)7aJ@HdAkg&W zF2Xb@s_YXdIyW_>hfy4MT~K^5mga^vVo({oEZo8YostBEd`*p)W-)bAS|! jYkGM12k j!tEYy`Q`N0|@c~kgOPDei` z@|$>Dj6}2DuWUvd{5V=fm?Qe4hllgsw47kb>F6zbHQ)^avI7skN65XIVX*SFwZ(sO z0Yt?F1l-)$ t*Kd{`+%S@F*@mInv| zln&i7aWJTqzm7+PJYZ+o$ykYri7LF^D+GPf<8jDEU!q_AMb8iAjTV2huyfikx2^G5 zAxWG{saUEKf|WeW4&Vjk{TC4XA?+_Iwv~ypZL&myqMuJ$v2WBjw|GCl=`~2&oOyJ zu;DL$6pn~iC8g*=3_UHq7?o~&{VIfJOE)Il#fGS8@z||q|KV_~CJr4HbGIW~EMl>* zm#wAncj0994EV=K&n>uf79w};;J@06aHDmJe)z1v2H&rSyrK|Q5fB+cH6{ggVSPX3 z=S&|`(s#`OwVJrv{r=i#O8$Im`M`y+d9Iw{i yOnY#CN+8SL<6rc|!6`|bY=YHSI z4m**Zm!vqgHc*H5)DhJrk}=AhR`ycU0xjG>y6~her}El-%wd{)oaRy nkBZyhOQZ6fmv;-xoVN;Bb=p#}rhLc!c3JkIAvQZHMz9g58tn2O3_~G)X_c zk^>Nq1UbR_$Kl)6%1-UkHgg=sR1xsVnGYl4&EejQyWKA3b-~eI;cPXRlw%BXGg*4H zZ{gwjP(K*U;$GqM^!-M@?^bO+$i}*9_(ZYwWZqWP>*@s)E3<4etRjI~KY;U|7OC>h z3lAo^L)C+C#lii3bX-jF#=bJsjPe}8?_j;AVN}~a$is7b+*Hv8&mVtVBD_%7E!?0! z)8~e~%mDmhB;aLO-n!R _~9~nf9J%WjSg`h8(;5R zWeR8@=X#F=MV_X7s1HQ?!AUeDchzGph}*gQ{Z8?WB*$u_FWJ%j@3`MwT+_=#4_+Ct zt40YH-|ZsH#KNToq1}7T_7FV%B(^92tK;Q-Rkg}-;m3TBUsE&n812iNJ1V`)p-cEd zmGj<_Xx&G75u#G^Nlw$~yh3Z{XyrvlER(W*y%X_c!W9s>8z$yPhtP)u2nJiyv^+x& zoUPUjZH7y%&8&Z(EG{gRfJWjiYcP8ck3~FBDa&*M{H)W2b6=;-r 1_bq z_u{5%k6>rXI1e1IeU&aQTTr6((M1h43WwZ rDseB`9{Qe?Ti2vo_-ROQy)|A|mODZTr! za+?D*m9HEaVU~ K@fH3bwVd zET *Fsw->SZK)T{BH{lPg?CR)-8o&WEwz)@c<6Z?b0q>h zj2|2TV;t+cB2*Ln#G2~>dkaw5t2-MJLKc@3OK>{bUB5ivC-P0ZR~7R6Zoa-dQ_i5& z^U~{)Uz;xM b+juuuoAoKG{LRkJ<8L^<_ z(XW#xU$TC&6B~T^B9q%ZXHeXh4Iy=ZX9PJTBLm%fS20HPmc!?1APN1tC6$S4+o`pK zs_SLq*Wr!SDWzISof+Tp^ym1mCz5RG80}P`6Mzs1?{LkAz;EFeXmg`7I5t*LT`(4) zT-&IX@jT)r|6x?deSajieqxS!uGmwD16Stw%jlLjKtcrgO(60rxhi*EMoC<|4_4zb z#mgUpTYMkWRYY$(C3gPx6UkSV@$?XNb;2R`KTf?EE}hD%ig?duPjc7v$3VB2;CTZ8 zQyUszn-)(QJepqE`;Cc&D*sNW2$jDK=uTvk()Q%YxSX~$<9!SPp3w1q&H79qJ#~Df zH@!2zBIr9 *GR(1zbqTjLe+{w9(Axf#kt-C;%1aoJa2Wia8pvy#rFfvJb_IS>3m#*q z{Cd}st{aXwyhk5XQrWjfr N}yb6*x&M*dKpu%Qxyg?LNNuV7c(m0#yfnPVd|(*# ~zsk zf_nB&)p} DLFxFfQL e2O9E*=NY9>9<(l0w)16MklO z-Tk#8(SH6XMEHMWu~wKCgxy8;tM0NhpTnf<1mJlQA8}WG7OX23Y5?UuT84LH*RBYn zSKX4@369x*Pg`s9mFD6l_UdoDg JVG8lXuytSoQP8WmY zp&{!_A4q5I^J9p8%11XiCTL{y7{udXXns$7sw~MnOlL7Y<8OoWR>NZ#AxIoy{n0To zY90~7Ey4`cLP#69?1pdGLa!cSCl!SUrxoFNT{`NJPO9*+i~*DgO=!6%L7O%Uv~s}b z?jl>6$WKX+@|~l$9b4PY4p;y6!y_+Yf+Re>y1$N9I%al8dTE+gk`u2}#u7`gw1q=F zc=a-9=`#Yk$H$uL$&UyY6JEo7M;n3yb8Im{=(ahh?{Y9Fx}`9M2PAMwz+b={CU#2t zT2xG+{+0rPrStiu?L_iaG@nRP=aYHIEJifs1%Dx5Cx!t!)jV?NeYf1!ZpQtwy5ivn z1PkcdsBKf?{ZCv>Y^>}A{H|~(c48yA)2Pt;7UyL68j6g&iq+wog*nyo1y$nB=F=AE z>zF#+K(7=hQ>SvH<5Xcs;=XRFiS+euJ2;txHJ5z@1%i$Kcqcs-sWWA@o%{;l57^|f zEet lD zLs- {Hdh4^NU;bSamFhLR9Jg>L?dp=tNdJXT6XL z74+TF2QU)^YYCH_-`BozYGtcWf>M9{`0?nx(pAVXVlGjTW=DNqC1mv5rbO955!UcL zbK66jtKCXYw^nri`SzG^6y9h@js2Vwzw4UT%IiSTC_(;cFoU3K3oo(%ZBuMWZ+4fg zit{t#&GOef-ib3wG(67+^^hRnCtN>Tb_$BS^LT0E5PzljfN!^-h+58}#FgO6R~t!H zI#?#LVN}i>W6Yz!(zAllpS^KRX^Dyap)3t#soRHpM}E&(5|^BWf+> UTZ q7oM~jBSY9J-%=te#= z;oDQt;exm=I WxQy?C<2Bf!S- z$PJh{>zpJ&f4KW#SeVM?N3`O#W{^adP=fC-fL2-3#Qb ng)z^tylk(DKO*He)xZMQ&KYh2^^ERLR2QGE4# zSI`HdPJ%S?0}GmM5GK^HEX#%~ a)Ze4eZHMT=aE=mBDF*qPv 3Oy}rrvL1=&YplCZ|)c`t&m!g6Lg$5a`i#0y{gXt>kdNF5>BOvu%c&2RNjI;JaU- z%z$ %^wNA|Y6ERbgrQg#lKp{=roP?V!;`{^2 zLo?4qCJ)iv3S|S3s`*T1+p1MTAO?u#)em)k<$o&->vTEqMX~6+&DC3JQ*-#L0YsdC zLsci>ECAiq@W|h=68&rL#?rXc&eC z5-3abal@W?2Z1dpK6T~XYeOIUorB*nd>{^V>3F*xPrIM7asO$#VPgI@hmJr}k`Gv7 z1= VFh~1$maye2OKpmn zft2sx#4wgvF@hX9ZeG6ctHy8H(I{AMY9M-Zjm#|Dt?(*0UxhdWdt)e+t!GQK&HAEi zn_fg%^R0PvUBXkfm
Q%SCG8(+;nl9Ny+gN2u2%-Ji4>g}1^B zcxvJ^5675`-~Q0E`)H@)>j#63$aC|GhA!0^cOcQKrnXh=z{;HwoG$Q?sa=|{HjO9` z$uvnjv?;fn%d$=4&<&asMIP2j2c-|NsX&_-DcmP@zyYFTWhcbsm8^%Seuphiz88Jo zd2->ujVPa4u_~Vs11@%_MAdL+HH_H6?-7n8yzBaKjtZ1T-HDGUW@ZZI*b5Ypbzfun$!pC9$sJWk7l%LN59)Vo zlC@=7zp7&JIG_Khdp>b*<;O@pj-t{zZt|7;`-iLfb@zvHss?R7<74gc<_6@?i;7O4 zUv*DL=j9?SpE*rgw~EfU4Bf_}NlL*T+9@YM2!|aTf^v#L*zv=Lq^&@h+sV9q>a1@R zprbFL $e_~TwTHn^p2bLFlMl^1$QtFpD(qF2LMQ(!@&dl_5mjt l9YAqQv8P~ z!%n4pEaxl*U2jH5ZHP*AF0R6y1kkdJjUEpuI%;3oek;&{5f?gakL3LCi9@53N5fR~ zPBk(Hal)UUHmS}B53RCJD36!Q`17CWPz`?k6+Aj51!wXk$5B$U3*q%^S%gqv56zX# zGNM&7e&7l7_uZYiXKzGeKdizEdLA42qW4p89ihB|8jS<1on`cB5gf)#{elx(y>sxh zd}LEcLPBUH1f7f=zr2&EnhT 4NhA}F zXDX(MAlmZP3HSps+YfOJ>s@ml2OP<8MX&rFJv=F$d6F`P@2z((xQYGUY}TTlY(nD; z#K^jG%q@F}%28cYpCHeV-$#FC+R`J4UJl13 Zc)LLW?RENe!GOg`sD zvWcL9;|VelgVVe M?BQx0 H3Dhxeufo8)Mt@`&SJcJLo5@=(8{Fnefd!T|p zT@!@iWwf2L@yp1H&FlNbAq+ C`evZClxTkG9PdtyURO#IVn$d;R;)1hxN1);RuR+FOb zs%JS6b@Hvg8)#C65GR#y4j!G;8Ez%kR}3+jJJ4j)QgU)7VsE|4k`~(->nQf%Y?yFK#Ur7zs?g1e^h37cJLMO$p2s+yKDuD #P^ZsGSwOP%<)Q;CN)3M#XPJGq pZR4jN1{S|n9GoZ$P*9>P&gsDu6Q&BO!;tF%nbTYHC*=la{t`O|H zJU|j(c$) LmYXXbQ7B>+|_p=JUmh%hoLlrd_c7p7e++)%^IEU06;JM z!?^%F8vPIr^+Lp31`-5HN^~VeERx4*5VgSaG0jFc3W!(lDLbvu>TB1gai((7+v#5Z zSIho~m3i?;yRLst#MYq)kVe7_k+jn*rRB^p&wboq^#PT=#;fDQz*$~kN-F={aPA2E zOmLn@F6 ~izX8&ms)~j^x c3! B0WKx`_HHt-gxNFUOV);rMJeARPYN7EQ+0H$#+2CV^pJ?Y!BvV z>8)jRw6L(4A`cc^Z8Z-Qv{>$T0Ex$F+VYLT{R(m!_J_Uag!KWm-^K^Q-eFp*f|%{z znL_u~1?q%pdh_HFy@$m|+HCX)2kVq3Nta xfqbL1&sMpj@ne%VPHVW^1 zddKU^fV(B;Ml^hmiFZw#ir4@W{g|zHT))*@t?ddTs<~)81BN%R=p&NgR*6|Gvis8r zU+s>RCh_-wLEH*&$9s@C{M!DckAFo$p*&TfT%cv>A?-u)dupz^RJ%$7YzrMukwip9 z{8ONv`TC?(r+N`*tN+d6{?6&Rvd~%Z;MmfYNf^Dt50;O|tFjb63DE!niL{`b{8T&D zBM!2`IGP(l!1420AB8 z4Vci8a8c1Cf z2QdoUkfOOP*!=&o^_5{&v{Ad8?nb&ch;%5q=@O7eS~{c~>DqLcbc3X*l%#Yc-JR0X z-Eaoq?~U)A^AE0zVP@8|@?LA*Ly&S Z%Cb`qB8NCQRGD*_jiwq{O9_8+Xt22=Pc>mw={RDt!LniJW-r{ZaGv0-L# zrR3+B;h6)T#&usRjLCpUn4SQ~Q|gax#dI|71v5uq-*mK#%^YNUTA;Keox-A{nS>!P zrwdT0dU-X*e)$%skR_*btr)?U&^o*G$#HYZ^D$F~-Djg zsS=DK`&y$pf*PRB&4_4-dm3R**M45f-WNok zI$kJGJ(TIO-iuOoD9e}WBe}7b?s>{g5~wuV)=QZYA20rR(_@9Ks1tV7B#J#3JVGDp zj)^@UP2G96w0OIXKR3*ZkC`Z7B!OB`ls%;is_|2*hXLmZOJ3=*8h1y1!l8+8%XQ9; z5m(bl(x9)fA6XIYBk%9gj{*%Cep962e|^||4<;aEN-$3A8XU!j-ik51`pMRm)?m6r zPj?~;`d8Z-Ea*TQ8q (c(BM-Ic>as7XbuOp%%ktuT>GrWgxFYt$dPxU; zv5+n(RnsXVHJLY#8%~jGX#@&n0YCu@(`r))6a2&bz7br-uQT>Cj|ANECwmi&h2{o1 zfk=-s#n(-@!rUV-RztqGpnUP_A$MKjXA=ukVs3ZnL{@p}dQsUwg(QY&*Sl&wpqoXE zjhxJ?8~zy0KdPcwZ7cn1((s{IjF3N6DvBg%;c#ujl@YCeFOt($BJJcJlZYL T z>EQqZtE1xZtJ&Jg&hv^+(7xlpm z7{{@j5Mjs@i^eJ6Q+*;?* 3;h3cv@Mr>XuX8Zk%yX zKsFov{@WYNog&8CR{%dnU}MwT%3Bu+(zmX*c7(7VuN*-kqOr^M2nUwD)e)#C47^oX zEOonjiOH! VF)?I9B@1a@ z 23bH0vRC4*@I_<>Wm4d`xbm${ORZDfbl8v)vac|dPLhb)eTP55c!seQO%k2 zV2*2ei5f9lrQqP;5xCytK6ewy<&j<1W0Pe%0R-xO?`_`Sy??gpyQCg5#4Pl^e2(qK zJKeS3xIE-sU9ntm|2X~Y5Nyj^M%VpGU`D~KGUe{qvc9rm!)&feU+zGAUTtl1pM~cQ zC%^p%O93sS=JShm1_l&X6*H-I`6YQuZ|DMm F9RLdT8+SCe( zzzad|_CL2?PbUrZ%&F8x-p*nMF&$l<_sKpglj3ONn<>yp6&3rEt!J|-d2a-nHuDt8 zWfmVmgvvNzcm+OTkuUfLJ{(W`u2Qnf_eFKAK@3DPeoXkmg%o46x-11Aoo@NcfWdwV z@!k~Ct2R}p=ZIaYF=lPKg@ptW QECM7@Akix23Q(Y KX$K?a%Svs(J)ygP-nb=8#M$<4!) zJagYqZQp}ExETfUx?*?G)zSR=e)Qrkt)QT8P+Ifj!|gFSiQA|lGosyGRal(@>mKfA zV~fsP6%~vAB$nUx*JZMk?|lZU1*Bq8OL#O@SR6t8hKK5A(PLjeXNwB~C_0*9+H&`$ zF2{LTXrQqZdS|D_e#w`v%jG0z{qa@1P91{Rl>X_-9V|{+?+6IwgBA-6i+kGqcvSau z5G8h%4m5eivL7ZNRT!v+^v~K}!yb(!jH<#&9q9Ys%F+&;1hW$cDkz9P%z6X{4*l#? zJxnh(#)Z1u*4wOk%vJiZY?zqRi`MBch*-ak?7AyTP#_nKR3&|%@XCWsK20bdkrp%8 zW1vm%;q>sOq5>Tpyf;A;5-o GU$L}j;+EAdBhoSv(gQVk?{h=CYh)dH99A-}I zt2?1B6%#D+$eizXj*4T~L`*Dj;WzpsU$Xgj+x(UTMF%tesH4voa@)l~evq2zMzPZu z4yVk>--Of~q^CL{u9oO-*EAgF{p7H1FYF|FcQ>TnIsGfjF(bmgbNd*W!*UpiLYu6% zVJB?Zh^91%d_gr`QHFXw2rG2DSx*{Ln#Jo}h#E0?*|jkik cH`cXnsrLPYb$5WktptA)h~e&L|9) zpTfsR3(uIoWOqC+eOFI%eOf6UW8cLb=^*`1kJs2C>9*Zyzny;tF$lExAnYESR+a z{6YNbx5FeWLGcXEJZv&TgSK3O8pwwzcd;=c-gQ3>qsn`im6oyL$B*KS(mn1?1Qi!W z);b%Zc8H={gv*}X(-@EWaH+RtZYY8g9dhdF=CTCOU}iyJV?j1sUSy=)hGtDb&QHkr zm4Fa8Xh $@Q-MmzQx z8>?uD)X`*ZSWK24#fL|@OC>QQ0e3^?aa@EILHm7MQF<#(6}=dFl#JvQ9-Je=!AlZ5 z{1k{MUsN_bB4(0$5%Aeq`{xToWQAU6Ivu-I+m4!M&C}#$?|M>BO-_kUn=U%zW0cSx zUubveIiDRlcwG9fM0S~@hy1dBSVkb&KMX!i(QOq#-0Rk_MiuL>z_XNdkBi?;3sD*g zSf$v^==}@WO_In_)sRG}4pKz{yVd!k*3WsT$7@9R9J!K*SV#M(Cv>o-6B2kqwhoTh zzB%Dz)(d!D9l1p73pFEC&je$T#&QVhhsl!R^0AgW2gJC0Zw_lInHts`r&tIDcdbT| z@-Vi|Vqw0uB@D^fbX;kLIVbiN{=SxcdY>ienZ%pTp4>y>DfgORnT_*7Z4s(8sHUzu zYA*iLPksIBo9Ini>4%f6m$Z8aOU-J7g1m>UA^TC`JIkedLyw*>_MdyhY}q1aWFO2_ z@p!bG)OkyRvsuSprJ%Ilk@v?LUGb-@a2@eVoktWfaG0%SFffwYo53C(;pDwMw9Fw- z=NWquItWSKdbd?|^`N@kl0tcW+44CB-hihnD6^4F{br 3hk48iq-L@ z*Kv=UU-4r^hdo^EC1b{#x6&xn<`wRNekuMdd5*L=Bygu^#`113!=e4md|#KH0`| z&k`nO>w1eysZ8^RSYn1ICGU6Zq=HTGn$Sx$iVy&j-+7SAR;A_-u{i+jotzihn|tJB zSh!G-$jSxgw1tq@i^Km}?y!7`5YR4N_DOccKjn4YK6qwNlI`D+7UU?k&S|@0p|tg# z{%$S%K3vm&YpuUuW}DLYisjk*M#;?;$ r7J zxn$f)i~Vai<~`?nh@kTc=leDsonYO|jLU@A9py(teY4wJyW((&-JjV 6GN?@>eZT+3xHosc@)^RD_G}&6ABQ(r) zQmbnY4YjBJ5!{+MTjneLi@n(eS!1B5`Qf*(+ASQ8q{qz2^E3e)e~&@$t@6>^3ksz& ztx!{#$&K``7cL2=9pL_JZ)4@Hf!Xnd-6UNq!tn6Kfco-sWXw>x(02EdXsSBVfYr0T zkc?6W zg(}J#4AC9ok?;KlFkRqA~ZaGgDHa9m$gZ$An>sVFM zESM`B3|~eOAJ24kN~l=t2-C`(iZQYoI2M}`+(W){^J};_%F6a9Izc!&1O5GB6RG;H z!vzHeC;Z8lvGm0=M8$XT#2K_cgF}DV~U-rW(TD78h-}zP=) wnea6QWj#jPCYQVy3Z?4a1vskAdB+xz05k Hii)`sOQ%R6d$!Kyna#Tf$snBdVX2sG35R2B28Ya(F Y-L&zNk%aExI5LHl1VA%KSbS%#P3eOjhjW1@^hR*|WSrLl=9VY#$y*E;4$* zrkbvK&fMXA;^Y)Nd?5foDnM)RbY*6Sd?(tLn<5 T*b}r=7(a8xd$}dOA^MPd_^Gh3 %n&uYsT5;6d0{qv8-n|?CWUDfZ4y#G(}wTIeRLjzPAO_jkyR%oCLz|k++>WF z32{bs%60nPeA0by-{0PlptK)}J^9~8C0I#aN>$S^-|qp@v5UgP0i-=N^F}rZN{jsj zx=6m6qlfokc$$q6JlT52gAWeTBM)i_aVBOVs6(ZCZYnO#!onKRUqKR4AoPuzu~SH~ zPGnZpQcu GddZ5Q71%C=hvNGS66|h zVbbtwc^&ho%H2BQP8rO7Yuwapk4bDwv=f{f9$?71j=2UyQb?D8TfPAI)AKFPp}qmX z?>VAD?>3bN_Drg4Zd@Y35&jLXMJ3}4IO?qM)a+Z}&34x5Q*2cyFo7d6r#ThDk-sXD zh0kF0*sDMTmq3G_(k!CDbZ*!8uVOx;6?9S?z6dm81)E!$XDgwipV&E_ujl$SOCq$d zI;<{~GdJqJSv^|Z+Z4?1iAV_Qz4fGs7(ia$M}r|Ua#d0Sl@f jxlAm 6IoW^x*3B)&k||`In{97OT5(vZX9vJmMKi@2(_`YVkC(UHEi8!l zgX-)U7nTe=KFYDRoW^yHF^A^U($d;*&lrx2d?c}QiAf $U83N~Ol64dD z8Gi>YuNAgWmwhe%B!JxNzBRmdSc0ffjjUEw7Q=ReSc^LBB~a@pyv4o%(4mu}d#qz! z6xI1vFvi&TG^dt=|8hiGGEgVbsc(RDiV6`2YixW29mFU;g@)SET)D<}F&sn9bEkeQ z%W6J0;a* JmVy;1! z&9c3N<;@{7p;PL5xdB7qu<-^5l=F*^iBx>|Q79Z{F2AzE9qSVO1E;M r 0vpDAXa8PKmnn+~bvsgr6+|SL Jx)F-b;6Ltkozj*jqvBCi{o=CRAS$W zFbpgEy~-3TMu7uoXJ=L9LMhAxjm7}~TdMUBoZSQZDD8!7+A-e>yzW>WmStG+sX0G@ zx@h)Xs3eR}YtnuvOFhl|{?#1a!d)S2#ps10qk=#^52)Vs2SO15?v@#UB*ipVc;?Kf zooOd?Fq{|Spyqme3_frrCvEF531YGl<~iT`4-heHGX^sr{zf_ll4SylcjFN<@Bb86 zq)-vGBHGp$DQQ*AKgtd9W{uY(%y8endj2AooZFM(c9YBA4ft55Dn616D7}v^+v`){ z%)D)bd{8iVlih>4<8fumSuagYaWC;^cDnGEF(jXjvLAM1uG%ULLHjhLV+)+d@~#S* zG}3=3%kw}vTKbevZus$b`LSeBpPamv`N1($rAR@Ix_rkC_-?nbzF5tJ=(@o3RO{H& zB;9nu+=S$0riwUm5sqc|+Ql%hvbDsu3(L8p9>iMaIv+*HtasL+Jz;hVqY^s!UduW3 zo}(!YE46Czk5VHOT2Ay1+ecsO<;wU%g3M{S>nhlXVE1j2TYE4mRlPH~d|~9%xd@{d zbMz+7b|U}X81#mBo7*u8`rxE%|K=ym0)kS34A?;Qsm{!4`&fwTxAa6-v&8*rEPF|2 z<#{`6*}IAwt~*Ge0p=QU ~;olHe^pUqDimr!a7cAKr0= z*qZXNhD2}bG#VOaN@=8W+oXl-RGJQw@OhlkJJ=dD56QAM UwYc#}m}JsmFj(fRki)M)4`6;btIitPa-6H|?B)IB^qUwA zMcWRQUN~WHa +ciHMaRt%u;v05r>Z|qtgD*FVr_4Q-Osxj?j5#PSo`i#mnXe5+; zOX>MB7;MHabzC V8ulK! zfHTXaNdItG{m&lR##0x^u}9$@E4&9EFgEUagZ$<;P=xKp)7}_FYB$~Lr-Aiz9?xVw zIk_J%;7hUm#F1h~PS`X`B0SxG#1o#J2ZdbbqQrL_!c;N& x`y6@13Ufxyp4s0w7MyF`;Nq<#+F7_(BsY zC@A`ZEHPX^Xb=!UcPlG<`?{0%MzN;z4cF&{qxa$h&OMSyLXXKDuMB=u(DFr72;)GY zNO5eAeR}eSJWN}Mf<9N+Pkc9UL{1M{uIm%${`~W#?v{{b>krl$xL0MHBu)Eda1W+d zRwWidqN~PgOh-qz&U*35r ~J*E#xQo2rz4oq%piFROufIK5^$@lJL{$YF^AS1MtW=N o^6 5Pn@`SzI;Z5QR`?O~i&y}n;yFTYDWGZ7&&%4-gT zjXUHvxfr0B4vEJ2RX#XhYgbg1 YpGQ*N~+~Ug4YGERgV$F()b6;XlWfp zSe|eJ{|*~BQ{32$#?=vzo6de{-M|{R{B@|yH$sbfeJ#CznfaPBTZ0&BHWG*|q>KF) z$iMZfuL;HgvjG?U(l>PQ&FMf>aCuNl=ov8hf%gBdA$%~5D6ssmm<9a`!x>8ivLq4o zedML9=GEg8n*?7EWXt|Q>rzeiNh6`U& 8o2=YXVdT_UR!%>z)S$Sh{NWBmNe}6Lt9`YA4x^k^b%Ay6gm`bBl-zM5wt&z`| z2j;JD; 69-k?S7^E1)8$V&!+$zq&`KI z0f%^XG(SC20J)qQ8IyY!RWKoOj=xPd!ZagI_qW~xx+yBMardpXV5|x0^UVx{CH)=u zR+$x$)KI(%yn7oQ-_$^=W!P0zQ5jys@v1k6C-!nAe+i}y*2B>FJ;s(ZPUoe#YNZ_| zafuZ+=8x2`D|gjc$kfxh9Y48jTb+kdtYPR2!u}%~Y}n;^5fu)c%GTKIye#XuN5WJ? zP8MpARk#Wx9xQ>B2)scA=_`wJ>}|m(LrIlJBkq+>;nG@_3jZgJQo(zG{0P?VCdEg- z38YDGU_(hGWar*>4e7Te;Ga+mC6L8>PBwD#aK6=j^Ad7(o8BT1B(XM^b8q#|)?J3v zxMU5h0!AWy$y8L-xHi6N$xb5MEFu@VG-R{}#P@Q6bNe$}O-I{U-iH=s{^!xRx!|h^ z4B3!^%eIUP=%Vt3zx0QLydXCx_1N2sfW!|L*O;2{U L_-1ORA+ORzK4zz{K}C^*T`?lEBo<%G4{UuTMqCj(w`&Q&UqD5)&tP z98NZ?@vgRnAKx&8w4DY7Bh#Ckvrg2%eyZ$1p4Qc#Pb!-QS7Fs-%7TYbtlwLqg#>pK zU>u+p1rs1#%^|5-{>6t1^JGM=len$;SU*KLUDxzVAV3HVk8A{3bXuzc|9 z>N!IzO_X8b)oCxU!t4=b<6rRs1*pJ+Y%IylYlwS<(uK58l?K)~4e=hAq W zQyHxXVPPh_2f4a5buV $GyuKR |MvUu5#_|>S$J)GZGzX1228iB&Y@EuV_)A`8Q%JG- zBEc(1qcS_4OiUpmd;w?FYjldQ@GG)yMlfz&;m@ip#tUW1sSm9r3{KX6a@s95a>Jy2 zv6 R!bnE5xm7o-HfVEF${A6n-F9~nB= zL2ds%Q$Cr`Gd${L_#$4h5oPWrvs28i)fI_U2|$-0?kl1n-IP15Z+P4oF^ 6?-2`vN~jBLHTCs*oy`|+_j zZk=K>d2ex%--a8l)xyH!Y%|@?<)*&zGr3 3NSDRGLOqaE- zxc8t-p_pMJfaX5D71x5i_r7D8+}Ma)O2)-0ZS(Jv&Dv5@xp)j7Dp{e3x8IPk(2?DdWx7m`Krk9Mmpf ~ zF9+-jBQiY>(Q1a(E5~A^N5c|6pYX`#I+=a!w==Y_!~lTQ!J!XD2X3_%zTV76u!-KF zz3xlhrwm6f_}Im$-><$G+wXFh4E2g&u6RgzbAL<>pn*ufj_1#48B$g@+1+&En$&+F z!-295OGp35J&CyD0+XMb%bzZ&J{D!_1^G_#%~b_L4~9r3OKIUfD4sIUr4;Fiz*dZ> zc3g^Ib*x|HL}Vk`RouU8kH~%$k|G=M!EkkVtvDq@aSD>&R(e|6goKV!p;RsFCY6=n zMVD5X8Tq|Zyn-?ER m=zwgDI0@{Kv9cIdD zpCtVZZb4>MArBO;llx}VEBJy0Cp7(YMI#wFub;vGw<>C?;JCl1m6rVQts^9{u#kF- z&5 xPaK~@<)@JQDOd84!Ilzh#y9^b3(%vT1o%VYXt*dzxtyoUll)kX4rBR$xDI4 zmJ^c6_wQ?T2N-Or>ahT5G62cge4x8 ^jYCQZgpB3$ZxIS>5G6Vdiy4T z700VdN~Dwx-qzp``7O(!>gN#c!UDg$OmAC*Ph-x1KZsaP5uW)V%7U0P#9g(LCb2}J zFitH#SNHq3y?utgDTMWOfyTw#lTW+I`7I}Q$gNt)9X7HG_rH2=%wIvIdSbtQk)76^ zXf(xv4qEg&{qtV|-S>rEqyp&|zk2Hu78e}M9p6CnS)lcui;kFx)f<)HxUfl2iAFyu zheZYUQ&`7^l44+dsJY>sBw}QMh!Dtl4q{M~|DACGM88#3NcO8g@l-1x*{d^#z)ap~ zT40>7-@cGSLPC_c<-h-Apf4xH+t$)GhN&woPf3I8U@+N}c3jP9Ij~)vmIlr%rdsFC ze?+z%@}y7zJ2+qJv>0BVcJF**ufm!{D>cYB+b_u&a5KPx+8>f@@1$aHA3r^zbFc@W zmV q+~2h9#n^@Z~SHb!++%e0SiXK*bs_WSJ4=Zn*8;-nXvDP44E9oy>UYk zjAJ4 nH1S#$tVFqT>UfAhR%wkIEk10R|ehtb`yr&yyd zp?)=5849QQ|0lM#mZ+0xs)$RA@?f5FzO>XWBgWhb{YOe8gYa&c#+*ipMPbtVdf&)e zYgmU&)@B9|#%&K=6&rQL-4TfQGNiXwBwbPzjGD?kp9IsdUHam`g24d ZU?XER1aNU<%j&PF|UVK=1}kl{8Fw zToe^|dFM60va9w@^Rr`O9#-08)jCCkfk19{$p2(P|DMPN{0~vkCfdo_au+JB{p}a4 z6B&2|d3G6EfF=yEIO_^=It)VCB*iDarWD`t`{%9gqu`rypx?rRdLD xhont#e?bSl`ElD8yx9=^DQ@a*#)R~u{B=v()^F8#>- z^JB5(8+- u4~K9o8Tb3uNt3ok zwdS|azp(b(GJ+H<-%PI3!_elyCqQwPU}X#%;Z;EtY>;n7@ChRR*h( b5FRp(o zD4zB%EBkb%5UD(XuQ3>!1${HZn)v5df3A#`hG)ix(jwW%LZA`Pk=Q8_jGD+*1)+F5 z{%^Gtpy$BT)MV9P6vHR9BEVMQLcPJ1?=lAM5kks~Klq)f{d4~Wk+;~}rx$tSi$UN+ z_N0VT5d}+yw=;soQD^K}PGvp8qAhT02 3^2Y4%;%R&SS7Ibuk@jo4Y+mAu#BK(K5-jS6nZ}g+|Wdj04`CR-$Rp5`EG~q z_yJiF*E{*Y AE+E4^gW3gt z%*q4KM+do626TZa$oujGddCCI*U#_B3AL-0|2a$%l+H9L$4V#E71_20DaxILfzP!2 z2b#?xB1)Z?NKt<<7`1g=##)ZaG2of8a~f)E1@-6s|0n|$_mf<1b#SWArPy1jI|p;1 z;(}0P4%fMGKz6}U)K(8L@aOD?@J6&C*$08+hx6A0^uvsq<;Uhde`^LHkvd}7Rb(en zNGn+@J{h@I8r+rXO4ro_XseCb0COc44nnNs72yn9 vni2SaNvK8`LWh +0}Ej0Qd?H>|79;%aM;GEc#m*H`pAj ~8vK-Ct`?ECF6vQR334_ClNr<>Gql(_ z_r?BE#}pI5hO$iXN;&`u#Q?WZu^V#kl%X