From d6c29b2f5b953a0b747887cfc9cf4290f0402b1e Mon Sep 17 00:00:00 2001 From: Subru Krishnan Date: Tue, 30 May 2017 18:20:32 -0700 Subject: [PATCH] YARN-6484. Documenting the YARN Federation feature. (Carlo Curino via Subru). (cherry picked from commit 749ca890e6e62671b4df69d020396ec93edadf16) --- hadoop-project/src/site/site.xml | 1 + .../src/site/markdown/Federation.md | 232 ++++++++++++++++++ .../src/site/markdown/YARN.md | 5 +- .../images/amrmproxy_architecture.png | Bin 0 -> 35010 bytes .../images/federation_architecture.png | Bin 0 -> 46964 bytes .../images/federation_sequence_diagram.png | Bin 0 -> 47910 bytes 6 files changed, 237 insertions(+), 1 deletion(-) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/Federation.md create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/amrmproxy_architecture.png create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/federation_architecture.png create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/federation_sequence_diagram.png diff --git a/hadoop-project/src/site/site.xml b/hadoop-project/src/site/site.xml index ae3aef579f..e7af227a80 100644 --- a/hadoop-project/src/site/site.xml +++ b/hadoop-project/src/site/site.xml @@ -138,6 +138,7 @@ + diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/Federation.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/Federation.md new file mode 100644 index 0000000000..c50ba76628 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/Federation.md @@ -0,0 +1,232 @@ + + +Hadoop: YARN Federation +======================= + + + +Purpose +------- +YARN is known to scale to thousands of nodes. The scalability of [YARN](./YARN.html) is determined by the Resource Manager, and is proportional to number of nodes, active applications, active containers, and frequency of heartbeat (of both nodes and applications). Lowering heartbeat can provide scalability increase, but is detrimental to utilization (see old Hadoop 1.x experience). +This document described a federation-based approach to scale a single YARN cluster to tens of thousands of nodes, by federating multiple YARN sub-clusters. The proposed approach is to divide a large (10-100k nodes) cluster into smaller units called sub-clusters, each with its own YARN RM and compute nodes. The federation system will stitch these sub-clusters together and make them appear as one large YARN cluster to the applications. +The applications running in this federated environment will see a single massive YARN cluster and will be able to schedule tasks on any node of the federated cluster. Under the hood, the federation system will negotiate with sub-clusters resource managers and provide resources to the application. The goal is to allow an individual job to “span” sub-clusters seamlessly. + +This design is structurally scalable, as we bound the number of nodes each RM is responsible for, and appropriate policies, will try to ensure that the majority of applications will reside within a single sub-cluster, thus the number of applications each RM will see is also bounded. This means we could almost linearly scale, by simply adding sub-clusters (as very little coordination is needed across them). +This architecture can provide very tight enforcement of scheduling invariants within each sub-cluster (simply inherits from YARN), while continuous rebalancing across subcluster will enforce (less strictly) that these properties are also respected at a global level (e.g., if a sub-cluster loses a large number of nodes, we could re-map queues to other sub-clusters to ensure users running on the impaired sub-cluster are not unfairly affected). + +Federation is designed as a “layer” atop of existing YARN codebase, with limited changes in the core YARN mechanisms. + +Assumptions: +* We assume reasonably good connectivity across sub-clusters (e.g., we are not looking to federate across DC yet, though future investigations of this are not excluded). +* We rely on HDFS federation (or equivalently scalable DFS solutions) to take care of scalability of the store side. + + +Architecture +------------ +OSS YARN has been known to scale up to about few thousand nodes. The proposed architecture leverages the notion of federating a number of such smaller YARN clusters, referred to as sub-clusters, into a larger federated YARN cluster comprising of tens of thousands of nodes. +The applications running in this federated environment see a unified large YARN cluster and will be able to schedule tasks on any nodes in the cluster. Under the hood, the federation system will negotiate with sub-clusters RMs and provide resources to the application. The logical architecture in Figure 1 shows the main components that comprise the federated cluster, which are described below. + +![YARN Federation Architecture | width=800](./images/federation_architecture.png) + +###YARN Sub-cluster +A sub-cluster is a YARN cluster with up to few thousands nodes. The exact size of the sub-cluster will be determined considering ease of deployment/maintenance, alignment +with network or availability zones and general best practices. + +The sub-cluster YARN RM will run with work-preserving high-availability turned-on, i.e., we should be able to tolerate YARN RM, NM failures with minimal disruption. +If the entire sub-cluster is compromised, external mechanisms will ensure that jobs are resubmitted in a separate sub-cluster (this could eventually be included in the federation design). + +Sub-cluster is also the scalability unit in a federated environment. We can scale out the federated environment by adding one or more sub-clusters. + +*Note*: by design each sub-cluster is a fully functional YARN RM, and its contribution to the federation can be set to be only a fraction of its overall capacity, +i.e. a sub-cluster can have a “partial” commitment to the federation, while retaining the ability to give out part of its capacity in a completely local way. + +###Router +YARN applications are submitted to one of the Routers, which in turn applies a routing policy (obtained from the Policy Store), queries the State Store for the sub-cluster +URL and redirects the application submission request to the appropriate sub-cluster RM. We call the sub-cluster where the job is started the “home sub-cluster”, and we call +“secondary sub-clusters” all other sub-cluster a job is spanning on. +The Router exposes the ApplicationClientProtocol to the outside world, transparently hiding the presence of multiple RMs. To achieve this the Router also persists the mapping +between the application and its home sub-cluster into the State Store. This allows Routers to be soft-state while supporting user requests cheaply, as any Router can recover +this application to home sub-cluster mapping and direct requests to the right RM without broadcasting them. For performance caching and session stickiness might be advisable. + +###AMRMProxy +The AMRMProxy is a key component to allow the application to scale and run across sub-clusters. The AMRMProxy runs on all the NM machines and acts as a proxy to the +YARN RM for the AMs by implementing the ApplicationMasterProtocol. Applications will not be allowed to communicate with the sub-cluster RMs directly. They are forced +by the system to connect only to the AMRMProxy endpoint, which would provide transparent access to multiple YARN RMs (by dynamically routing/splitting/merging the communications). +At any one time, a job can span across one home sub-cluster and multiple secondary sub-clusters, but the policies operating in the AMRMProxy try to limit the footprint of each job +to minimize overhead on the scheduling infrastructure (more in section on scalability/load). The interceptor chain architecture of the ARMMProxy is showing in figure. + +![Architecture of the AMRMProxy interceptor chain | width=800](./images/amrmproxy_architecture.png) + +*Role of AMRMProxy* +1. Protect the sub-cluster YARN RMs from misbehaving AMs. The AMRMProxy can prevent DDOS attacks by throttling/killing AMs that are asking too many resources. +2. Mask the multiple YARN RMs in the cluster, and can transparently allow the AM to span across sub-clusters. All container allocations are done by the YARN RM framework that consists of the AMRMProxy fronting the home and other sub-cluster RMs. +3. Intercepts all the requests, thus it can enforce application quotas, which would not be enforceable by sub-cluster RM (as each only see a fraction of the AM requests). +4. The AMRMProxy can enforce load-balancing / overflow policies. + +###Global Policy Generator +Global Policy Generator overlooks the entire federation and ensures that the system is configured and tuned properly all the time. +A key design point is that the cluster availability does not depends on an always-on GPG. The GPG operates continuously but out-of-band from all cluster operations, +and provide us with a unique vantage point, that allows to enforce global invariants, affect load balancing, trigger draining of sub-clusters that will undergo maintenance, etc. +More precisely the GPG will update user capacity allocation-to-subcluster mappings, and more rarely change the policies that run in Routers, AMRMProxy (and possible RMs). + +In case the GPG is not-available, cluster operations will continue as of the last time the GPG published policies, and while a long-term unavailability might mean some +of the desirable properties of balance, optimal cluster utilization and global invariants might drift away, compute and access to data will not be compromised. + +*NOTE*: In the current implementation the GPG is a manual tuning process, simply exposed via a CLI (YARN-3657). + + +###Federation State-Store +The Federation State defines the additional state that needs to be maintained to loosely couple multiple individual sub-clusters into a single large federated cluster. This includes the following information: + +####Sub-cluster Membership +The member YARN RMs continuously heartbeat to the state store to keep alive and publish their current capability/load information. This information is used by the +Global Policy Generator (GPG) to make proper policy decisions. Also this information can be used by routers to select the best home sub-cluster. This mechanism allows +us to dynamically grow/shrink the “cluster fleet” by adding or removing sub-clusters. This also allows for easy maintenance of each sub-cluster. This is new functionality +that needs to be added to the YARN RM but the mechanisms are well understood as it’s similar to individual YARN RM HA. + +####Application’s Home Sub-cluster +The sub-cluster on which the Application Master (AM) runs is called the Application’s “home sub-cluster”. The AM is not limited to resources from the home sub-cluster +but can also request resources from other sub-clusters, referred to as secondary sub-clusters. +The federated environment will be configured and tuned periodically such that when an AM is placed on a sub-cluster, it should be able to find most of the resources +on the home sub-cluster. Only in certain cases it should need to ask for resources from other sub-clusters. + +###Federation Policy Store +The federation Policy Store is a logically separate store (while it might be backed +by the same physical component), which contains information about how applications and +resource requests are routed to different sub-clusters. The current implementation provides +several policies, ranging from random/hashing/roundrobin/priority to more sophisticated +ones which account for sub-cluster load, and request locality needs. + + +Running Applications across Sub-Clusters +---------------------------------------- + +When an application is submitted, the system will determine the most appropriate sub-cluster to run the application, +which we call as the application’s home sub-cluster. All the communications from the AM to the RM will be proxied via +the AMRMProxy running locally on the AM machine. +AMRMProxy exposes the same ApplicationMasterService protocol endpoint as the YARN RM. The AM can request containers +using the locality information exposed by the storage layer. In ideal case, the application will be placed on a sub-cluster +where all the resources and data required by the application will be available, but if it does need containers on nodes in +other sub-clusters, AMRMProxy will negotiate with the RMs of those sub-clusters transparently and provide the resources to +the application, thereby enabling the application to view the entire federated environment as one massive YARN cluster. +AMRMProxy, Global Policy Generator (GPG) and Router work together to make this happen seamlessly. + +![Federation Sequence Diagram | width=800](./images/federation_sequence_diagram.png) + + +The figure shows a sequence diagram for the following job execution flow: +1. The Router receives an application submission request that is complaint to the YARN Application Client Protocol. +2. The router interrogates a routing table / policy to choose the “home RM” for the job (the policy configuration is received from the state-store on heartbeat). +3. The router queries the membership state to determine the endpoint of the home RM. +4. The router then redirects the application submission request to the home RM. +5. The router updates the application state with the home sub-cluster identifier. +6. Once the application is submitted to the home RM, the stock YARN flow is triggered, i.e. the application is added to the scheduler queue and its AM started in the home sub-cluster, on the first NodeManager that has available resources. + a. During this process, the AM environment is modified by indicating that the address of the AMRMProxy as the YARN RM to talk to. + b. The security tokens are also modified by the NM when launching the AM, so that the AM can only talk with the AMRMProxy. Any future communication from AM to the YARN RM is mediated by the AMRMProxy. +7. The AM will then request containers using the locality information exposed by HDFS. +8. Based on a policy the AMRMProxy can impersonate the AM on other sub-clusters, by submitting an Unmanaged AM, and by forwarding the AM heartbeats to relevant sub-clusters. +9. The AMRMProxy will use both locality information and a pluggable policy configured in the state-store to decide whether to forward the resource requests received by the AM to the Home RM or to one (or more) Secondary RMs. In Figure 1, we show the case in which the AMRMProxy decides to forward the request to the secondary RM. +10. The secondary RM will provide the AMRMProxy with valid container tokens to start a new container on some node in its sub-cluster. This mechanism ensures that each sub-cluster uses its own security tokens and avoids the need for a cluster wide shared secret to create tokens. +11. The AMRMProxy forwards the allocation response back to the AM. +12. The AM starts the container on the target NodeManager (on sub-cluster 2) using the standard YARN protocols. + + + + +Configuration +------------- + + To configure the `YARN` to use the `Federation`, set the following property in the **conf/yarn-site.xml**: + +###EVERYWHERE: + +These are common configurations that should appear in the **conf/yarn-site.xml** at each machine in the federation. + + +| Property | Example | Description | +|:---- |:---- | +|`yarn.federation.enabled` | `true` | Whether federation is enabled or not | +|`yarn.federation.state-store.class` | `org.apache.hadoop.yarn.server.federation.store.impl.SQLFederationStateStore` | The type of state-store to use. | +|`yarn.federation.state-store.sql.url` | `jdbc:sqlserver://:;database` | For SQLFederationStateStore the name of the DB where the state is stored. | +|`yarn.federation.state-store.sql.jdbc-class` | `com.microsoft.sqlserver.jdbc.SQLServerDataSource` | For SQLFederationStateStore the jdbc class to use. | +|`yarn.federation.state-store.sql.username` | `` | For SQLFederationStateStore the username for the DB connection. | +|`yarn.federation.state-store.sql.password` | `` | For SQLFederationStateStore the password for the DB connection. | +|`yarn.resourcemanager.cluster-id` | `` | The unique subcluster identifier for this RM (same as the one used for HA). | + + +Optional: + +| Property | Example | Description | +|:---- |:---- | +|`yarn.federation.failover.enabled` | `true` | Whether should retry considering RM failover within each subcluster. | +|`yarn.federation.blacklist-subclusters` | `` | A list of black-listed sub-clusters, useful to disable a sub-cluster | +|`yarn.federation.policy-manager` | `org.apache.hadoop.yarn.server.federation.policies.manager.WeightedLocalityPolicyManager` | The choice of policy manager determines how Applications and ResourceRequests are routed through the system. | +|`yarn.federation.policy-manager-params` | `` | The payload that configures the policy. In our example a set of weights for router and amrmproxy policies. This is typically generated by serializing a policymanager that has been configured programmatically, or by populating the state-store with the .json serialized form of it. | +|`yarn.federation.subcluster-resolver.class` | `org.apache.hadoop.yarn.server.federation.resolver.DefaultSubClusterResolverImpl` | The class used to resolve which subcluster a node belongs to, and which subcluster(s) a rack belongs to. | +| `yarn.federation.machine-list` | `node1,subcluster1,rack1\n node2 , subcluster2, RACK1\n noDE3,subcluster3, rack2\n node4, subcluster3, rack2\n` | a list of Nodes, Sub-clusters, Rack, used by the `DefaultSubClusterResolverImpl` | + +###ON RMs: + +These are extra configurations that should appear in the **conf/yarn-site.xml** at each ResourceManager. + +| Property | Example | Description | +|:---- |:---- | +|`yarn.resourcemanager.epoch` | `` | The seed value for the epoch. This is used to guarantee uniqueness of container-IDs generate by different RMs. It must therefore be unique among sub-clusters and `well-spaced` to allow for failures which increment epoch. Increments of 1000 allow for a large number of sub-clusters and + practically ensure near-zero chance of collisions (a clash will only happen if a container is still alive for 1000 restarts of one RM, while the next RM never restarted, and an app requests more containers). | + +Optional: + +| Property | Example | Description | +|:---- |:---- | +|`yarn.federation.state-store.heartbeat-interval-secs` | `60` | The rate at which RMs report their membership to the federation to the central state-store. | + + +###ON ROUTER: + +These are extra configurations that should appear in the **conf/yarn-site.xml** at each Router. + +| Property | Example | Description | +|:---- |:---- | +|`yarn.router.bind-host` | `0.0.0.0` | Host IP to bind the router to. The actual address the server will bind to. If this optional address is set, the RPC and webapp servers will bind to this address and the port specified in yarn.router.*.address respectively. This is most useful for making Router listen to all interfaces by setting to 0.0.0.0. | + +Optional: + +| Property | Example | Description | +|:---- |:---- | +|`yarn.router.hostname` | `0.0.0.0` | Router host name. +|`yarn.router.clientrm.address` | `0.0.0.0:8032` | Router client address. | +|`yarn.router.webapp.address` | `0.0.0.0:80` | Webapp address at the router. | +|`yarn.router.admin.address` | `0.0.0.0:8033` | Admin address at the router. | +|`yarn.router.webapp.https.address` | `0.0.0.0:443` | Secure webapp address at the router. | +|`yarn.router.submit.retry` | `3` | The number of retries in the router before we give up. | +|`yarn.federation.statestore.max-connections` | `10` | This is the maximum number of parallel connections each Router makes to the state-store. | +|`yarn.federation.cache-ttl.secs` | `60` | The Router caches informations, and this is the time to leave before the cache is invalidated. | + + +###ON NMs: + +These are extra configurations that should appear in the **conf/yarn-site.xml** at each NodeManager. + + +| Property | Example | Description | +|:---- |:---- | +|`yarn.nodemanager.amrmproxy.interceptor-class.pipeline` | `org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor` | A coma-separated list of interceptors to be run at the amrmproxy. For federation the last step in the pipeline should be the FederationInterceptor. | + +Optional: + +| Property | Example | Description | +|:---- |:---- | +|`yarn.federation.statestore.max-connections` | `1` | The maximum number of parallel connections from each AMRMProxy to the state-store. This value is typically lower than the router one, since we have many AMRMProxy that could burn-through many DB connections quickly. | +|`yarn.federation.cache-ttl.secs` | `300` | The time to leave for the AMRMProxy cache. Typically larger than at the router, as the number of AMRMProxy is large, and we want to limit the load to the centralized state-store. | \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YARN.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YARN.md index 433c737365..598ee6fe87 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YARN.md +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YARN.md @@ -33,4 +33,7 @@ The ApplicationsManager is responsible for accepting job-submissions, negotiatin MapReduce in hadoop-2.x maintains **API compatibility** with previous stable release (hadoop-1.x). This means that all MapReduce jobs should still run unchanged on top of YARN with just a recompile. -YARN also supports the notion of **resource reservation** via the [ReservationSystem](./ReservationSystem.html), a component that allows users to specify a profile of resources over-time and temporal constraints (e.g., deadlines), and reserve resources to ensure the predictable execution of important jobs.The *ReservationSystem* tracks resources over-time, performs admission control for reservations, and dynamically instruct the underlying scheduler to ensure that the reservation is fullfilled. +YARN supports the notion of **resource reservation** via the [ReservationSystem](./ReservationSystem.html), a component that allows users to specify a profile of resources over-time and temporal constraints (e.g., deadlines), and reserve resources to ensure the predictable execution of important jobs.The *ReservationSystem* tracks resources over-time, performs admission control for reservations, and dynamically instruct the underlying scheduler to ensure that the reservation is fullfilled. + +In order to scale YARN beyond few thousands nodes, YARN supports the notion of **Federation** via the [YARN Federation](.Federation.html) feature. Federation allows to transparently wire together multiple yarn (sub-)clusters, and + make them appear as a single massive cluster. This can be used to achieve larger scale, and/or to allow multiple independent clusters to be used together for very large jobs, or for tenants who have capacity across all of them. \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/amrmproxy_architecture.png b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/amrmproxy_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..8740adaed5401dae506c29d4d374a5ef37e80fa0 GIT binary patch literal 35010 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 literal 0 HcmV?d00001 diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/federation_architecture.png b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/federation_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..b2ed72fac201289012c40a5ffb0117320aaa3382 GIT binary patch literal 46964 zcmdRWXH=72*CrMaq=|?$0g);qy;r4#B1O7%X`v;cbfl?trFVjW^d=w#0-;4g>Ai~rmFUwfZKKGjkozs_)-fPjEpO;t&k zfZ#HQfZ$RCF%j?zTHswb@aK}du8IOdMgN^O;6GRGA8S4)AgGEZJ+UGL{!j8k)!3bY zfTHdE-=z-MVp{@&IubRd$ND}N*i-McTNCLAvAbKFuSO0JTN>AE=k_aV8z~YvdQ$9q zZoW&2r=hx>^MU$0_s0mOTMBn?=)5L~cPEMu?vz{+2w|nXB1}e1_~_X{<<`jQ-iK02 z*%{f98ND(0po;Yt@UgyJ(XS7USyG;*F*g*5Swn6pRA25BJO4|}YWx; z#ha=rAJLo_Z?Zobgiv36B7wsJL2~hluA3s5i#J1TNnp@_hP(Rz=Wy&C{r>J+2TZc} zoxPdj)5}Pshz3mTN3BM!9ffV*G)?)X$YA!}eQVm3kc~^7*Bi>d6C>xx20pZkOb9)r z9gp<1VVq2HF*>}03ki_kAFHcs<_L*<{^)!izrASMcwk(+5T{{Mttpq@q;5h1bJgG@ z+scNKCuPjh@p>cZ9+FRK#reslIe8f2jNR;&_N4<^y}d2C$>l8WkvEpdfn*JP0-7hJ zYaTOip!)7>xIYZ`w90%Yj(B;fvfC$C1)ZVX7|GmsJ zMvrnRlSJeW3s>aC49vpj z=JV~BI;MXtD05OWDD7PK9sana>L}~e(p5GS{=^!oLd-fAeD0e&H`2bh=uN1$jpr@( z-_FY)3LhyrQ`udb&2s)glr#n2A@Us+NHFrQrF*z<8WrcVklNE9%w>&KCuUt!Jl_i6 z)=<>hSQBpq-_1Hv7QTJ?4@`n_Wtr^>>U_Bftl`v0E{5OBjl8ZrL{!c*4&oqtMUB#3=yFRJ2N>mQlVN5~qKD*5cxV zDO;b*IHd~a3-L!yzm?(o_ZwFhynFm?6h&`)Jqwj-sU2enOjGSXKbESUZ?+pxPaWNM zP22j6Zkuz)m$t;!iK9dnTwJA-fiFuC`p2-7=R}PA&m8Yf2L;;ak8Vk5Z{j^{2-{Q( zxE5LEl<_Oxp!6o?AZY#wFsg3og_$uhC{0U@k13|a%?AEhxAKS%x!#6uk5~|1KJeF9 zW{r(A`eP>ByRTVEnSe3T7IZxD2fi#$Kj&gL3*wliDW~@EmWAN-b`O=lLvG~h>Dsd1 zQnX*WCvPImi#CWF^D4;`hw|vB^7x4|9>ugjK=l+ku5+@;k1v;2x zmi}Z@Q_Up#W=WCi4T2HuRg_it)@IXSue)XTH}j|Ov@(S;wIlr>n(r#6(tZyrqpw?0 zGZ-@-=kOqWT*J~4X7i0SMgmOdym%>wDIVfMr6zi;4Y-FI4Ge1nO61hE9WB*8$n z8(CNEeTCm!7NA}Wef<4N+7_9m4FU-3WFE1I7MT5Wd>UDS@)3qlW*-!cduJRDXr4bp&F2pmZTQiirLAYze8l%kZ zj5vtPW!)(Kq6aXj?#R_42(`Efrj`r?S-AIIxp4UXZQ9R;R)K`H)WZTZo>o>CY4+yh zV#5ueGF>vDjl*AFd03ppVxRkdpOv2wYWkrDW%C1L9%4a1e-%aZF$y3Fl`YeKMRq37w28@KL%R({bP-FM!f|GTOdEdTu#R zse`1P_WJM!snTNxK4vqIXSY`gA(s9GBd4^IpHm4Nc!ya(VjedH$;TD0e}CoCn8vd9 zXMM_B!HE`4Q_Jga?+|%nk;~fyWxI~jv3O7EGX#qRF4kj) zpQg~t_hjqvl2ws4MPd_3+XMIZ>5I4Pkrk_<`91fO&6VEuFJv37z#kCL#Gr-=8Yn*Q zA_w13pe#ccr9~YPtfEb;7P*ee=}_9PUIgefH9#Jm7$c`NYbvMuoiLF{HGPM5d0rWn ze)UrtvG^WLh?hP5m1{_+Jb}n{52SYw>UM5Ht$`%1;T&ADgWf$uGB8I838!NV9@_MBi3C!YigqBVyy%^=F4m0B0Yk%DPi(tIe?kw*J7msIyF!79%Ux;v z1cK?az@Q0&0AVYkcVj{ujyNwckSm1~Uv>I6ruyIyIUJIKRq9c2+DL{8Ox@@c>#}!1 z2$S}CJ*s-JuiV&eU2-pgmT6u@YoUhjgP~k>cljnn9<%G$+OSZSK(#Ah^pc@SnPjJC zmXxBS(3Td4ef>5p>4t(X>qI>CT|5w-e*KM3Iq3f8bJAF%a2|wN!@<&rxoA%IX@9@7 z%4(;%waLm21vt~wjh6I~8@lu&7$hw~BIlR?q^>L_4-r;bqC>&bA3qBH4TTp&kpKwv zO@BG$M#A-fJst+mNbCLpeEXY!4}XLuq(|;N+c5IVK~r$wIgY)N!1K@J>;~rsu`don zRxJJ_!YINs{Q!Ks=_0YmGCvp;5|`9fi)L3cnnl+C*zz;&r zU|8Vf_la#Ajf`XQy65o>Uk;wm;+g~SNwpq`f`u1`cNU=eq&)c?*)xEsdeg%J5n0j; z7(n9&MZ9rl$RB~8EKgJ3TR8AIA%Yg&hM~S>UDNT%fC=ma)`c)qoT>m8v9jB_IU;Hq z)$E3_O7T$9feJn@M7klI{Bu;HVj$d7Psih&6O{g4^{xVR7(|%tWQ3ajhm!eI5#4f> z=PBY+xJUCJ=OUXUGgQ9X-=GJuG!jW2cysMr)?UQM<{gBfmM!89)0m-SjhSW*3>u_w zI)bg~9){lsMsFn#KV!RCN+C)F3m19gLvL8C8L^Jt$K`q$6ly#zKhQQHavZ{`I|v_`mEE#4%{dO%m(9SQZZKCp?=hZ zQMBuyngLr9v(ASAyQ-cE?5Z8Mf=w5-q*{VMW2g4r&-e!Ec1^KLcrynn!q{V65dfg= znXS%dl`T~u5|?6@+w6`ISHSYX5CDxy>js7xo}c!nwViG)ck}+{F^6`Gy5K+S%{gyh zeu{Ywb5e~Kjj9Qf3%X^>HtS_{Q*;m^sBMd2P4h%qb(~a0_TTzK?fXX4fCAzG=zGY@fWn{PH2` zLezPtbsG^0ox^XN!TBeP!k}Df0U_z2t1P%P-2untXD>7?Kg~JEY-hk%Y*aLfOUlm= zD+3eYWUI^3C-sUwvf@Q zfN|tESo00PG{oG{r3M_i71%!3+RNu4(sGe7<+qNJIxM|=gCc#W&Sox~oA%vjJqg_~De$ZAV{*@1s z-tH&72tG`wi@KK%tpDI%9K)LxbF7l4h=yPYe(ZBAfsNGg7}*s%^E4yT9w*yv`NB&l z0IkiGiY>e%Izr$$nNmUBb18pKisoe8P7rk#>p8hTj<2Hd!>dUEo0JX+Ll=Xd-gD*( z6ei6pEB5^^qgog0L1&Kn*81aEQz#HqXp*X<2PNIbO_YGmqlLftKSRA;dvr)UiM#B< zeA5D8B!&NSdN)uh7?Y(^Qh`RK8r&?fk@uK$Ksa-edZnZX0>O@CTn2E99<}d~HiE`p zr&2IukF~{XkxzOfP(`wv>ClgyvIg*Syv?lAI(tYQ#*Po#7#K58ja|QV$!rz_cLB8sA5Bbvv;7zCVF{}=I&7l^h7Q2OAcPO z@Z6UR!$*l_wp8UF!!v^b;7GU+n0CMT(Q~g87_vY_>>4YYaD|aI|fJ37d|45|^+3oF>KChIgyMFVngn3&nI6k|FlR8el2YZ@aA4bfFv4b9o zzW{rIM@NZ(!8>&l1I|u-kCroB7kkr%-H!JhB|U%XtMkYjb3Ww4rcf8y^{)k5%}f#@ zLZPK=ob2W=5&=o&F|Y{n8o=pNB-7Zm#2*_;dT)O4KUzxN=_ry*$eupZnmS&adH7*1 zd96BpiXQMa8y1IpwTAQK`j!j`<$zmAfBW(y*Yw)GzHmwwF-|%nPTE$)XH5tr4iK4! z30J88Yn>Fy$oTH{6ciLx2jC7qWI!R*n0C2ANTSCD%eo7IjSyk@8L8lE%gcieV@a=# zv`@xx&J`eZenV7IPSOJ4z-|dR5PQ@h#Ga0B+7)$b7{e^f)04_SfJC(G$VD*ppgyrAu8+@i7I2v)?0(qSO{ z#?|cSPvxTvOL;!1RCw^utQt884WT!)?4qXdMwupqXzHrJFgm)i~GgLC>dXmCTV=9wVgA zn30eJLQ%t@@8HTQqSG8}-y=HUk>H%YMI|~NbHqd4=jD=5V{2@jKGc=SwF{DnHCwYv zN}*&FsXI42)cD9md;fzex9~WNmlkQpGZi}{AOcYcjtOGy2UPmDNi*9!n`MopSIRU* zFz8e<3p$Ic`ub<@-o0DwjA!E<*nP|&JvpyInemj9n=y&1Tb)tFD1F?JioZhUdf5&# z>z9;!orVQ+K=Pr6HB)lH#S*2J!l0|u-a797-ta6pJ@^|p*I0u>)5vlh4x%ynJp?S> zsGuA%u#lRRl=g0C_}ZMfuNI*ZH=7wHm(~Y?X!`B}14OOPxAzZXTe%yvT08ZPWYI&u z&=3Pu(94e}zp5(w9j$Kt;;!N1=1*cI_g=om4rC%4p7$_ihaUviCj)+`jRuuBn(Zt3 z#h(4Ky@s4$YSC%KKD&lchG)v=-29d&uf*oHIi2o?))nPS8bUxZi-S3e?Jx39p2k21 z9T2DWJKRy$vNU`-{$3lCRxVLD=D{;bl7u8MESa7ie8wAo>vqunxh!cGQ$1w?>@lq$ z$HqW3bO>UvU3`@)K;p%ZNB#28lngYv^9V_A)3pWs{_%MCE0KF-wBFBKHFc5@8Kzp8J@i7 zjvos9{1ArSAc>ybUg#+J`0>$lUq%Or_o@Q@n4e#W$ZFGI)9&v?>DdFBYUT8X?gp`l zi&+-zk5-sB+V+2t{8V(AFKGZZ7N8V(vXZ)Z7#r}MOg#8fx{gq*9Rh_f`!EfE>J{Y& zGW0~6r3C$^Ha<9uwFNX{t_RYm3S#6)l^7@;2W@`{XP+wtAoN9PPg*jzA{-EKF6g&G%7o}=5+OpzfYiCPskOTRW{ia#Zq7I} zqsN!!rvExvdC?0!N%v)qalK2a<|?NhSl2W@S27}7P#1AD`mE4477~-TX25dt)GO%V znxq8c&7I7XxI39UAMd35RNlGcS+=nj6bf1W!)82ls($}r8l$OD(7BQEo1(tS5VZR< z3g!o*{OT4se{bU&Y+A2Htzt!BX&#VI3^Zx1nJ{B=(fwHvxUAm+1lZoEHLQ%wf*2p$ z#+M7Aks=!Y__6VSS&D&ZXNX1b>wmGE&=J4@U}i6HS5Y0r9d`Br)A-ELrG>#8lQL_HYyml;49r;sKrh)>?HDJ zU;|CiGpW)@OY~t&%7mK$U$%PqYp8SkIrli42NI>wWN^v581{0EUEb7`I%k{;71 zgaViu@Rlf^HZ`kaZ#`l1cAwXQ5}Zj6O`Z;9oOL&oxEMsE?;*S8Sd;-A=8mfFI~Xm| zGu9?F^I{@|pSpUofPtmDe$z1ny4P$m*I2PZ|4iJvW-jh0{ebGrZ;kbPwAF_4aZ&Sf5{t3bD17B&XYs3Q*Wb0()u*vbz47E#qRX@Zf~vQ9ce{cr zpu;o%)1Vx5h2#(*x{Y2Aj!07>MAq9k(f%6;QWg_wbWF(qWIR=o;E zY`q!tEASIw3Z6DrAXataVS@E2;-nE`a)yezIa$Xg2%;-OIks012)j@g5)anp zj)FH>d^0|zo#w8Iy;b#E8}`ygG=zUJnKRNV$8vC`dM70i_C-_i!~9Wqm;>J5xwGeY ze`8lZ9)(H_W^;|F!Je7--+36jyi95!hM`K%iVPeCFYi2D=Jz=W{<<8h_SApp2{LcS zBL;4+n2V;!-U#E3N4E>a(DhTWM z#n09CjJx0;hNpPEFGo6=c?>Bpm(P?A=BrV!O;*`#7%4wDSsyL2IV)83>^;ceUka!- z_pizku%f+5d~s%h9p!3dePW9cjAH9f0ylasbms}Y152A#uXCrOE6TsV*5IapBZ^UW z4)08H!P|hC?!!hW)3DULb7JuuBkQ=XR8vsrnr3i5#K7pj@u-kB!tz}@)^zE|k2LgV zK>Qu%BQEsJmUwkQ??RQRQS`4gC?nmLP9Ercpz>oF4^ycPf~qR3b}8h8tmP29tDKJs zLr^scsL>?48~-mB>ZAY)Sh9-Mtv;`M+X)>$xcNU0D7`m#M#yBRQfaBSUDL6+`iH1c zTg)Pg*L)b%ZRi!R=PVarJvOtnSbfkQLObB!-^A|gqc1Bdv8sOmWY1m)F1ulZ7XKYv zy$v_Dapt?WOiyK33=~2*`^3fs61}8)KljHv5{yvQj(hlJGW4}uc3Lp6>v?2&F_0mf zEoLYowCi7+RPk%tK`;b5Y^c3xvNEWo?xX~Lm%eH5^AU`FZ}>OV&9qDn%peER8<|mk z5p|X*WiaD0qA3If*%cAuka6sROF!~GYFzk!2iaaxLBVt@T{b`(P z4}|5}Z=G)tOWuy(LomTQwV}mpxoq+N+hLKmseFzP3f^PVDmWsXSTe5b1=ihR2n@dS zXJevpz)J{DKJqJ8sBD`s5MI7a-{T;4_6zS6Q`H1>(VVb5#eBo7UU?P^^T}V|A;5Hq zsMcKy_S@|fe^P1DtnrG6hDlC0m|unYzNC#DIFBvvV-NAD(@!m7=yup;m9q35tV(JpuZ&9nsrTW+Aj zZ2!--_7^r$(7aB(IwI_>&8<^jHCAVrdbMidDoBc~s=rca6@Ofb7ve-~P2fdg(M!MO zHEOlm@M&R3W3QbVLOiF|ze~l%>`$&82%&HEdHt~!w-v!y{3iebq3}}z)npF7MW)6u zrS8;7QszKQQsm^7q{z?qi20V0v@IJwW-%h%gm^>x9cE7eZ(c=jYy~-vIw)qJ z^(uX@nM5hF!!PqzSbBL2T=<&MXed8%$!ND!8r@ zS+ItOncL@1&{-|2ehXot_Y1$nd`fHcEsq6`(S}P<(`_q zxR!@L_)Av*3Gsbi;A8-Gp-<~SzlZ$Vv$6R^Np?~mX|k}S;-7FjIM~3M5b)wR%i@>U zbDd{_w5cjJxRW{nXLl!6pn)8wVPa9`L!?m;qv-R&&-!>5g)mZ@(bf%M(}`HeXNJ*r zZ;wXf7Al+h33_ZKd1F1&pmY}bMY=;w+^2>>g;sR^a(GO3LZ01_$XJ4T!LY|Sij^H6 z2r1^1RyOobFf(n8au)*K?v~b(QZa$zgJDN&8YPa8g5W_4=@U> z_~Gv!AhEWjL+G}=5jtr$w68BFrFG-Kb43TZxuFR!e98hswmVeitwgq88I=yohNP{Z zp56-*{FV)ZYbr5JQS2nlZ2bXh2HS5I0A*m+brk;!s&aZwNd5 zAIJaOYX^ghP*M*D0tAfDrdK78a+gqD725o%c?+9K!B;9HKox$Lx2Vtf@zJZ|?NfYr z+=4$raCo)Ej?Dxec#pg`^X+OU1Y7dsJeQuOWpSb&fJZJH0$HGQ4~a4Tv3A~09OwWj zfxMV@LRdLj!8~DElWQ=jXpg`QUtW~2r|iLjNAt5;tq%ObPP#6-WR=TJ(GJ13(iuNo zsUev=hi74S<}#8UvLMpBzmrokZQWA;H@S?`S?91hR3 zb0{>@y!g8_W9j##^u6{I@#;@w@=rRvSyIZfe{sn-=OykjqJ$6!zhBH(&UKu*>lwhw z-9>_SS&gf$>Ub?sJ@@_FnQWjFdxJs9l)3t{Q3!5CxP0gVMbEi5u-V2jFNEP3QoW(E zZD|rE+@?0ZCD7racUfZMX$}VLw?FP+#GAGmF0B=*QXbAL&!BDD6j*d5?}U)gLsOLe zMJX#$3@Ru;nuNG!RoGZ7Gm^nsMz(D3Wmbueh|kAMmwva~lgfPM^1nqf8GPM?rIFhz zgZ?VO^Z^*4Vb>MHaA^f{)HRE!Rs@2JWu{)X05O~WXrEef5$!GA^Vz#1js|)bRNdS$ zV7K+rdFe;zD>sKx%X>kt@vS-Ho&B?^T@43#p2Q4G_AP`9UyyG=jflVZ+v&4ox}&ws z%mVy3gR1h7V5|x%!E59o1H}h$9liM!?+zaxTGMm(zbwjQjfh9Zl1=i>*l#7%Ft*tv zT%BdR@^iLOLTB$iX?hPj+Q8|2oX=ZZHRIQYI)^rGEHi2z`cZTZYx?!#0gS$V5mk9U zfg4>CT>yb1xsY+`9n+8$iDz%N1q4DgvC=`}N)%^HSGSa7gC zRm5lFH{Z(a01ZIDO1@I%orX^DwTm3hkWw$bvsdYoeaJ@c(=)%*%~;tvcvz7fiaj&E zU3VsKJhg0Tre_r9Av3iD@7xhC*d%RR^wy?K#!dP2)hS0E2C0x8 z?r}(4o07^2pkKw;Yj_*>tk(ZY!Hg=y!848l@>yO$rD5fdowAcU zvp3OH+5F`B%IWjr_t9{93}-p0JU)AFZZ?sb9Sz11YPip=G{COUh+)h@y(vuLxnXz6 znR3-TuLQi=X`ZD9N@2mvK>&UFo8i$I!lPZ)zua255Az~?EE`(kbUY+Z0Hmu1dut5$ zeoW1j_a*Jb*TDQGcn?_myr70cm-pY=4h;1y4&!j0Y%Klp^38$}L6_?HcDzNt5YG=;dJJGM9+$$@>Dh}FEW`m%1#Gb8Y(ze|7ZR^P< znwlQH-7M>0ezKDj`(fnm$L?M+hO)BkW7SOu@tI!x44_E3(p_&5ZjDm1SQ9k|L*-n~ zRNB1uM>1{uX5ECf;7tFJlU66h>D^ZWhwIs$5BpRyoW}xnCq8YN?aHspdX}$k7OqbL zlGD*}wE~c=06{Vh8xa0vY2wf`HEb(@&$~rjvBE*fA`t(R-3Eal^e8nuog(wC#@s{B z*KWI^ZLZjDMA=mX>ArC@xcQSQN@pB8$y?VV^o-AURnPa+u0Ikxv$m5_6xQRK&A^!| zFZis&MM$67Nmw}$r;1WNe!3D#N7M|6%Dhts;A3~A4oKUdAD4GY1E80Bwd^e8PUhNK zI-`zy?A*UTmh|`;bw}EB{DVfizLkz~`N(VKYd?KY=0|6$UtlTpE)gNA;C+aeyN;+k zksUP>bpn-hkOhC~Q_sD~?u}&3l7n##o_&_FKF5*87|wr;kOvZqzbSY3HF$I&dOu@7 zj?r?>K6fhXm{)gedS~;Qq{Z#iW~gO+`bv*$ZUC~Q&y=mMHVblg4QQ@0>Uv#75`uQY zcxRdIFW&WC4My+aRyw-2vcl0>+^8T&w{MUjK9sAJri;H{%qUb$k-nt_-UM$7DbC_k5^lLN;zY|c&w*EJQgV}g>yDQ@ISX4Q_o zw`akLSNQ~+YjN&ZQNZ(*XZ+PCp~UuPTVRMn*s`5fd|#7@LA0(4sH~=pF2Y5Zx69@r;%BzykSUgEi}m;F zKaiB+FpvhL>i=|-XxWEO6)j)O=$nB-tF5Z$G{4}t7i_!V6|1$LoUTA(@pHd3&xVWr zj((i?9vO8Je;W+44D>Xt@NJ3}agb9x+Zne#f_@XgS9D1rcS1=x8_Zqmi@I4XvN%zG zj-}IMZWVVP^2O`f+3jGBEY(p1;#~#Wv5~yuV$~v2gj`5){!EFRoC2{-Y`}GNDMpG4``zinOdf@16zqM_v=vmyQX|%b2 zubHz_X#Yv*@ux9%-@rklUB=Z!iII**^rPK`g7f1;!+sNnrOBY^$Dy=Pc?kj=s(I77Wqh&$xh6g-|GO|+Z+HKS|zNFaDX4AAzEi|79Oz~`8cA079lAQ76*B!bY!F+%!AH_ z$9HpUVAoCZu8ckg7G9 zaaYS!Z|_O=HpB(g`qI#0daqs zyd3&#)0NkAe>S8*+*OueltNF=u*YdgUdsVK3{3`9kN%Bi+vR>kAzCQve<@lP1; zW)OdprL3F?Lm!9*ij}%4IF%|tE^m#%b#okgC0NePY4Z84QajQiRRbA~@hVqVz8~EE zpx*(>+wp0}`y0apQ1p*4d;h*cwAyh)^%#tB{znmN1$tCIXcvEG6`cZ|B4F*;*4nuj zyz}3@JBtxfKfd~1I9ooz=4hv3mZ00E^D{~Wv-IyIBJXUF(fefV`075@WewF>B2sWh zj=HGNi}RjxJ+a={*jckveU;sr*J0+Vpb@qnXM#&?+=R$1Kn*)*(Db5CfYg8HhkP;r zc8^ZZvcf07Qp812Cy-jOQ(y|%T4^U3+cJH;6P=?{6ZDibK`gM{+BXlUk6avjESSg? z4R)T0w^SK_zsW``eykd3fr>UeekAUAOAwPPKWQpO4s%Ato)WVGs%(A6MB__&sby}S zyRk2;LoVtvR>By7yW0JGHb(U?Cm4?-L`WS^zD8O_d!r<#Rl#GSlDkM4q%zF3m2pEzur&BwFdEbfMw)aO+#{ zj{#oClhFEeC(#BUS*a0(xWX|sFmSoak*WEKxBShvi)sc8`@74fvt~ON9rHIYr{RHX z`u@#M=tZUWSjZT>+y-V9kY`@d@fxK1ycB zrD=Mn`zdlSzO%`YUD~PIud9GE(E8XJ|Ld$`XG9*w>B$0Nt83azH}lt~HHN<|^4}jb zsvU-`4+hP2@QKjEv>2;-rA(Ce^2C--r%wKsTmBmO@3a$8uby}@0R=Z>LK6FIXxhy1 zuW}M z)hw%2g6Ns01YASccPjIt;)0W-NH4dp=9#5*vAjN#P;7WIAdC_Q4F6UjW)5a$I;~0W zZn+zIvFU&77DEufzZ3<~mQy#R0EHHQ{iYWDybNxG0IES;hfPvXD=>&Xj&x?R+E2P? zi+O|f!30#8iyFaVSn7nxai3G}+lI4{iBUnCe!K)S-yOHu0Zpkdp~Tdi{}g@x4?@c$ zveWQD3IjEa{s7hdFgwj1q+0zQGl4FN3vq6dHA^!EIhPHC4@@V-#`$%sM>z z`BbI>n>)9$nlVvf#|i-iHNU@gfG9BL!O!piC0t(|%*$4YWcQW+@BFj1jEK%Jg6>P1 zu^rtbTjUAXEVsC#EwK-yEzXoSeM`bce5x9!PZjFwe>1M71tHt4GsxLyY&HW2h}l2x_4@8|bou#Jq#QFX!+g!x zzx>Bh{NH#wkQf4rPfd>BwcG)Lj%$?6NpIg?MmPDwf%XJY3cn@a``Zr_j&@gintXSE zwz}rqNG-RWG@F|U*OrBcxX0!-7!B#_k@H|2csck!AAxa1f$wqO>+mjAej z(9JS~N~q^oUBJxy>_Nyx+<)u4H0;Ad7%_qFKf`PdK_4qcDag1k=ZcK(_KQpS4t1$`!Xwvx~B9@~pAVX68 zOMfVZAR;q7dc`!{=c{(C>|;`rW52n5E@nTlOiJJ%=>GJO>m~#AKT9D04&nbPW&&qS zr4$56kn}P($;kSYTS?z_b2nt%)EfrwYe-CIKm5Ns;^A9%waii&);YsN+%g(+(lzx= z{o8A8%lpv{l_IoE$BruBbMQ{;|1Auu6ZLsTl$4@der;1m&4(rVOzoC3yX`V6-ehq3 zzkT`No)EEPhq7DJ9YrUF@IR>@IR9|fOrv+t zTSC&s)M(RmnE|d-Ak$vV^)rzw3e}NFF@?pZ5M|O1L2&2YG29TT7aRE-vbsEF-pui9 zPsG(@SrdCbe>m|MKPO(wyL9P7X9F5`(meXSI72T095|OL2?;lM-xSh3Fzf`Xas{S! zF2kh;4}5`uv{co>oEUU`AKqR=XG88JSPS*7?kZCRvzCX^W5S;cv9Bom%rAT3G$NuXvyp{==%nl6*ToR zRC252c{c?yV3J`M&`rb|29^#Yghx|~%|9vrBgK=8S?GvOeRJiS`b35KQl|H8Jbo9` z2=H5}P{X>q^gHs|n^+_WXbGiJ+cL9id9;p>EjX8&+Ij*s*$h!_cZ7#2XXC$!0^RHv z6`s3JUvjTxy+XY`hKh=(9C{e@)-{P6R=oOo1$mZbznIP6q7xW!_+XP!pQld!#*II* zn7OD?Z2%H=h5o#?jR4xjEWbh)dWwtpDDFty#nic`j+Ghpw1$$}4d<&37iqH`&3kHh zmOpF{H}v*C$!+!ZwA}L4#kZmRkAh1vCYlM-v)P>c(*22`nUsvM2QG+!fOQG*F5I#_ks@0?I1^&|+`;qzu2EIM00)tc8sPW;nR$}+4c9`QHC^kQtLXlVl2u8 z;WPCUQ=PsoPhlSEwplHwzmK^x#S8WOI%#e^3fNnz3qS8o;0Oj<(0~?x)bo0swVWp; z$1mDEXm8!>{Q3R8-Jjp{!&NpazS!Ccpzg&SA9Reabz95i4*}7c412nu8{ji!$ekR+ z{-xjo+NI$}izLg5AmhN1-}@o|TBJb(6E71Yez|9Y!_gJ&*)9owexH)Mc8xN0)c6_? zncS&=H9RhGD^t332`I0Z*}hms-B5&^OJ8j(FKn!-8C^U|d1z`o+vE!nPwutZ=Ef%6 zW@DAyG)pK5Xm#<(GUdy0Rs)1Pi3w_MSq$3$&aZZ(is}+vM|=0XE8Lf9XD>>b`%V3+(5%SYDgJ~9mYSU%N(!f<&a)oEV4*?vW{X; zo!f<-oXr~oT`$ib1C4rZ0K)Sf;a)C$?*igQ*GhH}bGO{IKyHP5*~@YF0cmZnaGB;MK`IW-rSqdlJRw0J$_+% z{A}gVQAo$&!O?!tHTfjVX?)A{c%X$0_PDNHYJ!>_9Sgy?$y5i7$Yg!re_J&ySW4Ee zRfMjX0ief0K^|)a!tR)*YLiXz=}oYRj>xCi$!E>J+R5^1_W1qdtIu5mbM@o>buRhS zT{tJ*Bf>`$^7rw93&J~j8I}T`$zBgi`u6oWlgKDeX{|>gHa-&i5a4>(Bqu@>o@t6U zR|gvAeg@R5#N4@W-rx}rMA{4&j=l_W${Gu2%)>xAS+x5b8FaJE@aeNkyB)3FRl(;i zsq(9|cqSrNe9rBMCaM?&RMUthDmg}QM9@p>crNdb`BFygMZ$6`Q^MEe_+hccB1UL*>O_`tWP(5yrrxmJgu_T?xIgWO+3HW6Nd|D= z5V-u33azJ_2eE9PbCwViYTMPp93h9nyYvFjAAQ{4e*JR0{W$dO!D8Y-SWnw&-M0~w zK(P^|Sz3r2ofsrdWNOPi@xWgdHh#FMQtI@ z4d(nbw6qyiNn()6=M7w6dgoug-UiiVluGVz&CMlU>Ar$hhE@X3VLJ#3PuoJ_E&4O1 z?eCEQy=`K#8^;IO2S7t~0?0(f%4!*J7}uLf>ch4TaHi-?u8BS zX07u?_s&v}CT+Hv<4~@0`>NufInmfBHsHz#@k!UHN!#HDO%q0KKgbuubV2#Ljs)@? znWuc*EJ@Veq)VW`?I@b1^?OOeuoDe9aO=@LUP+#aPLuV$6`=N&6E>AlkE z4$VoigE!ztaL9>KTeM2uDu1Ng8(?awp7Sye!}*awTT=(|3d`{ca(RFKy=PU`E4Ejz zCt8UJ`z<+NJ6lLdFwmbKQy31Yb=bq41c7I3!u4E{Xk!^;O(rSoP$RL8}+h^9=qZ#dH8a$1u#>>6G z01h7=09+-N%&{I-z1e;B6zj&SREy69O9ig34}h7F?1=FpQF~cMD7+B z&0Bt6im*otTwi*-^H_4MJuK?Hd8`7sd3KtRca9Z2r6mpbiCgvNfL?ie>N53Om)=?@ zztbd=^Oj5A*Db>lyg`5`FDrZ{j0qf#3y8N@c*ey;3AsYMC_d+(D4IuZ#wD_JyPJ(B zXX7a{*IN13mE=!Z;;Jh8SMW9rXFtW4$3%MbXxz#S%NMJA_=H);fE!F6Yr4XypvFj% z=R=pMSxp-j(zu#&A6k7DV%Iv@+P`EmgOT0*a~A|V)lC_m&D5aSGU?VU8RWUxK(u3C z%m%bc+?B_n2Q-@h)CJ+{c8cUr)qtK$t6#bkLXYFi$VwKk13!8|4`Rct3ZIS{S<>5F z6~3yMM4prITC$ChBoD|yk3KcgmDFoFl>YiPjf9u{0d5QN2X2$@25rqYYs&j;x=wz! zYI<3}lI7QHKVR9j)9u3my7`4v#N_^hzal{y_L4m{~Fh4yPlkV&F3Y}r~<_*uOjq01P%7^j7 z_Wfx&bI;#m)kQKc8powg`Bg4YkZ2m1J0bAPu4f>*vp+WI8plL>o%ZaQoQA-Y1(uEx zfn&0;kYSN14;%5@Xd%p?A9Z;uHygfjIp;0^IR`}Fyf+?UhVhgbg;M09d7>CXj>~`^ ztKs^WHoJIgZ5gYuwvoM5%RuA6-@zGlxIycOAb-rE{Dj}UTeIQHd9@?wV(zL*n z?k%ZF>euIObPIU>>|<6~^w%pj8JWKTMl3v1*|;fX(>WHRca(Pyn72IU9*I-Xu|`?K zoZ-;`u1_ViGhVn{wWcUD)G2gJeL@82w{XTloM9E>z-@DdAgJu&U~I-v{qM;0gUT5? zq$E%pVeYC(7jQK%u0ExtuX_D+QFfro!3NqUcgE|ujZz+x^?N1|huyBR&kisInycxx z8vz0%>si+9LU#bPgry&5Z$R~qa?XiQ+~wf+R)+%W#6$%Hwdei#SV(~E%?q2l!_Xjk z<><3Ve~QV&>bmpi+gI|i@zl@h%y!3WZuE53i83r*Gkf$Of%mKk{=j>M}b6DXG8MZ#MZ;u zPZRm0Q9qxtiVPod-l6Tbj2%m+>^e_#iW}5#^=&r(Ajm_jC9SS~fFgk07ZO!l_!Y9= zgg}prh)zW~pmzJEb)P=HQR!ZCq8IlO-G3M8Udi;S=o3Sz0Ufm^lE4o~03kh^k;|w7 z2Hi6asRF@TbYf}4Zw&RHU({q9f@r)+$}B|_Q|(-h=3;m*!_Y3VM|YcQLb-*wBY2^8 z`>Rjcn%9!bh2W{rG;dB6B*M5bf|D=MLMA)Hqq+Q@YUEFTD~>!Q)INEd>h!x6MX6t( ze9mrkf%*^2YNPSydb7pm7998uk-9NSZ971aseGPbp4|MvoRR1>+VM}cuc&6~?t>8! zBM&c6A{S9IidWKQ%xc9Sd2{DVN9?A)IAy)@ubLQl`JB}wko zLK6G+Ws}6FNA$%Pdx(0T>J0R80Zua(azF;6i(dukKzkn|Q_gvucNh4{i35&QvztM0 zi&(0@jy&eILIs_!7a|mgW?(QL_JEUV60qO3NeviTX zy1x7Q-uL%={x#-2&m;FfNt6#@cDAk$nya)~O8sVIK13uUy zertWMCtbeBvR|a}RAfo>CYjCT3f~(0LIGV;ne7-~%-RZbx{*lq zb103hU$$TUIrZ1+x0&Y04X3SV^Dn|ZSnjutA92A6!RZWI_`u03hFt2bxWuoHT%>Vz z*%Hz`(~+UO0DxxBEutwiwc5wO#gZ;Oquv~l26I%gt3!0&>xlA<1gN4JLAD?pV7uIB z{hwb1Bwtr`r^Rog<$G?P8ffYCxashxxWqSl3wfn-Xc4)F(NpnRRkg(tf`squ+_vRB zV`kwj%SHBs5Cwt9d^4#lFVb8Pj~0KrOd5Uxhtdbzc*_>+VTjQ^71Glvns{E*_Bleb z<8Ns+#Wx|2WK=)LQxAHaylFbjb0WMjhZM~Cw;S&)U_3+8+(SEou9S&{Ye7-UhOad<(93M!qI_62Vuul z(dSvxM(%9R$fqKiMf$s_-C^>KrRFkDF; zMn3>5D~7)>0Ee6)=n}A!ST~vm-MQ!<^l|v!QpCAxI!}K~_y8AOhwYwApU}X-wk>+% zfq^`n86j=N#=hb@eX=e&AR<@(%g(Xw1tQ$67jp6)H!<6yvzBUFQ$;|+|g#4e_ghq!-MH)jHRV#o*Ka zA@Lk$6ZlWvfw#4J&+D{?dVS%V)>b}i$8swTT{~6jV=pOwC3RIAz&3aY6O2CVCw=Z+ z$>n}NwNtnDHEY%8bh%EGxh?h*& zz^vWi1=hADci^;mj_g`fX+%=-22|5}@~swCq)B<9Ye9nBGnRJdpNteH@6$|{Uy8H$ zz~F9WA#9gCQ%7w{XeqOt6tlcBBM_sAA74&7uHHir@ESNnzg-SNT-->Kbv`eVh{!do z{2kabcu3CC;xw*iSOwfQ=OZB3BrZS{Qb!gm#THg*DSVK6xSuK-22+sqQ1+Y=ntkqZ z^9+k??Gt{ed~kQ=fWd5#BuKz~lbH0mi`+|eJf2lr z9Ov5Wnkz12N}~M^`HM<=^$Gs7kVYbw$ppQ7b$S}F;{(=KT;1(H@#uaiPh^pllnm}x z1~xhrdJQ-p{^P$5mdLc_S-?{I8&E}pdedb}KM>8mk6Ghh(28&|8XbCO=q9YW z9+CcOfILOI1l>QLyIkt_vVbScQT03gdVCU!KYuTrO}I*L{cY<+RGTGCZ8W_0G7Wq8 zPwW&5#fHg~#2CZ6Gsv%MIYLegh!lquyBlSEp*w&bYA(!yDb0r!iSZk0NLz z42d+v`!Jx)la^w46$%2Ol4;Yz>V`xuepX)z5)kWwg5`+>kGro{+^>ujc5Vxo>s078 z-3~qh0iWp=npSe%bCj6q&nEKrNv^Vzja)l@l!0k2H-J`{JZ?EObd+to@)ciwa>%{j_q0PxxXygx$5m6z{%}{|&?Yb*>9hOY zbMp!}dv2H=!90c30b-lGzI{Sg*_=IPPRoW+oCFwV>7TbjLu4>g8tb1bxCRVmml&)>%LAD>#5NNy!X6sWVXuv7Qg8j5{{Rgv2HRGLo_*f!)CP4YVL3&|ztLM6E?l!} zBaCf>TLwgMKWj++4HM9Vc3<*6yq&XRk)|`Ahw9YHQ<&VpbbIvb{Z z$l1q1F?nlb^J;3<@3i|uDCrD)oo^>BF8cmI>Q^Rl-$=WDj=QaxI2s>`d0D0&C7Fr7 z7~(@%E3rO#0Aev83Cif0gw*VNJ7KMz>8*vB#BXG4?Kh|ZQ;V~9Eh|AEgb}#WpSw8_ z|K9$uwfbS^X_Z>w*{hOw6rd(K2av~^f`?N@M0?y(t5Ni!G~l578x!fmlvd?E@hJNr zgT2lbW&Gj^^5Y_Q;l}{n3rudDUVciL?g~`NMCF(f(90M=3|QzFE603o{u$%8xYy9Q#Y+-y2evi;kCZm%69JDYenp9toBuPS@mpc?K=5gq zAFO6C9&O1@(+eZDGIbITwU6sgz0Rp0>hWAivaQybXxKm7C{8e8o;mqt8+tLqe;Khx zm)iULT3F+~HiyjjH{>8J2?wxB&j8;=+(?R{P>h2U`KyUT$o)>gg|@x<>VtmBM6Lq$ z43nC`1UA0K;fOM22;bzDF~^x{`hWx1e-;)2@fi~`63#wL(+}Ny@0}hld-_7S;)qx@ z<9z!bCMY5eiQ0XEml+uH*}W7Xq?nCgo&bqD^sUfI1V~{B6|TCelf}=Ew=(TF#*u{- z6Yy`9^|gYE*5V!?lXZG5G+WR80brm32wb5HpO@ZKjJ=p*6!x$d%^8oK%$#3O^tP>tVo!Tqhg)^~NlMd2AXp`%17 zYCdqS95PZHSdgQC)LHj!m1k9SU+elvD~XMJs?Zb8aY zleqjTor}a1t;o>>r^!C0JrmP<1(GOX%3sW>tD3i8$C$$>(z2uzIQr{<2Q-ZTsk4~o zI^fr5N+^~!lH@0L;E#PvM= zyM~ZuBV@ehJ2Y+$qhDA`QXqh5?JHkCBlb@okoMh*JPnHGstZq{_istbFLNkxQhxz)&Pq?XHLacu|1}X!sp!lrIUY1Yy)Ak=*5O3n~n#tGP=^(gAIJ{ba>G`4$*4XP$9}lG_ z!_V5d@Y&I`HF);VAS0(Al#YcLATpY@8hnYR5;KGqia^;MGiWRX?km34AjZ!56}CQH z(KP`@1pf?&l$n8Rl`SLqShiTxhX&chG`xLPKOoYycule!y&?YUtyU=Ks1kN0L#xL= zjc!aM95If3D_B2REJ8P5U3K(DF#bK&aFJ?x@xK|+Dg`)li^b<7wq!vj6yJb|-By1E z5?ea0!{*T+dk2I}A7BhIEg|aZq0I*yAw)Py@4>^QOqE$! zgG1bKsMg#@>=aIO{s};TI2xHi7%AGR8zT)8FbvMG=KqwqXa97eM5@%Yej(GUC>c6N zZpQwOr)>i}p+>mz;;?u{z#4TMWS&7mdt_Hc8BpVAwDJn} zQ*TFIzMSod?qMwA$&)fIV|l7)ZC&~l7q>f{QcQ}3_@0hd>A>V?Vy}3MiBfq*{HTY> zTT7|j9P6@5ztzHI&?$T^8_M^K>EX;%&R;{JQ&!*2^Bjz~lEBU7V$f`TU_<_pqgLm) z`+X+Tal6RL85!wT>014{Aik$UNeFb72PsS!r;NA|A;XvGT#zAw+1g z$r&FuxKc+$xvslh_Q^Ws6Ri=nbjE)-a0q-n^}04x1K*W=IO*BBr~XN4kZBZLG?PrZ zCd5xtYkDQpJ+Tzj-G}ok&kZDm>$fV@dy%KASB`oFO+46Us~_Y?K+!1N3Yt!IkD~Pt zq@lOXSK`e*VvLZ0BfKc4zxZ{WKO{7{QFD8%R1ztEl@R0K8qrFAJ!0C6_hPKX)LpPH zRA(^ryrAA=zAi!&w_{S&jz~kw)JB~5{8Pnh17iZk;iHX8O5W_w^pSUr66j2LHwkxuKzf4S zVv2_zVo5pL)jFm}D69_7Mc_V;&sy-(t2f^yqu3Q#-B0U5#V^AOr&M7h61qfvphEic zNv+!VH`amx>!1XrA{)X<<_Dc$^_p4cCe=Ho{{O->^got(?+>*6O|z@EQr%#tZ%N*Ul-pFdek;>V&u0S2CQss zMqZ-GSv*9!e*onhnquOLxlG?OlN%|~@~>~TYSji*sTEt!Z^-l$8k0yS^Js?L78ZqN zPN)bD1aTN#6pvix=2eg%uW)mhDD`oq!T*>p?iZrzZ%^^=J5IdqFix+#fAvA@GxLmP zUFV;dPT+Q+J9Sw@>*foKn+S-=UTVj#n_qE3%mpoINIVu9KYh$AI%_Od9y5@Iyy5-k zIvN1E!%{YwBT{1bjRUwZW%%9+gd#Hz8em;XOZVqy(@9J~>ds6Syg0Bve`nB(*@+p^ z`l9u`=VVB{;&!i}TNs#j5=JD5y~BOHO2%2j3;+D_v6h2(Hs6kXtjoj>oM`Id_X-q38z0ZXPT~;A>HAi zF0Koo#QZpUE>MQ0e>|$=e7f>u7GLeTLH37)7)p@B!F^MGoVu38^ftjLYai=e422RK z61nej)A-iay0~t8K2-n2Cm)=5u<0d#ru63Tp_B1EZY%3`Li}a%xvIv>p(4mNmeOy~ z4+$W5VcYP7j6;~%w4j^7jpnqFn2wLOb=e~FjATWmF8T%Ylx#!XR*6{9q@#h1kBEVx zA_ngXb-`O*DTs84j`__cUa@s*^;-M0Q?7)P-w|3vWQ?eCup!fw(z66g7vvD<$*V-U zC_F)YOUR2~${GRim%0Awvu&qu0Y|t|p*K>Jbjj1OL`mg#d+hQBb|6%l!?H7`=DPZDJ@TNj=y~0LDhKfTI zK5_PgnrEV^EU|r$Z-}{qdFBs4Ui!DmbDeBGvJzMJ$u~@%``yQi&F_Vi`}h~%isqcx z3mJZD0Q?r=JPQq6P6R;9)b7Ev7B{-=%;JyxmF?nZAsa3V4pI^|SGukuOX)ZH;xGrI zln;?BuO><fKNLq4eOqlxs-S9&=q(=RV+r&gD&^XQowz* zztPJS`kAO1BjC&?&AmnnTuSVi_lU3^zGJKodp1tSsBg;9NumlDV*h}JG9~|Kg+gM@ zWvlesm^lM4EIxKhX_ZpTqmi$ZB+S@4$h*^z@+2pZ=y*si+D#F*^@=oCsWDZR_-YwT4 zWwPNjp)D#KWk)6%%)NzxJhuy z@J7Eh&(#P1JvUe_U_H6XTLbv1NWxR#P7zmhn~6Ds;N zcXr;ePN~nhI27M})V)~P`-ls+gSSCXNA@@D0`$Pg4?jD(Zz{I&A#lBY*MErXjWQX+ zj6{LxF8$+dS026rP(qn3ckGAe{>GUjJ6R`lS7lWJL63Cn+piXklX!kdaH(Nm5TE^W?L&yRou$F z9P5cHl(p1TKkgcHzGX-7W{cE~NyG6~{glwMD8^M3`EIbF$DkZTJ7P#AieM8jor5uB zK1UB(bG-c|>l0CxXIj^_BhSWbL@ZY9X_Ehks;aFgM8&^MS5oD1#>O{p4_QpOz`>1N zo0V^+`L4*MCK|J&v*Qi?*m~607zU*eeS-XD&a>7%r^0f`Gk;)Y}xNzVAK9PbcF%vjxTh zzQ_aJjz;j1d}0+Aa!ul0^y0Z3+n3$4v`?U%jl8?TgYtDOxL(KuKTKFf7FMYEV;rq>T%a1?1>PGS-}NONk!^=2xC zJyCsTqI4y&%f`4%dr&Xj92Gm=E|>$%=?RFn%>goHc84;m`af?rXmHoHVkq(M3QC4+ z)!u&A4;N|UzZtNxBaBSiGBU%ZIZ7-5;NzG&cd-*_&9Yx?mSajiy)fy8Y`j5WM?mfI zh=Uka}I@L=VJmvHlk1^Gy0->$&B@QbA=Oa|He*= zVG9#~Va^a5Wv#gIXl9u<*#zeYGBdiZcL>REeLd19U(qjY%-VQA-xWXuVJJN+e z7F*T@v~}b!9}We(?rqFNOHr52B8pB~!Jasj5qe6r;uUhO5fNW|m2+DE<40pL6s}>G z4l;rZ$qZ9qs%;-SF62PCPQX4C7H{xtbAv6>g30K*gEf{KH68QsA&2D90xg(xPYyhU zjg`4?nFYc?hk1ZG3PBlpCz7?6KAD9=F)~xxcibCp|JlFjOHY=+wb25uBgq?wVLh78 zLaxp4OcCJ3;07uWmJ2cv=rGlWO^(>U1aUD_WLoN5_qi{&ZW9jbr_tizgund+c|P5w zyZ4cc2h_bo1tzt{8MJG|g&*3Fuz>E{qZ)%p*wfX`;ppFs`A@YhukIbztRprEfh-kHlhy(;J#EM8)yAQp<>i&z;4gk48@3uJlGCH{7T; z;u>KBS8kq@ce2!VB7Ns?h^6T=ST7|BDzwc1goa3-k0~rDFi?LiPswJ_wGjH?r%wqZ zFjg#zG9>bRa7?6g;k%}My0RxT0i=IYUPG{z%9ui7FbtXr=JKg{yRJB=9<(4eW8Ffc=hSKq*a%;phUlJ5SSqgLrB)n>DBqp(ytm@oB6f}2lAtU zxt3`;+b|43PLtV&9~EX3uhLt%N-ZELh!&(HBg*khKucMbqD>}b=Fn`Gokc~PH#`7g z@nT!|W<7&R!Y6Q1+?sR0)aSlh2e>KOiM2?%Sm7J>IT5+}_MZv*pxl%5n;yxuL%m_z zMT}(2B)G-rs}x78mK$~>`HOwAEP!5{6O6vmR$KZHL68l>PLF(`^&0Jg2N8SHs^DBa z6N%27=5Di4=ioYX3wCMBzI^nM&XKa05Ded`t3WDm<6{`g(h%fE3HbzgwWoO&-*9d4 ze*yQsSPNpn`G^E*eOCwxxBf_$beY@bS;75{4vw24M|xRK6ihmziXFg+gA!z7<%Hce z4l>hPJA3D+U-QM*awZjR__0a*J#XVUA>}2I8K}_C+PYe+l~!Rx+^~U!|MRT?4Q|Vs z;{#-^?{95IdwP1LCLZ0#Ri(<@Xh%Nkb%N;4kb)QNiQd%N8SHOim!T76Lu_OGutKmz z6g84xh_b1l_8J zr{Dfe=C?ePHBz{73pE@uMwxh!NIL{kfIsQWHkUNAV6gca6X^Sj_o)^ZA695M?;+=1 zoZ!@>L(Vg3-M9kDoQRl9N$1Qfi#vnnnPtW>MkFCCAj5uad%Dh`*%Ni&>%{$c0b0xR zP41A}oh@g9J=8aZz}q8gI6WLiI9v)~9LjRBdwZq#6}&zxzMTqQb%@a6Uf3Y~F>iI@ ze*d!O=z1N}`4a!jA$PIqKZDm&#{!g9@*h9a&?^^&mFjg$0u|WO<;iReAiGI|box#q zK)~Z-Hg8}Rln~TTZ#`QQTXXD?Wb_7ggO!`QC+Tn27Pw-ORpMYA*zZx&%{dLMrYgTu z9Fi4Qzcb;&FPkofHk-9Ku9;_wmhvft%eVaBdNUbh;q=39D23sJlM5sSE)&`t0^GX5CEz`}@Tt5G zRDr=7fO9msHRC5Ua4)HIkVJjwSqe6+N~#w-CV|FNsuh*l-Y~x?$diY5@c=hhE=5~; zqCk}rm=1Dk?PGeC6i*s$a%+}!f~;Rw>vSNOxmU@}O@|M^8p!-2u>NSGTJY_P7}C8F zj7x#Yiqg=tPZzQJ+(hN0`sr9lfVHWo`Kc}7YY#n9%ipc2IFcx>PF?YSvdYc}0}W43 zK)|CfnV-Mn@_Fg(q&qtzNs%QfBPA_@O6_$2!G6Anbav|$1q(*Y+W#-S* zZzc;f`>U|`y$(;`#=IBHcfgHvn>%*K?oX;;mi2L}bdhJ&Lawn_CRY>#LtA&C*UesN z2D1&WS+lRb&G@^9FNG(zzS zM*@E;J)n9*cLo6bI8p7j;Y>q@J>ZZjnZRMb_~T?I0OIogU_)8lnEjRf?P&#oc z?lFvs-XAXO%l01__q^N}PaZ>Bm58FOYy%=qU~T`Q!-i~Sg8c9A{7PHX?&8kAKln z3MH&JZs%w}Fz_xDj7!~o5@n7=a_$4}Wz{3$c((9IGO^rL*KO z2+4&RBHoDwluKC8z>ek4cYa)rGe=I7Nxdke#L12wE#lShv&wncWJoX3a7In6Ih?f7 zYVy2I=XZoz>GYVjW7==er_w#Cfh8@vfp6J+#eo~R`L&n$pn!L4Eq|x8 zu5yHJ)am`pL5Iw7rKSe63j@)0L&eFFCez8WIwO#Yg(20_V+ImdxCpULremV>&;@3u z`I?Y&U!Q%6@%!XZ@D36ip8Eea5DIh?D8Yo9`eItgP6x}S>O#+N#y}bV{O%32>+U_g zWJ$4#$Cgh2W6HSoFtHzgZe;8zn7Lk~s%aeP*rh3JTwbc{x7NSX3BqSGgX?Ynb zNB94G*s%8GW0%<1Mvr>gf#+*#fvh0_76B#C8?YuDKh_h+^kO_i-r-yEtOx>2e{IFq zR}GldZ;-o4E;(!0_{!vt+ujUR25<{^{Q~Si)R6Wc>gO(@ zIdcwuDsd%+&*RLMKQ^n-Md9|cxkzTJD#@{cvT|pQ&jIM(Io)=UMb- z7&0QWD|^y@$WBrRPl?az8bYSqXJgrjzHntA?iEtkHJTzEOm!fS!pYxcIAZ*Tt*L2c#LKOOqRqjo|XjzG9rjO&c6xyU2!k8#4j zT&2qyHbilU#>aq8IS+Z7%HDJC*xuW8AUppAXfxw|6Rw+r2ds_T6MvY-y_@m*Yh7jqLuZFbzM($pJ@o<^USA!$>F*y z;cyh=>8sWDqou0Z_6eQYBl=^zu9;&X%bZ_xOMLsKxld1w+O82orzR!~J~S#oRJ^y1 z4C;{=vGahEPnj|caj(c0oe(rq;Sh5Y?wnyt5Z<`|?ccG0H;_I@U8!}C@4>k(z2IE3 z(ZUfy@0R#flKM`(F^PcutMwXKvY5141eRZ1BhE8XvBBZBF6t7;%U1^{5fb!tqc53T z5$K@=dOr*XbZQEZUc4R{ikR(c*2}axND#{0qc(%W$oz@@45r2)Of#}!gMBEmri12( zcpYIIZsa6MC?`6TliN>iwWi8Y0eQNmJmmeMPmh@J;=i-bHL+=S z@8|>9gx9#wM+bQH<dir4F0phO>xnaPYPD|9HjO#tpfEZ~`*BN}In|#Un`Hj(8f5^-` zDbE6;>5MQX5NUpysH*^m!lPGide@g6GRYowcX z4V4)m7P6iVOk?x2T(-bkAh1eo=Z1y*aWKQi)7gf{{q2OWD| zwP9N8B#r(?z}0J5bCY!@BezEI1x~nZK_|z-UZ*#SXzYF8UP!u4o11R31L<1>x-Ots z4k1ghKv|uxYYf5&5eQW!<4hMEy?iHpE9#pl!3C7KX>ZCTz2)4f>To zO(D^RU*4u;v6O#S?zro7MlM{``_Z3%o_+N2jBUMVv1?Zc0z@zSg6vW-aniWn@ZFy@ zSlRic|2bUZ*~o$RssEl;YXzdWo!YV5d0QI-{meyp3_C0cTI8h8KX|m8 zaBAE%Ur;}25*#<9_ed=<9w`Mc5bNWu^H^E4To-BHxeG1Hb0 z2Z#pv-N{hro#4ao5dnw2eq22xC^!S0KypT_Huzc2=`)S-P|@nuEh*qcNPx71KDwAs zsiC>Y^!9}p9$7HmK0h6C#51`O>;SR}9W@;eM0Lv0{kfv5r9WGS+&Fla0b2gme?~_e zX51U%_?*^`tKp+D?{{M%N&?pM<(PwEsY61aeyNMl_2F`-U8lDUN|NI85mq4u`q=l` zm;?Gamc^C=(940VffSr}5>5Dyg-fQpOXJ{f>b$Vst#j!8J9KXq-I!A*i*gTj?-7Ng zLd!mA)~54d=|<5JO7i~fiQE#sFUS{*&h`x}A3crp&9Sti{rxBoQO$wYHTt zZ%WcTl8B#2DfW+w{8mS*SO<>2UV5#4DI9>j)-o_eY=4r6AKg0eEpl+?HNN}w9s|vU zkbRF*@7>Oz`ZgAjm+h>ARxHo5>^hsj{jn=F)Arr?9Ba1zNJalVualqo)Nje^0)(i+ zjjaY%*7(}DbKqhmdFE#M54ii-8sRVj)#j%O7Wv`e$eUaS4i%xv^wqQ|#=V=_l)H?- zm$nu9oV>E>(SMQ@;A}KGZzV`;kO4cSV%F5)4w-8~zB89P9#-uyJiOCg4zGYn{4oeB zA8+5?U?(%!{$Q<>GGN{M>V01jwjON zs=DOduO&09EIUyfnip*ua~}Z-r@Jr6ABXPc1?tom>iJ{n3*ovvVfuVy)EuZRSLj?B z{C+znT{zM6NWBe-p;eE>;<4_}u^9YJ_KC*9{z;%4>4>cGzH9rVo%G&)^eak&3Ys&v zOyI4&-{RzRPqZI(+*}NhUZL?Q#IJuE5Lfa2>?~XUtj~7|{@5xa6`O3!Ho%uKB^)NL zYVdE=X>jgbBF)(MlzEy>cf|V9JYmz(*MnJ0*yW#Mv_cGPUKfBnRLl@R-TJA$ldKs8 zS}Q`oDm(DDQKp0^n4CK|v3R7YV~x?OL`qQDHJX=0&pt`hW+gat8~TRhf&Jiet9EzN z+?%u!NS_|DA9M+Q-J;O_ zkX2f|XWm!odMcZoR29u?t~}WMjU|O8@mr2B$!f~QT0JlbFB`t{p?i&v&P>^)Nof%k z7T9qOqN7H6^+K-ahEAkK?s%aS+N+Tk^FVBUI+{4nk2N^yFgE>WA?Hr12Omee<~jr> zE(NoP45ufP_?(3!M_;KZw%r<1R`mTyii!QsCm7GFL}t>G{Wq1f?vj8kAvt%N=K+zE z&;2l09Hm5;32{=*=OJP)6o}Wj&J6SE_in9tUI#qr^HkoQ`g7V3!-V;XX6 z9*>3miM7QF@BG-B>%?MaTdIn7_AyPp68r9IX8;jRgc$Z5KHHsQr^nFvD6sT1<%{TU zvY0Yg-pQ>R#GsHD$%RdUp#Jso@$@_~AOL+S+h^Yr9 z32<@Fc5f>>I<}-nVIQNWa6^@g1WdeBdi+6IU$h~==3P>X)Di713jTO8z|hc3H`Jsw ztcDAq7R!)b7}oXfswVk^=FyBy?0628i~J{SOrv(jiya(HZ>V@xN=VPC&=K#_P5b;R z8+sxoYx0l^YIx7_k#>UlccbL~Ai^i#5%?a0;9~X@Hmob#5ZDm>LE6*ra%kN+Q($&? z6zomxLH!A@q?4-+f#TwmPN*6Zq1@k#bO~C zUKF=9NS8d$_~JmHtFah{1#|U2h|ou-cW$O`N`|mKgnjVGs#%DhMn{(zEY%=WNR&d> zJH<1a*W%G$B4HQb{tccHS^P7FhmY$r*Iq>8dd{TL5qchYT_oyf-v6~ zKCX`4AB<^oEE8NebMzH`F0XT}K-35Q-hTYlWSDrk%b=KnxF79AD)yysrxrGO;})N7 z&Tq(wpFQwtA#{4@;~{##x31se)cD0m(u1|V_I`)HE^^G?+dP$n9X)+!BE==7B*%}! zaY|eespz<*$E7K&?+;G0Cho=BX=s77tt`(p&h+kj&9M-V(5w0CuOUKei7qO(9tXFb zJnO}3T2u5iCb19@O6h(c%|PLqIf>hJ?(PIpJ1TZ;-;Co#i6nTzW7_F?vz>aHh1qo? zHLpes$gs)ScnJ4APA8nkR;514&p<^76cV%l=cY4MD@OZ1;>^3+PrfXz52LRmg_J|t z*bk~nr5YC|k5bO()w`7J;%J0n(xm?TOwTu zOvhFGt>_F9n#x*bc9qtqT`c?1WtFTxj&YxCY#K|VyKWU^oK06IoDy4CY3UK#B%jDA zKW2K|zdpvH9dmw#)Cl+kDak{`-Fq@>I+{hd@EsoDCR~LmyPO(;_||k-rn+Azt3ku`iWga|<`np>r^h2Xx4Auvc~M9=1Fyal^Oy>ia0Py+j5`*kJaJ7oDrD zpnsXxRVi6v>b__dwyQNxQy8UuNFau>khi_@D4MZiPbJo?OnFtMN^DkWc6ZfwgMVmM zzW7Zj^V~hjxz9nLpx`|LrzJF?Pp78Mkh@l^NY5?~gCT!eJe`fJ_D=AVneGxwzN&ie z@lCS*yXRROU-x7W+v%q*{>Om->4&*~Sg0>6_5*J9n##y4Yir~72I{Ip{)CW$A@}sg z?G;v7>V%i*J2@@XCFdN;ntA*kNB2*QS-Is-oMNG>K9}Ps#j-H}ZPROq*Sz1ZS3SKF zUa_}6_C>V1oS{k_aF=1acC$BZZiF9+3=`RD>hGhhJkzZ2Wb5-vpt3V)<6Gq@#ErvR;mn$wrn?w-AUOB`if^%6VqVbdmQ0%n!;q{@ z!a(Zx)A9_txem4L9LacKq9Q2F!~~jbz|KJ_QBYWxFUaOPNd*O>K~?G- zH8SLUFEFv`6j7rR`O@BtZ49(g>R{pAwQr=3YKwi1s_ALdQ0ARROAom-VCJ(n%bWp4i39R%Fyj72b$HVH1} zW6hi(^udNic+{`hNWRY|`OZ3@gxo_N@-lu(?%au$N&%{k-oi1R?ZMoif0a@)o*}+W zSTY51TdA+chMZQgHq{&7Dv^fvXupM!ofl|XylyPKY;l2=kk+&5C%EDg;<0hKDdqNY{lSgL|cq!`POsJ_tV7Wm z-05rl>vi1Do&n{7j;piVTFqCdk`D}ir)-V86R#)_5LH@kYqgiyWPPEm3``>*40&nH z3h*c;w1MK6GT0Vth?>V@%zO<~EC$<^hql9Rg0)e`afZ@jGYDy+4JsQmq-`Km<2B-2=Gz99>gZA> z>Z3$)T~!lKhBv{5!n|3J4VJ?%$LHiZNtmMu?ay_NqPm9%b|9&>{^ z>HFbPY1d+xdJn2Rx`eUxlOFdo0S~ph=-gT51Dl7W%~R9H@=7;|?up=AkQ3+(iEWfx zpsdmSUylK}>pu$=xbcyY(1l@sNq4PObLVJ%UGd~>cZ;6O;LJu$EXV5e%Vq%Ank8FZ z#df^|BqVUL>Bfx*%RA{Oi~qCPK<$D(9UwIf6TAN&`#?k$JUpGaoDd^$Xm0+{!z;#M z_fCM^qI+U=sL-_>d$uASeYDA+{~F-Oe3=RZTT_+qmwzVq+F*JhYig0I21n{Qv6xB1 zR>P3T3Q&j@i#-E^aW9dVq_jV>g=c3R3Nb*lqO4);9%@j~Fd!uTuchWKvo>m5_jxB8 zG^qoA%T=tsa?Q9s_YHhl^9%lS^wEWzyO7Y~?&5a$bfmVyJau6NB=`Mf`MN1kK4r1t z&0+WW8`hbEB=y-w^)79c^Y-D|h`hW!g^!OJV9O@5j20)pntYApP4QdF&N`0{PcM^vYHPeP$>`b23 zitzVVlgiSdVI9PaFJ~P{~rA)Q*D5}u%Mt%oeAv` zF|+R%;QmtvfwQXCJF?(DPn8-k(x3-^Y@A?Zh2S+kxHoiB&~vYDR@r3Kyyi3yk1u^g z@o$5S2bi2N+`Hw4;IY=Ayskwh75f}iB%^>&NcY#}BdYVHXrpVTQ@7z9ua#d$V>5qzL+Lr)|W`*ult-uiv90KUMTToN9EuEb=z}Ws`H)iS5bv-8XwdK|u!BSC?f5z0XvCI9I}%c%sui$s^Hv zP?x+UF_xloTFUxSmscFAC?dL3L&s#AvYSfN86@sN~xA9i0 zwV$@{I913`>U0}X6^ia}b>L;=-6=qj_{N$-$7$;Ccz{ls;%gJ7l`paeDvmrtAVU6+ zQd$IsLNW9^LrAj95Wq(hGF1_fr;|!7OX}$KC~9ITT};~P<+|zDz=yt=n7BPSy+xlY z136`HkEDqN1<$pnTjDn_PE=$T((_|DcSSbIq0WBI zYbW725QcbfN zsx1E#EJ0i{k?Ku;c2tdnC*$)9d|GXIlMj2mmRb9ZyV^CqJ6*tr; z-KoDj?=|c!@4>QIw4^wx9M;D{U-+9|HPavl{4$uL|M|;YN5s9a|41q)x!shu<$%zA zZmAPgb2!pNkkv~6+TJ6k<8RLWViF6Q8{d0#fO)Su9SQjEk4ba#W&3tW4o5g>z}WI~ z-1aon?w?AY9t;j0+R`* zAn6tI8r~0@5UFl+e$^Oh@o(*tBiL?F;v~RhNPK4Fb+>S}*M%IB@+a_Y$)F{IS1;*h z{xg#s6zaOXF}UhVyuj{{3F!~cXUA#gV*MUTj&x5&n{%3EAiCnxY#^=JR7 zDgST(8(=iE5d5_mU&|OzJ+1DVogV0Z%&ePH1C^8Iz?ghvtNQC=GZN5#ha)QFe;ZsS z76iW2T`g#RF8m$kMJSscUb7bdCXv<_(||jhBw-bC58jL1;Qwug!;9b@y&*u$qT4`N z0}8lt1gBq4h<;@JV@eFHR1JRBSMIqXh@sv+8UK%$lGhxwy@U~BeSPz-_9i>~4Q(AgvWMq$u^k%JF&<~Jzn*?@BH66jbII~#U~e=mCijhby3Rm4cw zHqa@aRIxSjpH0LC5}f9Xem~v!qK$;PT0x`Yu>B>@m43XJdmcm+wa<}0!1i0OLT0*B zWa=B`O}HxurG%0;R+)ebDV|L`yDlT;+BGd9{W*h;M8I`lf6s=3E41`NnK%a8Q?PX1FOA^-`sc-K!HeJfShtYkWH+L>efvPI+0TNi zfH7}$G8btgK8i|Nz%c9FwAlDTXaObKVoI;};Q94X3QbPf`seQ}3^8!EG)~Fb71=$B znjifu9_+um=?a;nvRz;6C!meRmE$3uh8G-_wYmVFDGX zE0$X)9M>7}tp+R3^=&ovriv(suyQ=ieL8uL(ilgR{Zl+M6HZXaV+BqX2Xf&vwVZ@= zNhR7sZ9K&+BXqA3YRAGcty=YX%a##`>P>hBxBDF&Zoo};1k&kV3))7KZQev=uSKxI zUrC0RjpQX(}p5$T31 zp(seNf)F$y(wlTb%h}<1eBWo@IWym!Ip=&oKL0Rd+P&|+@4eTxuIpNhU?@@7e<#am zuz(zzn|wzl7y7&-?E6!Xb`d$~^RA3}kW0Vv{_$%v>M@kB+JGB};I=AzP`+J~X-el% z;{_SlLzB?_2STc;GJE=sU4YxL7knlrN^iyf-@a^zqw>h(x* zIbr(p;#UaCOLP}%Io9lEQYyhLiFNve+u8tS>~xq=q^XGvEkGjPJ3dN=6}JR+W){#F z7UkXGa@Y^o%DYs$?#yYpt~UOdQCIzN@NG2Ta7c5IM)%;C?qB6N8({iE;Z<}*L@sB| z&!OKIcRQi`y^3+NAf-nMj}hMWX{VnR>2Y5L{T=ixfmA!G_++OE+b~i+D9UP05qlWB zQQ?w9D)M3^5F}stU_0uWbU^Nj3>b9BqsD}zSrr=2zaSS35z*WqisDwE$`fWdXGuhG z4qG&;jD}oL^$AdbzVCMOfNZNBu40{QT+<_pEH`!LB9u1MWS?XH9+P7-?alKTzlJp6 zntPtp_uSOWpTrVS?-+BukxSZ&91s@p3!SMei)PBnZ1P()P91C0y*#Vdf3uW_G2_Qn znrH2ti8x^tb_jT4Bif2eJEB-yV8E5EY&i+)cqB=vXk*3d~Cet|>UkYgVSqjzJ+_3cy5W6Jp z+Zp((r0yM(_8u42clUKC9FGBOIe%%TWc2r@w3he3D0{Znn ztnL<2?x%blz76+M#~L?-Q=xvU9?N_g3;rCn#3~%^K{*b2K#KRzu-K7bAH8~;9H6ib za@p9e@rUs^vlRULFO6VIjjqS(iK(!huOaigSHa}`lE&~=rfcNPL@-;>CacC2oU4qs zC#w5ARXqaR%O^WU1EwVOuh>+a|71HRTtB7Gg(l?C>*<{MUR99xU0Ybnp+DnmcrMFO znI~icXy+ys_;9P+EEdgcn@5EE6o2uo#zFWsG{CE-#7%iZ1D68fQXR15CsczBxWzp$ir zt+2T|)m(+b_Bxt+P8w4aqkv$RoU3sR)oQKq*8Mgb$BO0@$XvXUJQlXqMlqAt?X)B# z%5f97ltA^*i;EA_jFD2!0zY~S*52%ZSKI1qLw;SdoOje=&mVA_GiB`LHG&?^sq?si zvJTUEl{IP19d)F#ry&z(P=S>>a;${y?*%N3JmV|FlNN)}iu>X;-4ITpl1@%+E+R90 z5zKAU7pJA6+W|5#K0(K~}^gcz#YqkPmp-L*S|ADr<>M`|DZxQ5UA zJj21oD(#}%FgVy51(o%9nnZiN$j2?p1QM%>sqQpJ3_yTp;3N4`&Oa|9)b;e~$F^_5 zB$r1itdp>;>SJNx9Qjx!*!M{dAvmm3DaDL%+-V=?4B#!Ru1;rFB!j|Z+-ZXxM>j%- zotDC5B;+;!z+*s!Oh6$O^&C-%YSYzK3B~L&b^F}t5#XdjS6XF|O}IZL8-e#?u+D=@ zc~DuSwuqnno`K{?Yugh*n)lC*0mQ~Nf7Z+4)lc_F@JUihBfOcrXpz`J5#&CD!sqE(FF78peA*~Xx z9b4PR_!zJL{;YQqZzEiP#B6r^NH-2DHnN*Mis0t7K;J1`qJ4Gp-1dPVwh!uCC-G@& z+a@>fk?Pb!dhQh_9^JJ~TNyvWDP3-X&zQGq7rA7MD5hAInEB;C)~O5l@y7@*M($^Op7hRHTk8U|;n@M@0nImWyzaxaYPwW$ zCgv^8{u5r9jD`vpy&dA7D@U*1GRa(MINo;fHb7<(@Y4AnsTVgZd%&qj`0^q-h6(Di zp+hK_GpCI@CZoE=n;T!RqZ#*auulj(OBZhlto#M`$t5vBC_El$tIurZoD@|9fr?vd z|3!!ZKBcCnR`KYoK<&?X_t{ThLWLVkKa3F+$aV9$6KNsYhlc-pQ2#UNYXsIyH#}C~ z5JUrjZk3R6fnHLh@4>ACz4Tn)gPlQ8haR;UOsfzVtFZs&A1yiefhubR2+u#M^MSzc z@5B2)Bf-Uf zMY$66`+zV)$0=k(dqGN>?u4rFv^gm&APjW<@lE&TZ(N{O z{uK~9f2ejx8Wji!A$c0ymIGAG+S%|Vg7}g?=r8KvKLSownqA zUlZfE5Q&o4D>7$+Pb#L~1`+;cDP<5OL%2>V&i^xNwtnEg9>iVu?2V%TkFD(9{4zrK zP&aCTw1k1xCXZ3LoW4^e4@0i>zYA1_hzR{EXa4JV!e24{k9!lyMgO6#H>hh26!>@( z%>+&&@GFj>CZ0=58Bi$EbY0>X{{?pm%L^1pS3lo%zFYPn@UY^EU?nx94uM_aD>Ydp z)FbN-wzw&)+;hC9Om{ZhM<9~U!E4YYM1_yzME8^jeWx!}yJN8ybbx7VX}vhl#MJqc zQP6JrTlwI}=N?}8quo64@D1juQ5A)OhB!gT(UNq2=D#U16&xVX2z1b27YGkw;UW)z zrAF=`0E*-F?ekmy3cmlQy+mPzUN0Vvm@h!{zo!8Z%Zb*lVI6=7w4ZDWG@+rI5%t-7 zoGRh?O31v%07%0_Ph{kE0SQP!11{eukAW)-5MQtUL3{1pD#&PEtEdor)g&T);rDLnrj4;R|p&R4Bm2I$6swo~`Zd z%lq>wOiO4JVKk3Ih=v>lf&{NpB~o?rvLR^*bkwa&BhQ-6ZgXdw`0;~OdO{WG#PZ9w zLAG$2;l^6zz>k>T);&W|8}78T(l9BT5l|Gs6M8`jBb)az4JM_@)k~KV^WAry+ZyLI zn^rqxT(Y5ki9oFUtrmvJ4P6T9HEV7#f4=ge&B=djK;uf#d|F=~p`EbQ{|Htoq#pga zN97D)s*zR&uzLz8mbq|a_(!I~m-kRksg7vpnkmxF;ciL&{(t{Aqd*F*q_)lE`U<96 zf6Pf5HqtGG1Z|1*kg|Xx;B0kUfM+Y()HVn`-xlv|SDR1ZjSHm~R_oWKMq6ap8jNRP z#FWz?Zr&b_x**<-d)#q3IVILU4^|_BKHTtx)BqK*Ik_>@KP!0iHXvgh?2gwt@P_Q3 zlf<=qKO=i8=3lDbyOepnkg20`&3WRwtl#q#GYXlH$a*UvN~eU2P#q&WVqaY1L2nWf`w_So4Hp!LXyMdJ_9 z(p`JN>!!4-j`eF5;Q;u0B@YG)s;D9!*S|)#WCNWoa4sR-*U1$30uS5$55w=aLtGjR zdEgKJ+$5M$;qNEc@GID3cteia(Y%J@ORTOU?pFe1zKVkoB_(CIoal6k7pElVSl0dP zvp)H`YZKo})IU3--tqo==l(TdD_*j*H6~-q|9PG8bS7EXf~%_eq5ZFWu@)%w;fx5O z^%Z&%OTlpEQ(xfo)mq-h7*WDOW7wbA18cTN4b?J%%pL^IqySX8E1kbHC9wg8zMfyZ zz&B?a{zj4LbTg4{9qFszyDxY%L{%ad<>ry^*Di3S)r5WTj1Cyoq z!es{EPg}C9H7b6`o0$mwR~G9GyU|m}Ha;E>O##H~xZn21>EWFj_o|)Y8yH5X78=?` z{wnQ9IY)K-i|=%AI7*C5#==pC`gOC-xUfxoph-C^y?7_(F&s!2JEFAG!2Xby2uBS} zI$=;fK9ed#zqMel3r%>>TuHADyG{By(7@LL5|}Q7YxQdi{KCR9BI00=2M8lJb*&nG z^j<4?Og%VfvnJ%r*&VV2Kp0&Z!_7Z3=r806B4t>~%wO!!4z4v!lY*x`lgYIYQ79}~ zsOcE5u#X($c#a3h2y^B`AbOZB#&R<5Tpdd)kUV{=7e36A_w=fR842Sl7IM2uSiY!L z$#j+&?^TUovg3+!_Dw^ixl^+oGekp?*y|60`lVo|-~QV!EcCcfHrN!cEj%$sw*`4Y;#Fz>(xKJyNas?)`;zlKp=3k3zles zm^U6`-Y+VbHUc`hQ^o9G;y66!0UUd&aoNgeT`eJovPB9r-yZGuE&9Fy^kB13F&1(4 z`Q5aYqOM+z2_aqJ1~XycXk~acnFGJqKD)b8jdgZT?7!}S3|1$xx;I=n$!KQIrJXFC z1cWL(2`(53VPY-b?0$RJn+ITFN@m_{$8Cfw9yaIV4(z7o27OiR=rH67&77b?<@_c4 zjeC3H{(EGbkU9C0KpCS^65GVZ51@RKjvA6Pv8?{e7u4nB2!<<((mK+EbbQKVOV9bY z7r%<@U#4>iqCn5*MC!=YsXt1lms?Qz9^pkN*Y9R4pL9m>F-h1CEgrc<9%Md$PqotG zY>$){)hLBULPd`hE5zjYaTTz~Y4=B-QbLAOs?|p~xniIYMiQM(05_+jUrE`Gb7t#b ztc#yqWnaXi(bpD$!wVpF#W&`7Iy>~9gHuJ`KAe|%{7dY`8-ux1SE!&$$pZ+nZrk0l zHg8w+YMlHDqd~nSttF#D@TkFBrZSphlBJgCVkt3@ zaUj_&R+nx+2E8Aw>OKz8xV+m%YSGTqZj8NWa*^=XA@X!G`&hSkwQW8f-BQlSqFDj3 zv?9<;IP0^`p#lWJ|2`zs60vvcyQKtZSI+)q7NCf-3Gy-+sF@8Mc2Ydvo9 z&uMgt5Z&9&EHd{C4pjecFC!8Ap}DyN)qK-7yQ|3wb~n!!h4tP2zK6?GKiEa%KR!fQ z6Y$8N5d;^HDgzFD^wjIt{c>8-$8>|&*wkI-defn4zSJgAdkE}woPqS1qvry>zQ;O5 z{~|%0^!4U$saa*T*JHmd+G>=WcQ3$J{fEbj_&Gc%I$?DPDpRn~;Lg6UeYzbM>6M| z=Zn)Vc+H`C+Sjcvs(}X94`kHEo6{B9v#sR|`P|ojz*$-AjRszxUTQ(D8@<#sw)QvR z!o>#ODmI}ejUpC!{(cXh9S_WW69HaMhOujo(o9dLoo#-z)P)kZzR!11#^OwXP)bHu zN<&rk=Q&rb?x(|)tUkH2ktN+&h>Z4p8p$WM$nMYDc@7ymNvhdJ*37-tr;dHJHKl-27nj43B>uFpQl55@07Yww|<2 zLDP$=U#;t+j(mw_&C>xB=loe#bjQ_+44K_@$Jz^j%^;PrlZg28>8DkzPx7)StQ$0< zSgcR!lFM;E2x+44WhV3s^F&M@Awf+?sz*BAb{N-agv1D(?ER}Vuj0ZSB^e$5U?vGQ zd*i}ihKBD93x#?bDOx1Z>mTL@7WUwP-k@b=%w4GCv|!F3TR|f}B|0QK6;TsIk zGg^Z5>PbA22E?ohN#qlq)ITud|Nk46$+<%4lqlvDNZiEl?;co!nez-VTP#mp46dVIk^{0CLZNXJDwVpLU-rNe8_gdE zpj~T}BsW0)(n}3ngW7pDHQ$_g9TF20HN(%c{cQIKeo)`eD{H3Qt#(eY%?HZJ_}k!# zOpk~74O@GBcT2vz2E5%McUq$nRLh7T=O^=dBDO`|%7C$kP)jI3k^=jzg|X7ZAmIMi zRJ{30TR6TooYt(q{C3w5+N z?;mp4MSIWHEtQBb5&ZeYP0eiNQ}2y}>aCf^gVh9%!$~rzqW}I-<}I*4&j7$EG2um+ zB(7E|4Dh<^dpV}yI&biSra~$sB9Y_9)7t|rhaMYQWz`(@T>@UAp%UE%zF+7+ zTcZ6w7Q72D0%18c6`YM}VfsV<2NUV^X3D;;cAsI>Ua>#r(UyFm!l=<`px=+<_qfg_9d0e1GNgo9xzOhimN*o|jO*?fxF^ELrq zU@w7$PKomVZD6fnIq%ALfCVmW2ne0ibQr{0)Y1LZLr^w#g(FUJbFMG80N6vGqc)g} zf=KK6Z6P^QVVhRRGgdkt5v7g$ow&rVOsLhUz5>p!;r?g)WQ!}nC{1kJlH0)lBM25V z?Av14U^?&NC^T*sQhU6=)UyT@S`c+42S4?L$Iv_DFx_$N(RXYIPpq6x(CIqi`}0(1 zjX}I7g!?SwN3V~bO@sYBh_0jBzOb`29jhocWXNHIcB@NsvtYN-c0g^Cfrs=dwSdQa z1A5}s;kOBgQ?&kZU_~K1Zx<{eO+X_+kJK*!OW$oRe%1crkM|wo{MU?~B|8XZl^T{I_GKo6+jG>XQnA;ZizTG~>uZl@llO&-?L}?s69LIK+g*yoN5zWv$C`M1^`-?h_ zQDmB|hqH3!M<3h<W3)CogOD@PF$uYQwA|3?|zU;11(es4M!Q3U{w0l|(I+~N3lrH$jc*=v%E z3KqQ1r|52AfmfTBnL*!@UzYB5Ab``tn|R3wZ04_Q4Qg$xVwo*Hn;Dc+Z#>Iyrz@~Q zSvwB|5Sjec4A%Nw=gLk_p9EBKKKt9suu=qU+twdDUjn7}5(*%kO#q?&HTDn9(`Lne z*p%_E`Vi6{Ka)s!lLJZpK=#;`OP);^VWT3$XFM0fmKe5mKp_M4yjz3?M+_M;Wds;4elQ!Y%7yJ-rjy^3OqX? z7O=8676sOd1Gmo%ZC{U5-yp2%M??+hBaVGQ!D|9QmWW$ShMcmePVq#y<$J9CSO-m% z>RY63Y=+Fb&jH7wJItEz3gW&iFXaK8v_;_oVKdOZ`H4Y4h0@Au7^KLNYnNwRzg2&8 zA@mqavq%I)2xlY6^Oe5w!sVW*1bW4CC_1xV%{^N6K#O--V@)DfnVFcpSv5X#l@Z3B zGFjI?B-KC`w8W4P85Inh|Kx(9JD~9dS-4fZg%r5Z{nW9rh0t=acqJDiicYNR77Rco zZ4ZMK*a90t?!EjC9OVXi39nlJ#2^x8i`DW22eM|2(o7L!=~dM_`i}Qzr5Vp;K)$;k zpGn!qLJEnMHneUnF8X~ilWbK|MonGw4$=Wa62b0w%3Bjszffhgo~kbq6tZjs+^$~D zU2*Pplp-wF91N-Om9>>~G}2s>1PkLl0F`Fj4uOW)tOboZ0+@SA9;I*J3w@y`I+-2L zE{6WlSl%N=Ez3P4nx7UX3@hX~{I0p|O$j~x)sY|u?PeKbB$3`Dw4A9NAMc{2F>2M) z?-R=8iy1`3^gv|lI&<^4ao%ohjI|0&8wd}>9!!613A_kOrfA9>37HjwMYUjQ z!{DK5B~5UY`XX*FGq#irO|Pa@B^QrVRS7)~eKbt(<_F9zd*ZxVC0kH**~%pAqJIp+7l z=U5D#QKdsQ9l9-+!=+?ebz1A7X9s({f;CMcQhfdV2IX&= zlm;J_IIYr8c9@{Au%2sccjY279ZI#9p7rA^7B!}q_>gYVf-Uq#2*=4T%}T9mZZN=2 zNi*dyLG5t;!BcuRWmnRp>;dv@L>qyvQo(aA1}{WtmYUZN>a;chE%W>u*2@8|surRg zv!ifZU(q@TiGH@z=yH*Vy>DLhMZzE42h`p*jCvwjH0chbA!jj_|2kyh4tskDf?TJS z%Gi@S(s3R^GZejU{{hlbXo&1qc!2pvwoJv!f2KXU)X2udeV5@7I7H_{mD0lyu+d~X zL*_~E5o_XW?*Z?&KK0umIm@zHBE^j5zD3{F>Is`VQxmAnKqjl9eK+mYj4IoHAHLRo zxuBOyg^J;L7U7bHCBL4|6KmU2Zl;Z5=ZYDLHg3gWIV1n63=h}erD)e zCJa-@egyAZ!e;c^t_dEGM+dJK=neT+4#5{B(y_50v8cz?A#uRV;N!ISSC~Rl-KS%C zsYZcWnE!?Pl3|I@AN&r#daLe!RgAR}iNytg*0@!&SBbV(4S3%F8_@Cp jW3c^y^mWCY8+fv8)O3y5F3}Al@J~xkPqjq(LD2sK?_3r2 literal 0 HcmV?d00001 diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/federation_sequence_diagram.png b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/resources/images/federation_sequence_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..32812e06520faefd4ee6bfff61331d7d57647bdf GIT binary patch literal 47910 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 literal 0 HcmV?d00001