From ca66627f32d24397e24b4f9d597c2ca3724d35d2 Mon Sep 17 00:00:00 2001
From: Casper3667 <8396443+Casper3667@users.noreply.github.com>
Date: Mon, 3 Nov 2025 09:09:08 +0100
Subject: [PATCH] Add crate shelves (#21493)
Ports https://github.com/shiptest-ss13/Shiptest/pull/2374
The warehous has been redesigned to incorporate new shelves that can
each carry up to 3 crates. The warehouse now spawns with the crates
already on the shelves and the related code has been updated to account
for this and still spawn things inside of them.
The back room in the warehouse also lost its camera, to give a chance
for antags and other shenanigans to occur back there.
---
aurorastation.dme | 1 +
code/game/objects/items/stacks/rods.dm | 3 +-
.../structures/crates_lockers/closets.dm | 10 +-
.../structures/crates_lockers/crates.dm | 23 +-
.../structures/crates_lockers/crateshelf.dm | 164 ++++++
code/modules/cargo/randomstock.dm | 5 +
html/changelogs/TheGreatestOfShelves.yml | 7 +
icons/obj/structure/crate_shelf.dmi | Bin 0 -> 113069 bytes
maps/sccv_horizon/sccv_horizon.dmm | 472 ++++++++++--------
9 files changed, 459 insertions(+), 226 deletions(-)
create mode 100644 code/game/objects/structures/crates_lockers/crateshelf.dm
create mode 100644 html/changelogs/TheGreatestOfShelves.yml
create mode 100644 icons/obj/structure/crate_shelf.dmi
diff --git a/aurorastation.dme b/aurorastation.dme
index 65f04fe86fa..f36a13e5db0 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -1485,6 +1485,7 @@
#include "code\game\objects\structures\carts\parcelcart.dm"
#include "code\game\objects\structures\crates_lockers\closets.dm"
#include "code\game\objects\structures\crates_lockers\crates.dm"
+#include "code\game\objects\structures\crates_lockers\crateshelf.dm"
#include "code\game\objects\structures\crates_lockers\largecrate.dm"
#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm"
#include "code\game\objects\structures\crates_lockers\closets\fitness.dm"
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index f73df6c6fe4..91888abf864 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -3,7 +3,8 @@ GLOBAL_LIST_INIT_TYPED(rod_recipes, /datum/stack_recipe, list(
new /datum/stack_recipe("floor-mounted catwalk", /obj/structure/lattice/catwalk/indoor, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("grate, dark", /obj/structure/lattice/catwalk/indoor/grate, 1, time = 10, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("grate, light", /obj/structure/lattice/catwalk/indoor/grate/light, 1, time = 10, one_per_turf = TRUE, on_floor = TRUE),
- new /datum/stack_recipe("table frame", /obj/structure/table, 2, time = 10, one_per_turf = 1, on_floor = 1),
+ new /datum/stack_recipe("table frame", /obj/structure/table, 2, time = 10, one_per_turf = TRUE, on_floor = TRUE),
+ new /datum/stack_recipe("crate shelf", /obj/structure/crate_shelf, req_amount = 10, time = 10, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("mine track", /obj/structure/track, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("cane", /obj/item/cane, 1, time = 6),
new /datum/stack_recipe("crowbar", /obj/item/crowbar, 1, time = 6),
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 87ffbc1e0cb..1ce17b4204f 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -168,8 +168,10 @@
/obj/structure/closet/proc/can_open()
if(welded || locked)
- return 0
- return 1
+ return FALSE
+ if(istype(loc, /obj/structure/crate_shelf))
+ return FALSE
+ return TRUE
/obj/structure/closet/proc/can_close()
for(var/obj/structure/closet/closet in get_turf(src))
@@ -743,6 +745,10 @@
return 0
/obj/structure/closet/proc/mob_breakout(var/mob/living/escapee)
+ if(istype(loc, /obj/structure/crate_shelf))
+ var/obj/structure/crate_shelf/shelf = loc
+ shelf.relay_container_resist_act(escapee, src)
+ return
//Improved by nanako
//Now it actually works, also locker breakout time stacks with locking and welding
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 1fd2eb1cb98..d15e85f692e 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -134,6 +134,9 @@
if(!opened && tablestatus == UNDER_TABLE)
to_chat(user, SPAN_WARNING("You can't open \the [src] while the lid is obstructed!"))
return FALSE
+ if(istype(loc, /obj/structure/crate_shelf))
+ to_chat(user, SPAN_WARNING("You can't open \the [src] while it is on a shelf!"))
+ return FALSE
else
return ..()
@@ -155,12 +158,30 @@
//For putting on tables
/obj/structure/closet/crate/mouse_drop_dragged(atom/over, mob/user, src_location, over_location, params)
- if (istype(over, /obj/structure/table))
+ if (istype(over, /obj/structure/table) && !istype(loc, /obj/structure/crate_shelf))
put_on_table(over, user)
return TRUE
+ else if(istype(over, /obj/structure/crate_shelf) && !istype(loc, /obj/structure/crate_shelf))
+ put_on_shelf(over, user)
+ return TRUE
+ if(istype(loc, /obj/structure/crate_shelf) && isturf(over) && !is_blocked_turf(over))
+ take_off_shelf(loc, user, over)
+ return TRUE
else
return ..()
+/obj/structure/closet/crate/proc/put_on_shelf(var/obj/structure/crate_shelf/shelf, var/mob/user)
+ shelf.load(src, user)
+
+/obj/structure/closet/crate/proc/take_off_shelf(var/obj/structure/crate_shelf/shelf, var/mob/user, turf/unload_turf)
+ shelf.unload(src, user, unload_turf)
+
+/obj/structure/closet/crate/Adjacent(atom/neighbor, atom/target, atom/movable/mover)
+ . = ..()
+ if(istype(loc, /obj/structure/crate_shelf))
+ var/obj/structure/crate_shelf/S = loc
+ return S.Adjacent(neighbor, target, mover)
+
/obj/structure/closet/crate/proc/put_on_table(var/obj/structure/table/table, var/mob/user)
if (!table || !user || (tablestatus == UNDER_TABLE))
return
diff --git a/code/game/objects/structures/crates_lockers/crateshelf.dm b/code/game/objects/structures/crates_lockers/crateshelf.dm
new file mode 100644
index 00000000000..66161acf51b
--- /dev/null
+++ b/code/game/objects/structures/crates_lockers/crateshelf.dm
@@ -0,0 +1,164 @@
+/obj/structure/crate_shelf
+ name = "crate shelf"
+ desc = "It's a shelf! For storing crates!"
+ icon = 'icons/obj/structure/crate_shelf.dmi'
+ icon_state = "shelf_base"
+ var/shelf_stack = "shelf_stack"
+ density = TRUE
+ anchored = TRUE
+ layer = BELOW_OBJ_LAYER
+
+ var/capacity = 3 // Default capacity of the shelf
+ var/use_delay = 1 SECONDS // Default interaction delay of the shelf
+ var/list/shelf_contents
+ var/vertical_offset = 10 // Vertical pixel offset of shelving-related things. Set to 10 by default due to this leaving more of the crate on-screen to be clicked.
+
+ var/manipulating = FALSE
+
+ var/obj/item/stack/dismantle_mat = /obj/item/stack/rods
+ build_amt = 10
+
+// For testing only.
+/obj/structure/crate_shelf/tall
+ capacity = 12
+
+/obj/structure/crate_shelf/mechanics_hints()
+ . = list()
+ . += ..()
+ . += "Drag a crate on to the shelf, to put it on it."
+ . += "Drag a crate from the shelf to the ground to remove it."
+
+/obj/structure/crate_shelf/Initialize(mapload)
+ . = ..()
+ LAZYSETLEN(shelf_contents, capacity)
+ update_icon()
+ return mapload ? INITIALIZE_HINT_LATELOAD : INITIALIZE_HINT_NORMAL
+
+/obj/structure/crate_shelf/LateInitialize()
+ . = ..()
+ var/next_free
+ for(var/obj/I in loc)
+ if (!istype(I, /obj/structure/closet/crate))
+ continue
+ next_free = LAZYFIND(shelf_contents, null)
+ if(!next_free)
+ continue
+ put_in(I, next_free)
+
+
+/obj/structure/crate_shelf/update_icon()
+ ClearOverlays()
+ var/stack_layer // This is used to generate the sprite layering of the shelf pieces.
+ var/stack_offset // This is used to generate the vertical offset of the shelf pieces.
+ for(var/i in 1 to (capacity - 1))
+ stack_layer = BELOW_OBJ_LAYER + (0.02 * i) - 0.01 // Make each shelf piece render above the last, but below the crate that should be on it.
+ stack_offset = vertical_offset * i // Make each shelf piece physically above the last.
+ var/image/I = image(icon, icon_state = shelf_stack, layer = stack_layer, pixel_y = stack_offset)
+ AddOverlays(I)
+
+/obj/structure/crate_shelf/Destroy()
+ LAZYCLEARLIST(shelf_contents)
+ return ..()
+
+/obj/structure/crate_shelf/attackby(obj/item/attacking_item, mob/user, params)
+ . = ..()
+ if(attacking_item.iswrench())
+ dismantle(attacking_item, user)
+
+/obj/structure/crate_shelf/dismantle(obj/item/W, mob/user)
+ // if(!LAZYLEN(shelf_contents))
+ var/empty = TRUE
+ for(var/c in shelf_contents)
+ if(c != null)
+ empty = FALSE
+ if(!empty)
+ to_chat(user, SPAN_NOTICE("Remove any crates from \the [src] before dismantling it."))
+ return
+ if(manipulating)
+ return
+ manipulating = TRUE
+ user.visible_message("[user] begins dismantling \the [src].",
+ SPAN_NOTICE("You begin dismantling \the [src]."))
+ if(!W.use_tool(src, user, 2 SECONDS, volume = 50))
+ manipulating = FALSE
+ return
+ user.visible_message("\The [user] dismantles \the [src].",
+ SPAN_NOTICE("You dismantle \the [src]."))
+ new dismantle_mat(src.loc, 10)
+ qdel(src)
+
+/obj/structure/crate_shelf/proc/relay_container_resist_act(mob/living/user, obj/structure/closet/crate)
+ to_chat(user, SPAN_NOTICE("You begin attempting to knock [crate] out of [src]."))
+ visible_message(SPAN_DANGER("\The [crate] begins to shake violently!"), SPAN_DANGER("You hear the sound of metal thrashing around nearby."), intent_message = THUNK_SOUND)
+ crate.shake_animation()
+
+ if(do_after(user, 20 SECONDS, target = crate))
+ if(!user || user.stat != CONSCIOUS || user.loc != crate || crate.loc != src)
+ return // If the user is in a strange condition, return early.
+ crate.shake_animation()
+ visible_message(SPAN_WARNING("\The [crate] falls off the [src]!"), SPAN_NOTICE("You hear a thud."), intent_message = THUNK_SOUND)
+ crate.forceMove(loc) // Drop the crate onto the shelf,
+ step_rand(crate, 1) // Then try to push it somewhere.
+ crate.layer = initial(crate.layer) // Reset the crate back to having the default layer, otherwise we might get strange interactions.
+ crate.pixel_y = initial(crate.pixel_y) // Reset the crate back to having no offset, otherwise it will be floating.
+ shelf_contents[shelf_contents.Find(crate)] = null // Remove the reference to the crate from the list.
+ handle_visuals()
+
+
+/obj/structure/crate_shelf/proc/handle_visuals()
+ vis_contents = contents // It really do be that shrimple.
+ return
+
+/obj/structure/crate_shelf/proc/load(obj/structure/closet/crate/crate, mob/user)
+ // Check if the shelf has an empty spot, notify the player if not.
+ var/next_free = LAZYFIND(shelf_contents, null)
+ if(!next_free)
+ to_chat(user, SPAN_NOTICE("The shelf is full."))
+ balloon_alert(user, "shelf full!")
+ return FALSE
+ visible_message("\The [user] starts to put \the [crate] on \the [src].")
+ if(do_after(user, use_delay, target = crate))
+ if(shelf_contents[next_free] != null)
+ // Something has been added to the shelf while we were waiting, abort!
+ visible_message("\The [user] stops putting \the [crate] on \the [src].")
+ to_chat(user, SPAN_NOTICE("Something else was added to the shelf first."))
+ return FALSE
+ if(crate.opened) // If the crate is open, try to close it.
+ if(!crate.close())
+ visible_message("\The [user] stops putting \the [crate] on \the [src].")
+ to_chat(user, SPAN_NOTICE("The crate couldn't be closed."))
+ return FALSE // If we fail to close it, don't load it into the shelf.
+ put_in(crate, next_free)
+ visible_message("\The [user] puts \the [crate] on \the [src].")
+ return TRUE
+ visible_message("\The [user] stops putting \the [crate] on \the [src].")
+ return FALSE // If the do_after() is interrupted, return FALSE!
+
+/obj/structure/crate_shelf/proc/put_in(obj/structure/closet/crate/crate, var/next_free)
+ LAZYSET(shelf_contents, next_free, crate)
+ crate.forceMove(src) // Insert the crate into the shelf.
+ crate.pixel_y = vertical_offset * (next_free - 1) // Adjust the vertical offset of the crate to look like it's on the shelf.
+ crate.layer = BELOW_OBJ_LAYER + 0.02 * (next_free - 1) // Adjust the layer of the crate to look like it's in the shelf.
+ handle_visuals()
+
+/obj/structure/crate_shelf/proc/unload(obj/structure/closet/crate/crate, mob/user, turf/unload_turf)
+ if(!unload_turf)
+ unload_turf = get_turf(user) // If a turf somehow isn't passed into the proc, put it at the user's feet.
+ if(!unload_turf.Enter(crate)) // If moving the crate from the shelf to the desired turf would bump, don't do it! Thanks Kapu1178 for the help here. - Generic DM
+ to_chat(user, SPAN_NOTICE("There is no room for the crate."))
+ return FALSE
+ visible_message("\The [user] starts unloading \the [crate] from \the [src].")
+ if(do_after(user, use_delay, target = crate))
+ if(!LAZYFIND(shelf_contents, crate))
+ visible_message("\The [user] stops unloading \the [crate] from \the [src].")
+ to_chat(user, SPAN_NOTICE("The crate can't be moved."))
+ return FALSE // If something has happened to the crate while we were waiting, abort!
+ crate.layer = initial(crate.layer) // Reset the crate back to having the default layer, otherwise we might get strange interactions.
+ crate.pixel_y = initial(crate.pixel_y) // Reset the crate back to having no offset, otherwise it will be floating.
+ crate.forceMove(unload_turf)
+ shelf_contents[shelf_contents.Find(crate)] = null // We do this instead of removing it from the list to preserve the order of the shelf.
+ handle_visuals()
+ visible_message("\The [user] unloads \the [crate] from \the [src].")
+ return TRUE
+ visible_message("\The [user] stops unloading \the [crate] from \the [src].")
+ return FALSE // If the do_after() is interrupted, return FALSE!
diff --git a/code/modules/cargo/randomstock.dm b/code/modules/cargo/randomstock.dm
index bba0269b5b4..70e094a9e9b 100644
--- a/code/modules/cargo/randomstock.dm
+++ b/code/modules/cargo/randomstock.dm
@@ -120,6 +120,11 @@ GLOBAL_LIST_EMPTY(random_stock_large)
var/obj/structure/table/B = A
if(!B.no_cargo)
tables |= B
+ else if(istype(A, /obj/structure/crate_shelf))
+ var/obj/structure/crate_shelf/shelf = A
+ for(var/obj/I in shelf.shelf_contents)
+ if (istype(I, /obj/structure/closet/crate))
+ containers |= I
/datum/cargospawner/proc/start()
if (!SSatlas.current_map.warehouse_basearea || !length(warehouseturfs))
diff --git a/html/changelogs/TheGreatestOfShelves.yml b/html/changelogs/TheGreatestOfShelves.yml
new file mode 100644
index 00000000000..da850e2c64d
--- /dev/null
+++ b/html/changelogs/TheGreatestOfShelves.yml
@@ -0,0 +1,7 @@
+author: TheGreyWolf
+
+delete-after: True
+
+changes:
+ - rscadd: "Added crate shelves."
+ - rscadd: "Remapped the warehouse to fit the crate shelves."
diff --git a/icons/obj/structure/crate_shelf.dmi b/icons/obj/structure/crate_shelf.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..ff211d21d5c206ddd61c8261bb2e6deff9efcd22
GIT binary patch
literal 113069
zcmXt?C6=Dmz(97<**jBVri)B+J;BFsN)H
zWF7m?*!|A?^Si!(xLjOwX3jbDx?lJ6emtKiTvuE5>J_#t003N7dxFph0LZ`peyAzI
z|M(9zCISFCi?88RcZ8jr?Hk8e?vAc50N|aGnXKVDAx0ZCa8M>TUMw+h;vQxm%Jhg%
z*z=D?j_^41GmV@1(tSlV!WmoC4%i+Gb0t7tV9P;PY3o%Ny1-W$rgf3~NW%TPHG-^g(o
z!_@>fd4C&SzE!(AjhZ6Ww*~hUl(=P|o(z*5y}be#JO@YL7Dm=&q|)X0(ypdq`67pk
zIJ!zyUq%v@IsFg#UtAZseV3f)D3~nn;jHa+aF)}=q?Nr62XgS^%qEOEL{PM)lQKSW
zMNC4Q>ElsGgp=)f1^!(E^-`?PvYGx|%xKi>+rLq;%oC&9Ih?kws+(hTnAB;VR6n%_)bc6k+mjQBYGj!SW8
zN?;=Q8^q(+h&B7uEy${}LWlg1+ux~bKL3lcI#3YdT>
zgnb`(EX8D0*Hf$hjQF_V)4sc6<`DM*OZ_P8DNHvrGxyW=5b;y3mlZF`C9_&C>2?Tk
z?byG1lB>@f=tx7JrMjA_u-Yt;ryOU$0Mp{}&*1$DxoGyJP`_glLAj&892CdFBNlM4
zOV3vJg>HR?$eN)r$GhJU6Tx?P`Q;D38)q8Mi{wIx)ayCscsgN$FEV!bDwm$R6((TI
zMLu}kT0iSSS>wBXG%cs-x@Xq!onPff@|L|JuMPqLETZ0Mb_hIfv#81>*g#NtRk
zf9)rI^^ii$-SJPt6A-=C@QF9@juj=fc}IJCZnZ}@9oV$nf)7cJ@)dBEuXEbsPN%rFjxB
z@E-F%b=Z^~{t!lK%5*8jrZBh#=$9c7ByYE^^z@`P#`$C@29DE18%Pv@GCjqJDWGJM
z#6)5AiANZcqaU6>xJ(A@JW$QoZ<+L(zU`{-0;B|J$0xLjRTEz9HdrJ1p$&owsq#=J
z-Ag$L3ix|B?K_Fyf^tBE-qGl&Xj(3RGhul9GaBtQH&B8pLh}IsGBogBH-VLX*?69X
zwy;f4SEVWAZu!qMV#;{S+rW?A_g#16-LxS}?cB7F>`*Yi{C^_L)qVG0+
z_K^14Ff6%p9ZC*#rqC-<0EFjwl3KpL79@v%r&37cQjinw{ft;krq|SN=!W8}-6}ez
zlQV^`*CB`mJgHNLle`?`1lgH8*(|wtGwAEDfrobzpXTu=tgqj=QT9%|Gh^#GVD;5Z
zD=TB@%)G2Lu>>bY5%gdnTD&vziOhK^Q(X61j&$kImf$ce()q>rM;8Kv^
zhR+FU@`IHC>BD374_|%pH+@AvV?q&z!V!0?M^ICKst8_aA_i^)lSSzhGcXu?l!dwZ
z&&kQj`$88By+k3P&?yuB0gZ~xeej%ivk(rHQ#gd7MIcL20Hkf^)zZqoFM9iN;J@b2
zYbV`js)2jiN8Fr8bocv;r#IVRk*3(tnO9FbVb7$JQeWtSXRd)TLYg4M(HY_elA-d@
za0~{W(4Sb!ukMo<@uycb8xu9JibSfzuOK}VQ>g$ajPJ)(Mx?)TJ1HglDp~qd=gC*n
zUrb+q`MNgg*L=aX>R)Vco$H;DFQFEnCPquP*}-s2Uu9T^Q-Tp)2=JQ
z-E=h~_d73j)0AvUnbmWEzxOwVa*jz-2Y{uwF-F)TEw~=Ch5o9;JjbvVIx&QPPRf^<
zifwN^JCKXyM4WR{X#t0a+jHIE!U0-M647ai)QuH1{V&LCQ7-zun
z_FPx&+z~N5aM;7@d?$IkzUic1`t@u(UEjrS_QivMedECElP)A=L$=>Wt+54ZxGdm0
zox&m4P49p2IMXhyPCKmr1#_NqnPNwZ51TGEUqm=GKqe`a9Mkl1rumh7YZ(#%jB5_h
zjk3*fyCq=~RDugd;+_}$hJC7ytF!doJp21MgO>8FyL{S<99%8#K;hkV0LXBwA~a-E
zTR`Qn=q5g)0=RPVVzi~E&SeWe{RBSV_f%kc437tmj<~$M+(5bY`^iBR7Wd%We2KV}
zphk@~7MpA*GeC$#Q()4d+dp9&CeFU_crgQLsLd^SKCWPC-*?_NI){{6Hb4g9d^nrRe!0N3$5U=BVieOWbG7^Wc`B
ztZfU=uWtEgy)*b~nNcy~O?>PB)*%L+g#HQrb&^t~j-UV#e~l6i5bnxIp(<7~Q!*uv
zt~BDMGVBczD_6Yh_L@N&s(gf@N*vP)T!J%1Jo$pTw`pgDbcTv6=01t1jU
z{??bJISGd{xDJ8F^RO4r`J
z&67BtEn#0<_x%;06;l0u7o~&(R&wgO?+gn*P^jLEC@lJk1tOhbNM5*rUxWUVL+-Cn
zo%kW#IfIyk1eM-l^qEv-Ij#w4F>;390(6_ERjOqCdXE}Tca}d=Z&^BXlYdHz%su4=
z$o{Rv>qccrLE;7N4%~GX2%M0{w-H+OchjVPKT#)IcKB~BcJ+Z`)1jcoVd5LQFf}nU
zWP4`{pk&Tu7m~^iT!$kV$B_H{Nu69cKb0=okCa+SGkG~&HV-p)
z;3=1pZRMTFJGAM=Iv0MGl6=RKpPEdnlhPzf1%pPsRk`i~FO75{Xo^G0;NLK8m=$#d`5y
z-rZP#R)H}x#3_(jC_ZYZfd_=9K15>0c1ti*+;A`8PhJEi)C9N%y#&AFjHOiOa!hlA
zg&sGPZ+iFLlXhGDVuM0E{Lp;Wzb=}9~VylnH(
zcQMs|>uccgSJxC*yrpX1uOM;Cbx-yY(+@V%m+CFcsGvR;=Yc0Rfsq6L8*Z-DIdjsX
zZr6zYnQg7DWUXR|;^BuJUGz|CVu7@rJQdaWCuJuO+agKru&poeg
zgG}wsX|f>9ln%nxtG_HdEbVsg6(CB;t95x$bj+-r2UsGV?9~pO^{L}6iz$_V^5mLq
zp1lN^!yV$#i|9hfC~V{t+lFlhiN3pTy|Aj;jD{{5pFe&_j!+*ZL~O*8lSz`Bok{5Z
zAKGP5zmASb(O5~QS$RM=>HK!@o9ZKGl_T9O7823twYMa(<#S)(K@%jX#rjYJ{zeWe
zOcsP*)9ZK_cX}=bKa{Z7Hgajvhv?Sh`)puiVzjoK{@hxFGC@Y2E>n*X?i9^s%YkcjVcqjL|Gv3u`F1-*
z9{$YGV|wYlw;rEN7qz)PK<;gCQddK+lysfMr*>coJQ-XQ-`ppLFRkard4CqNaFYxz
zV}#;QcZ&Wcp1Qm}rwWFkf9(05tvneUG9jMcga#@hH}|GEFDL@0CSYM7RtrM
z8KZ1X1UL+avjsIsgK*z$^xslU@6<_wcqf}%vFcX#(ohi#7X1-J34A1W=<6kL!n)1Q
zbsW?Da|XxGc!58E{v0QE6T#(tJ2%#Qb6U#Rr3VkN0oK@X4aBftd|Jp&`A9P+;IPDhPp4oY(tK
z-LD(|v+b8T2kh1?S)cY~jY^t}x&E*~12{X>&yr+8!
zq7LstJO{93)%@@ignKD}1T*l##``x+!JanTXjns;-u(8%nz0u=Z8KX*E2y%EkuxRMfBzOQR
zjBwCGyvRz9MDPnHF4ZIUD#aJ$#oaq$ZXK|VLZ^4HUz{dxbkVT%Qz8&{CjInr9{tk-
zxtko_pGkhA8p_t@O^Ob8-Io9Ii)*zfkBoo9neO{Cg;?>04x=eQ5)bCmFq?put
z!rJEdx$I}}jmxr#Gh&~`XrsmXcBby*lTF~`#StdJRV8+~tU=O36uOWUkWyeW<n1XqE)QreM0Td-JB^&|I%FH}6y@Uc<6-F)1K_<86VP=^*>gjp+}2_pNV>lUbHRUTy1*Y
zFHEJZ`@(fo@)OVHzmZnqkeuTK(t$lH&A3X)d3~(vkTz(O{@23xZquFIfDGwx9fb2A
zarHH>IF<&J<9fyO;403GPfe#~x3x14@%Me#oojQvfe{5rCdJ^yar(?H%
zaK~CZI$qY1-)Fk{c1t-!`Zd|U?+tLc%swL6Z{2CyxdQ}IalWOuI$JURYOBeR6rdY1
z2YbyiEt!3JiR^xt#qI3d4;0Uqb>{Lo&z9URV;}5LX9b=grN>uV#=4k?85M_&jhP4u
z3(t(%XXAM(KirL5
zEb$CjXE%duAgV|GWKs&2Z8q(~Q(bqbCLgzJ*cLm-utK1D6O&jOBFWTQ!&aI*SF_!I
zgtARis{@whBFo6~cdY7mI)aOMy7MQ~Q&EX7;zxrxDi)WN%MZg~u!gyo99?!Mbxvt0
zT#NOe75BO@Q*5e+W7?D>_6FHXxPwx=+mxSO0l~Dlv)sL2?tz?KneCAp^1FWcBh=uI
zSUX-(;f=RSj#K&v6R~Y*KuBsazA`2PqNTeTi^jc>O~&fk%x|i9WRD
zl_Zr`$-NuEBe-DH%uXWdB0t$O;zN;`Vyj3C)YfI@RHn(gg`e$x@@
z(s@L=ie6f!dog^r1Sf})wO-Uk*rz&5zv1qEWpCfB*$O=iNIpJO=&79NkI1cbcbhtq
z=e~q6R+-l(p2p3H)!KX2c#R%-5})WL6t~&bHBEDt+@0WsyF@44z0x`G?fS0>(p@Sp
zu~0XZ2*iC>y1z{w4t5gD*ud5^Tnt2_ka7n
zI3D*7zaEsH`7+-mX`o1b%w?0Kc+@#G^#rbP=_ga136eIo=rLk)eI4s|1gWNa%$^d!aU&ZqrZg@4F)VX0sSHEvIo|HE>#z@C(
zpOcz6r;kT!=)1(@c~a}rZ@VnAD|Wq(3JJNC@xX@x*lMK_%^6*t$@1H1>FlHwG5;RK
zbJPNdFpeINkF$AtdX_gdM1c+RbhE-jNOyIkaVQkuM@QrLI-fqK*Q%za2;u6iAR9
z52B>t66&p7#+MY%Y6HcXx}o(0&aJ77AjiF5btDB
z@nLG#gMS%G3l%rFDfmdu1sBbw1rpUWMxBP+Vcd!8<}Y5nxalOt&XT!%5+$B0C(FwC8mwUZC`8;aZ
zHZ~4ibp~Hd_iNh=YgHXd_OW%s?sZZ_n>8OI?Bc&DGlk@f|D`Hqipxk1BV@3)8PGJ0
zWpo@LtJq@olx%II=6z&rqr%ZYAm~&d#T+ky9=^z<_6Rki&MQ(ptnPx{PgGYawVHll
zST-sOcCWk-(n3Xo066Gmh%dg!P!jlMGhe1X^Qe^w!jYMbaY%qFW0&MzM%7dK
zH=C!MBgY17)R$_~CMIc;G+a|7N8^~*ci?-*3ZIpZp$NJbre;m+oQCoMPb2rAU{E8*
zJ=G_L7?RC@t8cL+OU_G{=RN&vpjpDef6eD|lz0;L3DQFpKs(@sEY|RJ4Wu}9P-@GI
zgj7&_yiG$<_5M!8nR+}zPy^vhmT-3f6J{d~6UeH1v(Uqvmg)!z67H?MY<)TB4C7nx
zcJ5Gi-+Q88n^Y>PMVytE>O*m3hcP}lHVxQgXb{G&aRG0XqSj^S(@OZUoBJ#Zic&{=
zbHOt!g+c-Icv`3mG_B9%Y>L#_hxmeco^lz^z;2t2;He&|j+*fSoPlt`0uv&E@S4L1
zH6k6OjM|nj%VH6lDxrf)bpCI%JH!RbB?h0JLk2;?VyO?aE
z3hLQudF1MuVFuY6A0OAcjO>?T>iFR(Q9%v1u>Tl|K%wSr-ff+%b`YCU218Oq_p&zy**XG%zw>@#_Evl{J8Am
zm`^FaJ$p{NGnh^R4Fa2+K!JMO^Q@ZO>0|74YdGU=F1Uf6&BHr)?tJ&&hG)1vefm@h
zZ`oC0+x5|IY_CB&=Ig5aoVn{4XMOF+}d%~1u4sVIp?w7
zAKS$&%t4BPEh^bAHPj|&w9Kli6Xw}Zg%QO3kt_Wwgm%bE{o&VyX#axw>*9Lf3Fow&
zL030v*$1<|lPGPA0{QTuMsn%j+H$c#<#y3nrKiqtedI7WW>U9VH*?3YuM3wN3YK7?
z5(CmiV?z%t|6jS3+PfUrSi-;0X2ibd%1KR4%^iDjXo|)3q4GFtl|L0uZ-V#G3~Q8$
zi5Gv|TNxG46W;Ut{+#q*p4=>P)P3srJX(zRVYGTh?bQ_(+BPu#Bs&WFh}Pk*BoVZO
zHey2{V)h211V3f{ZDP`5YpMvx48m^vy2;6v(^K<@6q0NnO|@eRx@DuD5DruUL-SOn
z`!2?pKIaC!#EktT=Get6402aRj}3^!h(s*iLUIUb1lpS;K=a&j;8t_W&$
zDO)=}&)?2Pi%ASH{HoyTj+Lll3YjoSD&>Q>Sc{chrF>L1JmvD-5#@wSvzK~@qnzq3
z*AF-AOi4g9AT4w|{Nbh&p`r|W&4i;@f4GSptzutt`Qbs#$cjZghrkstQolB_F|+Kf
z#$Td_Q)_V%6$WmJur}HFURK*b5>+v9CWfT^NJukm4$pEhrHawN^~^qMto6sGzf~jN
z&_pikS714lfm~d@|1!i7QZB6za}RS*exN|D+0tXW@MODCUEJezktV*wdw
z_9^ek=&0fuij*xHc+{KyAmH?nDF>W%UY(!%0L>r~uc)n+!7T;F*`2009i<bf-XrxWfY&*jC%MextWBC_&t-$JJ^&ZfiA)-PXP{jb2K?%#iXdieUk_fXOM
z*BU}&-6+$yy!0#Y&)8V4fU@)5MdPMpB!~1XVA6#JtXKoFGNWQ}q*O|>`%~jOZ73t{
zf4t|O@%qgjQ!F!OaEm1Q>G{cKcIo=BJk^Sd3UP~pJk{97OU;TdEBke{&Ayw(z&dg`
z5AG|ewaeXR^SgRvT#U9dB;?4FDI^PRf*`XV3bsWR%&ObSU4IMBR|+IMT@sa
z76(Xcrr}I+iV=$X$>TXK=>0=tWm(qP^z43{mTK$AUtBoa99pfjoi0{*FBG7
z_1zSpeZ-nP{sGig{oQ&{dGn+VT|Fkhl*Q3$^Gqln3;uWm<#+xhxbFBEP#CoPmZCLs}#iw0Y6NpUV&
z$i0z|5xN{<{h=dvj*sn@UvPAl8Wl5ReoFSu#yMxn>M>d9su&}xq+@z`)Sl1(W{1;q
zi)eJ|F|lr*kwH}u)mDfpTt&r^E=O0tpNTb}9qOlCNQ$w!7=5W+H1=WGEex3krRIWotn|INU)-J*y1~U!kvn=>FGC
zQPF$TXWN_^{zvInM@yeirgsH{ThchwIblFCXj=84PYt
ztRHB-MnO~GSGirIy2jBAD%5zMmN13ATas*75qcjCzG_FOGniCQtQU32zxL88IV7jL
zmScLO<0LY-87%YS`P#U^nu*L#2eAE~o}L=AraWzc-`ywE{M+A$Vyv0;WUreP0e26O
zMCvg;wX#x$g-XBr*IcdK^&zl+GJqy%n$~}gefsDA{=QDYy0g{Eyaotqx|1z^mp`e-
z-aMP0B0SCPmojsXc5B?g|6R{$;O>n$$#hF}!rd)2x?_^hkc<(tGcl6Q+#n1WuSO4k
z9gzI?ZTu=SqD|}zS9t)czy#cDa5pI+9k1tun~wtmb#Wu=Od&7fQ;>3v4{y!W-brdn
z_P)9G-fl5f&w!?stj>^W!2&3+sPM7EnF>VYMxjt_GJu7psi%}!zBpfrQSrjjE{mC)
zo7-gxwJaja&CS`-#-{NrhAKQ~syCBxnv4G1qG{YJrWvHi2!)16wyu*bW3H?CL{TSJ
z3e8puC8EFRhfi9I(Uw_EI9v@=>+mb0RJMkMkXn^tMPAx9HD0q^)buKGvAN}cC)be~
zyNRf(3T?y$p}~%pgs2wkeW+@bn`2bmBEv~mE#_G@EyKaLxlW=|oWm16{ro(9e7adw
zT#EOdTz-@nevDWVQv)ZXUwmq8s(LA39i7_5w(9H8jHJ%B%ysMC<9%y;ulqlK
zxA#k$#uG!-;(5e657l`+RrDxT^cW;I+h4m!pgn=-K3PX#t20Tu19i-2C>DS57}vgr
z*h9N*%y{|{ZGxm@=KjDu5nnR3M_saxA2(#S_!1p{uBHbxb?N25cjDy>dJvQ|v5s3@
zH1&tCaX({-BL~1*=Yo0!H@ieB{|Tp#oW_0={l6^0lR>}0??RKob|zDqJVhqv8Piwa
zD+5mYi}MRfOmUc_i%Y4wWu0)@{j|GFbl>kUQMGAIS20L6kSzW10rXuJH6uwX
zdWfmW=v;?j^a#Wq=-GXcoXf9_aFAr%vMdotb;9N#lT`m+WwC5lkMwAWW(Jg-V!csG
ziHZ2j65Gpz_H0x#=h|w(+#D?CsvR)k$>hdAYUUowV;coIdl=w;OKRhg+yu>#PlFYFBL!~P)Z#TS{^PDka>Q4MTQ(HRL7ADEMYt37%8^`C
z?E6$`=q+$tSX&d4&Ae8EbC60m=ruwVgd2Z)T8rjVix+6>=1{${{aF1;lHGkDMxX&1
zy7zdQefltzEHCKTTC91K^WrY3@f9wP2AYcAdm=;73=+n85>@6dl_7Lwby%C}(xn_z
zCcB^O8%Fn~N=H*t4>qlCOa)%(?8Q#{2}S2p8(ST!pUrn0TqQPGSX%aYH6Bbmsl`9;
zgkeWl?UL-UuPGgAxd8qr@k5%=YH_B0Y_@lRowyFcU2rAP0HbBDH_Xg4ILVr`0u^u5n09ACA;C;%Tja%lD#88fgK<_db~#^Q3e8=ow)o2ZzUXvIf#T
z9tPZl78T`^eRPyu!PnM~HR49TIx>68PRars`zOz_`PyF@1Bge&^y$-)8hbA}=Y1@A4v*PxlcU3{Dvj99M_P|KcYo<
z`@7rn3T`wg(zZEB-UeSlAD4sy`!-{ocxWd2l^#g7J?1*AFHDbW}wgi6PWRx_?OI$#o>KP&hJ~#>R6s;Lqe_$HjSRU~`$`iS{Wco&OE1
z@uzL+74PLTUm7HdF#N*9-ri>46S&S!7~bca!dh1
zhI`2mDlV5=)T5G@H#Rx0rc_`?l%
zR?%yu0l-7fr}FdVW6;)EUg+hf-P2ucU*EUd#@F{&_Cr10-0pxjizF?X0oJH!a11LV
zD!LCE9ePdEWs>QA`iMS$5u)kH_$uM_^n3f4ub7n#SC9rF|d&j~GcS5t=k-x=;bx)S#L2oIhoJHs-L!K$js{_I&a>Mb3#(J
z-7*%u4pPWV5^80mHGQbF2T&{fMf3JH87rH`R?|Ck^X20|Sh-G++x?(fnWt>M8)ugJ
z12*FNcFv5ZX8N_N!rKiEf}C+hFuFcdMEPAyxsF7YFwD7VaCJ=HkJ-RDX+(x)bah`7
zQ6eq`fA+q42CszBB(qUnE4hY9(8*RX
zTlcK{rnu%7&m@UX%b=x7u$Rg2{)pdwPM%j)RmBvlyqs|xdQaI}G|c9e>Gg@ul=##R
z824+ATeNv;IHTPLX(fc~uI0`0ktE~N62G$lHw$O&!Y2DZhZHcnt
zVZmAH#_$W!qk7GFfvO6(EW7U^7x}||3jBOfpnor-SlKWB?W#O?vkg?!RANqbf&Xnc
zn;z`)r{#Ndi-Fu)&7{$6|Jy73n}O%pa5Q>MW_r(ZvE<&FT5TA0;p9|lV!lLVB#jzx
z>F<#dBk!Y~VgBwnJ9d}bK740b2Jdk1Z$hcn1T{%Wo>KMc8
zM~LI8NbgOpdjV-X0Xm@jSJD16gr?n%8GGT$+$cmmtlJ_}+zO2~jGI
zUI_??7WxJ?MZPo(zUd6!Fm-Gcb3J>JwWj9Vnzns%q)_n3){iZ}cNj#h8rg8B
z5{>#rOyCe-+SmVWt_9ZXEXftKr}Zo
zap5J@&i4DC$s2!B*c%ZJnNMQx4jMnc74#RNM&f!1GSGE0G!PB)GVuQEUK0r{GyM=r
zAvSa;wCzI!H6{KgW|%GF$j8z=H0yXAw&deVkSS)U!kOVX5|&cV)@0cEjjQGHb}eo{n$DOfqXfqG^C
zmf&j@a;cR!_IQ#4ZSY%Z%~mIzK4|=#*p}EY^4cDvaf^5IG@X~dMd$G>Q4H-PsgBG!
zKExht`>zILHLiBn*p9I(QDc-n@hK{!-t(+(o#gi)IyskmOD1|7(p`V
zwqqJ|qPpbX6bs=+#;y(1C6NIdMeRa2LW4R2B;9?mn;-+v}P@y3cd2_bXb9hi_<;^!1+~NR^(Og#K^Xg^GZ5_)mo`
zSb3^394(-?BZfmO9#q86fC+>4K^?_t(75SsI_*7NvsaA7;qHOCEgvVScJqOe$SlZ@
zwA0@{*!jT?VyExC7ohnGGUWiL7VXaPIhdK5*olftiSBm%IlTbvfcOc&ngsROsCYU%99=&^zCCM13}Y__(m`R?xw_a6KX+2x}aDz&PAJn0ga;az?I{^4;aC3$nvpeTDUrq5U6
zr4$N;-|4>=Y0yELZjKybU-2X_GQ)+}u`?C<>}34WGhn{(rqYC82%4hv)ztbLrH{Yp
zsI!M1CDRpX*n>U+*1e+pYkF~ZKk$#z_`oY&;Lo!V7}yp3Rroms-R~pn*Hf7x8gbX~
z25FHe1|sCUxhWA^23lQ4EBj7lfMc2p4b85Ln{(t!H0#*Z_@YgG^V8zCnV@(Zb)ekm
zOg3LFBGsrj->0+R$DqiN0|4vxibQgv`rGhS?oEG>)4Md%MDc)6i3S~%5}7uOcMwB2
zu7yFM%LL6TT@_u?nwNP-cgEMhvC{g%t}(8Vj)zt~3Kf^)ym)(l-_l_G_6|x^-yog5
z!%3+P3ULm%MQ%?SN958v4E3-P%mpIes32nj*fq+wHpCY&u(O}3T~ix)v7$R{5MSWE
zF)`_nJ%8R;Nvolu0f>1FPCdC_=jA#dxJXD9xDe{K{B-g8QCN9-xfl+0
zJG)A#4J25N2e`5pQ@`G1QGh!q%Y7j2`Fl|zAx(>)p#CW94YaX=YzAJOd?o5QrMwGt
z;&`)2V68UA7VT^oJZsL>rgC<6rhczyU;D3P0BA10`|rHgp_LO5d7vP8I5jzW#xi%2
z_vQ6OQxN)@^E%SGPd4cJ(1S+f`<*G$G59+gZaeeKuY7#UUYJibFB+wXw%y8CQx6V!
zcosl+g&g(_k`5ZfxRF9Ph9dPA%~Xsp{B9oKK_LcnV|03hG{s3vHnHqp*OjXE4{z@r
z-Slc^HpA_j@o3qxBA3uA^Fl?r9#GSZ}11}#GYJ}r~x0pvim2s
z77CRk{=pw6eji-E3EGnNFuQhQ_lfSm3qyaRJYf
zxBFv+%|o@MpJG}LZhq-+OFk{ACU4FjJ4PR~q6woMU|d#08uwIwsi0va3?YYwfzfaWFIswD=n=T9b=n9m
zu8krMn?tQNflFKn>s!hl;$V*J&^e>sNR`Q>AZ0fMsL
zydR`G<)~-Fl+MTl(>F4F{bNGC$(_hx}?i<
z8CiT!SUv1u#7LK!x4~=3#dWmHqjEmut7Tb}F_MuD-~Q}!oI_N*=;!_mix88{xmt>USN&Z
zqw7K;bGn`LTKa}qBQmIkO#vU&qki&S=W1AYu6U?3&dHL=?w*#x7e_V*i2Xp;RW16Q
z`iU7yH32P#l@0f&4Y^f=`R6XNt;wa1XiDXe9x
zACvC(cKY~Vcn5Wq(rhFcHI}4&Yuhkn8tH#>U}I}Lhh)AhMz+kZ>=M5%*X@vH?q<75
z1ex~jEbnJm+8IBlZ>1-kX)ac|PAg={`yF^3iHeA5x8NpS=D_^?pj&^oVysYa!G1^6
zu3S?vcn}#-P`cJ_mdeb`42B`{Elz;)cZcY1kKsCTQKQRm+;F#0?v
zvJ~D+ioDqDmG(VE(e*Taxa7-yLE@~f^&&P=TzCbX@8(@VUK|HvxL!?>a~?Lc-;AYx
z{`jhs26B=$k>5HdRSl5@MyWuUPTu^dS?T)haJr=0N4v`apEK=SrdA`h)nu#R(cf94
zR=G_O-Y68`jkCqu3)*5+y+DovbT~-wp=MUHmqfa(m{TPLAe6x0`(ih0#wQ>EZP+7l
zw|qx!lJ;32o5Rs0dN_V8o0LrA>V1P?Y3g$)SxCZYZ2@%dD|RJ&Aurj8*mpgZ?m^d7
zH}nwwj+RONOe!`9YbFF_d$W&v6_Z+8Yj{{ZYgrDa(726)_+TfOQ%F=)4%IqbJi4N6
zO=J5)+G#A@*Q8Ds`p{Myst23yI3dO
zv-(L(2*7eBu4+X8>)_?L(~thB8H*WnP;}8!9No5-dn)I6l
zRVDlm+F6dns!be~1Utq_(5Ey({IuLp;1%bBAs`X=-n)J`r{j;GfHWQ6y)7k?w-odGUkNW7Vd2Z9J97k_j)oSzm-c`JwKQ;@S%dLz*%e58kL&1@A8
zkOy%!b-j8_-=%Nn=<@I7C;WAgyaae>ZAh}ELx78Yg36W_
z%r1aNX`FLMO>mRE{Bw|%W`0RZN_ykA1wQezeY{#W2WG~4LY@^5kMEe-YFY|zYj1;N
zX_Pn!%(?^9Q%NAXs(5gnXyK>4IZfP2S5w%!<26CB7(Dl1wmCj$2{__pBH?1+Qk416
za~}ol|k!ZTf8S
zBRcm@ZFNqUgof$0cj&(h{%P;56s_U<1N__tOW>Ou7o(`n+p3!rWW_VHlVH>SwCO^
zErq3PyM|`!ca|s+tp@6}Q57KgS10Rlt>k{1pl-*c0iNiOkcaPX-(GnjFA?3*acO(2
zjmkD3w@y0wZR&g{@r~d2mdL0IzbJ9P)LI=xIDPAJqieXsbtP#SkD_HUa-fjz)ZI#8
zA!Q5%4mEiRn&8mQ;o{=*N4;qF7!T2k(t7n-xBc*G=516#26yKWC(9n;xmZ&bU
zHXV3TCvK!Jkm)8>G>j>`9bTj+AWBE{X0fJ!ms!R9ujQ4<(_1_MGl3rP7K4eAhgXp4
zJ8Q9_^Rza%590A2FrdwWBkrf0LLRwgA7!`0E}@u;A9K
zYBe7BT5~5EqORce6TBsz4gD{K|1&_ly!!ixXZiCK!I#VqKM#z^NK3&ui(d!+WW-w<
zhbaFXG-Zd|Pz5*cJ=kmzcd;^UjB8>E{ncN5Wbs>!b1&E{jq!LeTRSiPaU|>Wy-$iq
zpL{6q*wTi+p17}DfJ9w;oVs=9b+IwMFdCJ#1P0S#H~sg136G)@Y@V|@^ARw^E5h5V
zZgL2vVeXMHBkd5Ngi@$clF`1g5PJveY^Ym65E?!K%)MVeR+EZ7zm7G5Be*^TKR
z=fKv#H70xN94$r*dN2wX#(^ON7sFOFvFE1)Ucya#mIk30qZgy2yG@?;XLO<2di9f?
z7h}iAF?``*{_-Pn`KdFWFaIg?`w>WqgxetLOe9}m2T?!y%Ldkxe8rMJ$DH5IP^g0Q
zSm*=UyMG)%H>$f`MZY^?MVKOJfe`-I!}jmaHBue(?G$CDrA3;N
zE;aRf`TC70?8Ke?Q<0$Ss8K5YzLs5gc>dbuTS5|4Hn79altM#6UUf%%hCA=Y-k9Eb
zlK~#_5h=#9crO{V-lhn8O_9O>3w7lM{-t>P?
zA94%LLzmf{=6IbyD7EORPzJd!SFS|X*D@JmWyh$PtrFsfz%aliR;5GHP5TvBIqZ~(
zwKWk!W|Tc5XlkXJ)^;-5GMZzDGI+ZuwUg~PClvWvdhy_GdHLc6b415O4vGLxiWv@;
zQ2VSK@Ly_u6U(gS^g~qE)kehe^?s^6{vN5vz#rc5&*0OCg-Fd2CW<1?i)}jE65FWJ
z+mnyNZhFS^T)Xig#oVf{)DJHbB@U*nC*O$RBHFjP^wcw1X(?5(!xtPQ+EakOWs-h*
zLPTl{;>mCNEW}ac03e4-+V{;&6%P4qpW93{#rG#V4QmlJYg4;fjoCSg&no^24r5Yb
z>6)hL!YUMo#fhc#^W=Ye37poQZT+t^Q@d-2-YV
zCtkdKQ#DB&%`Gc^p+p843=Wnm$gC%P1k+GqUr{J&HQJ2{MSFWvf7O|2ohu=2nfFpV2-GQ1oi-nVQzV2;3kBh)fGnD1W3`6Y^hN;#&aU
zs@{!puhIX+!96Ho_IALmcKY|*Y#kS2om1MNSu$h0H?U20%65ML^wa`3bCMM~_r*EN
zQA6NELeEoYe>lt;OJN=U
zA3sDCWoC~^W>!|_$w`@!lg#Ywy|*JHo9s;y^5Kx|P4*_)=@@a6amYG2oZs#Hc>ErZ
z{*ZCb``qKYulu@Q*YhIL641-_=VFvO`GPLgZ;&E9*)Oh3Gq;hCk(7e<rQYcIP25D9`ZEY243fYaXT{~lKAVyLit_qy=i8=y(d(G@0AwQqAN0JK
z_F6^mnkf1;FOjjX+D*RurJ?C0V@-vWhf9wnJyPie7;dts>2F1`w*I?_OwlbbTC9ou
ze7mvkj(~MZ2{}YZ?T!uWrfy3FxS>Zv_h}M^ZjTpKS5NYSgzt94yR^bz)*Aw9Wlte$
z4iaX&ClQo}q@rJD>LCwdQQ&NNFZ#?kzkc1l423zF&d=Hmwk-M>{^IZ3CK8LX&Zr^n
zv;WrusHrjtP`=C8He58R8Ws>JpPbVdteowawc96pudc4)uNLja_cUc*I%JN4M$D3e
z>H^aF_U>LwF+_*-SS&kYm$;}@o_yGvci81qj+TfD4ocZUw=5a=Z1#GC(1YST0R14{~#gmWAW1c
zR1n0UZR^?@x!0Kvun9Zs1!bjX{W!@Aul!VtFJHgv{tK#NfA{td%p2mXE--wy@`U1k
zhOo(`3FY38L)u8~D3gxJYQuP*zJ6+sHzVZo4CE6#$FvZg^7V!&YyiZVJDER$1XFfB
zup!m%O;*O9cf9xkL%aVGKL7(HutgV0#G?hWh#m(ixqfRcl;=`EYw?5wA>
z;ocP{QY5#xG0c{m3w6DJ+Rv?Jdo8L3h^p%f-w
z_y}F60=hBN`XlV2#y^)r-WVyV93aiO80=f%f3B&SvlTn*)%2Q5pnTZXA%pg*L@;*c
zbp7MYEMIh9xn;n~7|tn~>mw$h3W9B)`Ky-wGkC(TL3S^wVD*vt_`zePnE6-HJvuD?
zQ)6xnM8OrQ-xkVEZyg@ymQC9a9&M?AN1Fb_{Uv{DKFNoqu`bbUp%Kp!l$Vs8Dc9j|
zGdI7fzlH0%%a{SLP~i(+_B(rC{DWJ}X#4`g&m_zI~pXDl51{xK`KM%IdkMmR4{q
z>DWn|UIe9Hrk@u>_KaHc99J|b7jPZBfvi(=AhCq0Nmn<`x0*UQ1)|hzXFwc(!mz9n
zUbz4(;}SCQSN1uVmo{OgG1s9Ka43JFMosk-i`D0m#amgYaY?$5@p1ILD*jDe{JRA{
zq?pV#cF@{h=R9MmJhp$$&9Nj1waCSJyITZEdjyZp!+;I&Eam3O!g+yByQtKEuu)wLBh}E-0`-sR{U$~$#zIi819F?yJ{S`aT)m&T3AP=$!~!AT>+ZlS
zHbx(_3q*xA9I;^&%q>Ng2*(2uGE9^qr7FN~G1iM0OlK*F!?len?=Jzt7EOa&Q7mK2LFP!BMw`gqBO{)&@y7S3Z5{17qc%4O^};FfFV#-DA$&v$x=M46U5u*tauhtZJ6<1x3n6P{EBli9CqRVq~LwmFf4>P-@;$vLD&)Gs-2kMCOU@nK
z#c}dl2!t<@t192TrL~l}w4sAjF4wU(UoSCdHZ@E{^pUt3Bz@Hr1-7t7fO6~k@@4QMU&)U`C7if~G^
z>*18C+1Ct2iwMosNdE&DmbN@iDWIfn6VK1Gv)lCll&Zl$ZSUf5?=B)Qkrr;Qa&h@s
zg(KHvEIxjEAp%AV?)FQYo=+?_9vz7ZOIAA9dRb){;k+`PhpKp`g^A1L8XkxJ9Ugr2I_4BL$tXmZ%Z5w3TG3Un%b;N?j
zKUESvVoZf;3#$lxbG|2A-5Nhg=2G3$dJ4fTwa{;EZ9NJ&exQKuqOh>DX2`H4plAKqtHZ-^+
z@$}TM$1Qhu-5BKl)`v6P_E&oau?8j^aaR%5M+qKC51y5r$+I(=uZ6VpZEu{cZb*K$
z)Z`$leBDHdlmK#Cli*XUk&%&QQ2zp}lqOMxpibO2zu(u;)ZB;=sGm9~#NM_W&zHx$
z0sRp4b&L0{EC|S4b{so&c>8^_#f;sLzj;yc~9d#+pYJZvu3&bb
zC@spC@I&;Y1od`|0W$4IXh?;Zc@w;TI_vy;G7*nzq2Xvrv*+el`u=DgwO$$u#Fv*s
z^yjem5`9tNDZnlvEadf9=kt5U=cmip^rvChPeKLBRneFwg{BA
zg5c!f$u%eB`uu#*&Ts~bZ`S@5o3s6A6L!q4>!Qet3Z;<;$y{y}P&qs+x?|SSJniFD
z0kdubHEe(&WNT(YIr``6u*LRQp4Sh|A
z-?a7y;3fzc56@OCjP$!~>wI>Z)IZV)eh{Qa
zP)2m!WwWtPC=}6E6Qz2?!m}{NzaNBp)c>G3s#}C1b-36Bsk;UIaktzkb8dcW7>sn1
zf)L}x(eo6!{**(hn<0gi<8E=PQlW6MzDOUA%zBqnTU?Ir1B}Do#nDl>eA?ZV)Ln6z
z2PEBOknAHw*K=zeYQ=}oIh#}aj9Vl)V*tjWkauK@3jdi;
zV0&*8aUh#E>1db*xr{Ky5(n+Ho?Z-$Vdr$yT*tbrq5X+jka*eqk*|@
zgiP&tf2^Y$tA4Y=ne7U56?Lb&5>p?
z{I6fWnz2kH=o3lD!
z-i%Ci;e-TJj$--rzlEIyjaW-csxBEDV88vqwegi@g)os9_|exHdqq+=6H+%febOTH
zxad5Ok&)ki`ON79TQdE#nWu`@fm)=7+}}D4UuNazHoBkwlcji7p2jBTQKsV*%
zURqkZ08aU(o#R&d0BfdVc=hOrrkYzmBi&{0KJD0XaW`Ww$)
zixp!|NB{h@VE&LJYO#~rnHh$ZKEI^*s>z3$WtiN6H@^6I^GBwyd6nohGW1HxBBG+r
z1k%(RCg;e*DJxCb9g6+5^p&+IGIJ}0WzerFu?XV_bS8>Si=!hyrwvcC=AUYZYnF!X
z?++Ri@0sEzF$E|g5lp&JAUZ7(ziWeE#NS#rji>V(Alf?^hZfLV4yceOMS6p)&{}mr
zTQ}-r3AHrg?Y*02Rn3GfDo_1}!^ySd)`ii%)b&$5&{Ne14<7usMol)(kFW%S>*P-a
z{=#=PnrCmpp~{KMA|JhOGS{*{%b1O
zYkF8Mfo4o^XkPY$P0r{o0y8tDAerJUKi*zfBT}iyw-ls=8Bx*
zX0)6)Ed6eA11BU#BqkO8Sup$$m@%WWRFtv4zW)mcr`1Q=ipwWt5w`F1{jT*|h*O4U
zk}7eXjW}lc`{dS
z(r8=9iiI+rA$bSE+8J-~H929GvXUC#kz@$wQ=rl}2Ik0*C@#(wKfCn0i*vM#Mx5NI
z2Os+a((r!z&3i8OdOAZyd)~lr#NaP6Yr>bS!Vt6Ay`{=QHlSSvI5H!5L7VC-phM-Q
zi!~ZcdCPvY1JqdY&E5uc1<;1MIgSyOM&DnxA1^pS-Ul$*lySt1`d*%*_v@;H1hwua
z+wA})LNBNQ38!pwMF5_e8z}IUWAiChQ|+~&vKt(8t|YMeH3_6X5HRne+`>MYOE19+
z>**ni>E#4L+$BM$>xvU1+olByf^j8B0ihPd9|6CQr)ORv8xn&R=tQyubUw=9FBz#`9#?Q
z(;Oc)Q>!b_d3B5=CTh7C!#xB9)Srme@v89Y=2_Cg9)-wi(@Lho2|t9nv5+B)Q{apo
zr0}7)Gcr`6)O=5K?Ja+pJ)W>DXFJbQhVUUp0KZz<9pho!w-Nw{7};F<=WJL
z52%c-HlBv)hTWahNaou0mVGUhp)EA)>saBetDF7=!fIV9YWbYh{AD?R!>3f_-90JH5v6PM|l}85T}BN5bnl_6ouTV(AriOf$;dY;42g!|UH+
zO|P55MnMm+uSW332wnSg{Vf8i|G?x1AtsK}v-hAiR;l)GvA&hJpk?x-7)~MZnB~*p
zF^z93MtcZx7OsC3ewr2~1ku-4lg#xvvZ(g8b8^}taL7Y#dLG1>^jesAjwGuivyY_^}@-Zo_8rD^YMyRp1D`9X}JH4hX${^LB#lJ?hWWU_Px
zY>-w!_yDj!qnoU}#qN>iKt5_=Zq5O<9LxOz`OS@)lw^*-u7F#iSbIytHt>8*k+M@d
zV-`PJ`x8`OKM)eK@bhErV+cH7M2%Uxh?xff;Rp*fnB^*8&&|#4{_%9j1#$lFmSP90
zADpC#F2M&mkoWZ71LA))p0KkSeVDZEJdhL5c@Bhrz`H~%C%=685{TzI0rudk(0hBS
zMaoAhU_DI_^2uiX(DZT`(KLlVQ)r9y+*v4gBq$6j>sJD
zP$HEQrV@P;*HP(~n-d=<=PDx2m(}^mHk)#O(S}MA*b~@NnTKW3f1+iE50%t;gR(h6
zTFzfBK0@gK$moMV5QJovL(JmhYjq8p2T0B@y4IMPbMTx;OcEb4BypnXZhJ2XX{B|H`jua%Qm68bi$A-qfsmah#+BdA
zO;H=9hL9>ItLVJ5d`Pw&2J|FQW+FvPkD8{2^FGrI$m5{p(sOOv`)g~Kqg<+T#Xmqc
z!wd2r9+>rAiQeoT0Rss|aA({hl>RZup@VBxPn>-+7to3p)a`z#+XW;_iff%OLMq8P
zei8c;e-IK|tj)gTMz=UT@-8ZS!+i0vw0vlW=S?9=ka)+?7ch>
zE~2s@&7BHKpDE5oyGBTmUdqL^dEPBzV2Sd4Z{nzh^FN>~iVuc@ocTigh0ZwQ+`vl&LZ=eSEccGsMgK
zFyce_6m5BOmY?nJFVC^Mx|v&O$C{;G&nVtXouN4y{J4KvcVW32->YOU_C2{JrsGMG
zmi?}~3NxFYrE#JZWE>I@a+=vc@Ul6UG5mebvoY7(Z6&F4IVPnunOP?ogzGF*=M@`Z
z5`TgB{i}zc-YH4>8U3|Fzv1ixbGeK8WkxvO8XS2NXI~c+9epELA;@1n{j)Yxd|41~
zzyIKSL?^|Q1d!%CP-19!a>aE^V3Usl=?64pvoi@h*8Dbll9R${-twLb~pj+}$HidR*_zdta)U
zHpszAbTnSW2{H@8g+z@B+^>43?W^tJHGR^i-u>VSeUxi-R+UJLPxK$-kl8f2lY`TD
zM@c6Mq~-9syI@B~b#?RNoPLVo)>{uv;h2_!*c0*H
zPpNgMPMz_W@cLO8o)w#4D$E_7$D0W23&1keZpSk585#ld461R_5{t%<6;a&kjf$*aXvKva$V}R7~*yUU7mHGRsUc
z?eIt|f4F`ITrxE|kKPn_u!_UIeb)4PtPkv4pm_8K2Omx7^}ab#)Jdh-Ju`1XPRAF9
zeKp`P?Eq&AfZs}RevIv1m2fa-w1cPVlkQ7~h;p7)rmhNpVvfDTLA0cXCG7n6?Hela
z5QQ7-$LNCpD&t2nI+}ShM;*WZHf!I)M)Tx%=D4&sJzezbh8-A?yBs&E3}?bf-{m5zilsYIB13$@W)4yN$90S)v|KXR3bzkPkrOqjI!(pYH-I@9ZG2yd^g
zt%0~C45=IDAvF6%IbzovcXiu&7%$YBUwVqbB|^)ghZA8=d{(e<0x_A9sA#2t#xI8i
zhS&Fms02$1qh(=H*Trs9Ber95Q2WqX$2X#`f=X$`F5eP>e+s)0Psb
za2j%P%6R@sdgWMzWPY!3>$$>=G#hzdp=3DaY*rJ&2OH!)>%(Yp{4{V7IX(1vN!oOC
zPl9iK)wS9v1zsEeApz)!bcVtnB}kJoc1!LE7ez;x9sm8S_J^e(MoJxeX1GNs772@b
z%2}btmyziw6Z5S@kdBNV>Gd)Kb|{FPHZmM`dFat~aCjB#knK;sDY(4c^~78D*Rd!d
zKx*=hDlSu0)CGksz@j8LY~KP3@fUKlL1~jWeW7soG*SnMMD&-Bb-z?1h$ZF59Sj^6
z!Oc1qPS*)wZ9nk-LEn%_WK``o4~-Z#C;6w;cFJ03F
zW~l&t$YuIBsiGa5Iv=$LhkCXa~$ZGSTZ
zQBf=f0^5B>Zv&+@9wSC89WJ4lJhN%rQ~$38cwA&Xpj-ZQMh1j2Xp>08DTysL_*5P5
zJnoW4%k~?R8WMjdaE;8O;jU*~2HmNFhSTGNnN%
z51<_p(EN~B6Y+z#|2(?q$w=kxPgE6SZhE9=LSptKtwd(5kkn)+%Zk81A1NGnXHLcg
zH#%ZU3od8LL-h1!m5Sj>Wj7{#yB{qL80rD1mw?G;gY+>ckwnzzd&P5i3lk_U?uJJZ
zXnvQWonf+kM1IYzd~d!E#h9mX(UuMW>Y~9fR>TVt?RBr5U)
z!s=y`A>yMPVwTR%!OAPLGPfBNGAydYK@O3lI2BaOe}BAWrY~l|Y{}Z$CoQQ~HYe>+
ztRpv4ypsyob=U;Sg-G+pwt|LjS;*^VPff;@Msq7ZktZ@XPf#a$qSo9ADQ&P9(iaIa
z5T7YW_-7e(C2!ghiW@Td_8N%`U*J2-5HQN??pblwAcoTKwk_Qcq8m&zqe5aWgjB?^
zs2*vl3BxKz%LT)7P&)BJ|3UVnggnu{2=n)@3r`nfE~Eg!X3DOx153xi`aWXHJGc`N!wIV!YW8{J{-R$uXg1~WV9a^
zFG_|b*2~Mw#{*ziD_n#EC6s0Y_TV<767v5m2j`#wg*GDjNlY+hPXIO
zuJ{@97N=3dUNUvxeOJbMG@%$CJs?^`U?!)H#~REJ7>8a9!CSj!c-&6;n)`7wHe
zID~}F*LF5FV7^dxTlU%q%~JJzbdu<^TPgbjoF9>OOm&mZ9rbL#M*y}*r>4+4e
zs?^^NjUaP1=u4w=NTd0^ckWHe@nrW^VM;I&F-A+fKNIgNmP1lQ^R5NtyLT%=a;*%=fe}
zlL)XEeE*c>B<7u&mgxW;i<;dZ5!GT^>3;B6ObKDu)`G=4eVLsHo^o+ciN&;TElUY$
z$*pZ0+j()_vY6cQf7jvQTVxTTuIl|!9*&L$!i!u3pp?mTAVPb;ox
z89k9xn`d}F=y`Rl1dBvkclm?
zCwx}FS!`+?&5-c~W(+6lKo;WY{qrNr0Oi3Ur=ajGO!0w#n*!C_uW#=3=?{{x=cYi0
zS3+%5lP_v}IGO-1r5HXKU+bs*ji+chW4sJ}12$m3LZ}E-UV%tt-S?9qGSH$!pD!(*
zxZh3V`~>y-V984EU%b9|A8o&=Uw*$^E~OY~^zhM@uyew&JF}<2|+$j|M%zUj1b)6eyCdTN`T<;%Ve$_kT*^B=#AUIp5v3^6{}{)Hy-&i
z_*|#7Iz>hvz^LB_qCCc=Y5J?93tc^@Qcf;3`&WK8HN2vY5Sn`PNe9k%hcE=#iR>~~
zh=>PC=T(;j4m?F<~k|RsH@UdaF~ce_VQPt0N~`eo*DOyK8YNU4&FuAzdkWpM%|Wt
z&+UrjKU<3F{y
z^qOVw|xMXez;ukr@&>Y!V#Yw
zXwqU-Il9+id2REytGD;@yJO6C{7Eq8#G4j7ZGQ)p_xX9HXm2+)HL;G~_lZH&jP_~T
zz~*;78umhDyRHUhZ%`}Pz26%|Jmbpss+_YBQd|9bt2SgCnmcc%b?e9R+VN{9dth?1
z0;_-h(tLNzF%Q3pUR+vrp@$dkIGV;i#N}{(kdM*QGRm#9*cNFGK=}bz@QR90+E3>{1qkoE)KC5Vg?S)^Y5Rs!U1RBGv--4?<-B_b
z!GjbonxCJ~$ww{;Tx!CcXwUynm&*$27Fo^g(&4Q`tvr)j3?87Dj`6yo_q#8(mocCG
zti+|He8NP=zYFZX5o&vh%Q44rk0|dq6d>C5a1G4I&Yn`Z4kMJZ6tZRV_*CKSbZ6OS
z?!+;4ETmp5YVz^A_8A6$(Xpl%yslUObGvQT#%|Jidd7QddS?~mX`EhC0X)BHVdt5d
zQoyZd9#h`E4vm!_7Eums5gTvaaoVj9XnBd-jB2p*OAM}j8z1QaFJQqn(z$C@`f!D8`5p7v9^y0uA>Gjhnj2Z3p0s4y)(kejBvH0IZ<_Re
zxed6E`(U?kUt8;a}3d6h))
z7Q2G|3EmD!$k02$VUjZq1kn_>QoRRsE{%yh-=xGg<5rv%Dq2GTY_#B(sW*lZpLi^~hMydr7#8kmwfY4GDs)*3=*8jG>6YV#G^kt-L2hAq
z@ivV`xB|g5MatjfvTJyrf|5jLe`w#Sv1HhBucINwXx
zI8nd|)8Ew$Zi!s&wGj0|3(;L2tX)kW=zkG5KWN3zz9fQ>Tf;AZ0aTq6^rY1o=V&oH
zGV)>CeqA3JF@5LD5fMNUbld&e6sVW}yfVP;Cd1Os7?2}3_*$ZEfv5_vWWiaD66kasBHY(PMAi60KKvsCSxoH=O2|zsobG09Kw-cPrEn8Wmc{0UsoUD&jYAywe!5~EfGrqBwRJ&wOIPba+38h-oK8V4Opna4V!
zCuMt4@pv>E-SFut%dPVPTOEhR;9YNF9OBQ!N5Ovfc?m|mP5(owsdu~Scwp}>#
z@PDvz?d)}GJDwYUQn&)7;QRsWG@G(uND*^*K=1g*i~15mK0LGK-oIgCG!DNSE4(_8
zbWa+8a(xAs)(7SWV
zMlWw&OF7wDj1(aUNU-FL$OX2zz?RhK|A2}N+|caQHKx6%6zfIe9d9$qU?
zrf&U2cE1D8kH%O0dF=fj-k}IGe7r2oAn1xjN9rfPDT+m)zdI-G{Gg{Wo+A
z$4=Ds{1lo4ofpecq{Kyn$p00O81g;?vC!fp43dT-va+#&|0zfzO-ksSPr^ZzJ<1J|
z#)Z70a69Uq>FMcK)?!-lJvKl<1mLeg?I!%?xyQ!kaYF}4iX8m`1&qLi0a^hd3V{x7
zL}U5#WT0?$?1sv7Dv(3KSD##py5-Mb{NYKNO`(@tCZHgo+xYq;%jZiK!&CzU{9|SYj2)Xv6@9wZJnlNc)lku-+hvnp5BpqJ)&+vR+Io7C
zfFKF-ywq@!1pKj!s8>9(_@_8dbBgpisE1Wf1p?%Sl!BhD9}ln!0+D26u5QgG0#KMXQNxQLw
zY2Fgj(9oDWgDNQ89{&1XgF8Yh8^4{>zcx68=smp?^cy6WQ=!{6$gMI(HgSLjRKD|BZ`3|LHLR;o1@PPJmc4mf?F7^gK?_X708*8<`M&G-L-J;3Q$j5Cd_}<=L
zk>@Y_dPT^A0BRmP-a7HS!{ef%p~2GAQ>X98+Wv=<66=Wbv9AxVA|2RuVFaK1f2E})
zf`WqI@ZeNU%6Y&uaE+>8EK4H>7XbPseH!~>&HzM-Bw!Rp!Frk+`El(w5h0jA_!kb^
zn=8uDGb%YY3NYB=cuVs3!>=`d?zL+-wqC{N?WxajLE|7?&WC~H8n8;)A$eJ
z{066CW5e?IN(M^&}N8CDJdK_vrcQ)5p3q1{gAJi{wEr5Gz(g6HzjpUtjrU>J|ZeQKn3Ex7%2wlPAK$%kDt
z_YsFjoztQukY{ryseEW@VSf7bY2#)|&fb^e2}==+$r2_
z4(3W%fWV(1=!w5JHtOFTH%gCC;(V+BfO|-q?E0HEXi#-(!PL|gSgXN5H=tne+u5mN
z3sktko}h|Wq9i4H@%r_HeW`hDht)9M3gQ7Bja9f>?gswqb;0d^?zix|vzuFWW{dRY
z*pvx)nUvyhqhS>1*_x&Mhf`YWgRsg-0Kg=tpy(DMPX(iZ&)WgKzmj-7n9%BdQz_l2
z-*I>l@2YTjsj!0=%1>|6BO2D-w6rR!;tl&g38MX>T?S_+T&T2y!FLpo38O1B@HinO1)R;-bUY&tC`fyN190WA
zrs2n)^gi1!(5@}tH)W@jjKM#6{hk89d5!oB2M%qF;K7$s{;AuC#^71BSkGS=8MUn7
zFn|9V9urJqx)gsadDKi=%j}#x*x4ysSrt3I{7%z_dGX~%0P(|FnK^%de+UFD>ecRv
zo_kbh=jRc=ckbM=xb1e6Bm3PPL-fq|@0{Eel4l4eX6E}ZUjf;8FD!7Cy1cILRb{zt
zpv^;SK?cy-CZd8JXw@F~b;yf|+-<+vHu*O`3Q9plXlrku>|h?;VXC1@PPn49WyXkp
zMYiIwl((+;NV8g%4*m7`@$7Whw?l60WtnYpZjf{^G9|J^_Zb{QF&*B2jp8Xl-i
zQnVlVpH`*S>hOEKy2p%f60+t0B=S4Z!*S*tqHWOQz-JA*&*#H0AYgntE@~ivucMe5
zMARoGQOyU|>}w4t1)h$3CB@=p2DOAPw{D5DUvAkn?X!n)EllQ=PQkL(if2X;JP9fI
zc_tK;DPFCWpjvmW3*Nm5?Bz@D1{>H=he)3t_X?96;dOBTPTwKLO=jqs4
zYNy+WcLl=jm+dpZKR<7>>-y38`Bl;*mWIGR0e*fF5fL+*WI5sqIi%RxpT2Ej^2-(3
zKQy=M+8wcSNW1UuqEitcqjQncvm~?EB7%8o4ZSY&kU$x5?b@}VmeydCUJ$;x8fSG-P0keZg(#4mu4#e;ux
zACvGb-C(KDGB4n5FQp_U7b@B>6?w;Oi6p?uNfv)wAJDCT`x)qBeZ}5zJ3F*vz61>eW56MP
zgRZQqN?9h)ySD=va8Ozx{MM43RGmAeu+H@{uWb}qKMA0J?A3t=aAn}&p$;#Kn6$@w
zew#YgI`24cvkm=cbI2&F5}`nRrq#&1_4n`B)qV@n{R8)1>gezhMN7*fq`vrmPImSl
zXhN(8VMJvhruyrcF28?ICc?NquPz7#)C6p^o1^D}uiWY^XvH)Vg8+5zg~i3h;4L5C
zzUp2DwqP%MZf1r%m?^#rof-VR9#k}dI7>IMQ()+$mA>66xHLR_Sa<3UuEzlNUEj%v
zJ|hVMTn|g&X;~0}XCdl14OI9sJ8QFU`s&r4XUfXG_&zMbPWgJ{M1d+UexoDb<=^9e
zgTP6g4dwgW?Kg-B|7{CrUaVwMA+Rv{klZjD&d*9bAyCgFk
z$SdyCsJ?W0n5FdcB@OTyi3s0MOxn^$E5WX(rF5yNT#o}k@fL
zRR~MZge!AF?|NVEfOo#h(1u)dWy%jgQuDsXt&Ud#RgW#>0+
ziOPHD=jSyE2rg>So-xYVBJgapRI($p&)Mb5Gkf;@`K>FrCuD*XJZm*@JRn)T&QdtA
z0>WV&uNz$n9{2tB0;!9EXJh*(r-7L{IVlp~mzLtex&^*LVM)oe{C?5jh80L;gk84Z
ze!)ST*Ou-I)J4Sh61vxU4Ga2QN4$9$4Sqc~WTU0+e77YtH#fY0tqb6VwDt8f>G98}
zlz_
z&PNoc2##0Z%!f$e=%uBlSv(UVzXncnNtBM4SKZG@uX@n>aAa&ut%OZeyr8QK)UvE1
zHn+B(=;>vQW>Aq5P0Y>N9u!Rc$`@`w&Jb0nx{w8awxsD0IBB915^i(cKqa+Tn2GRW
zugvgkl7V;QTjH(tAD(MA-z0k;?@Ubc$ONYV9e;s+jcw(54ikLvpi}(0sujr`M#kIA
zYd+s5yTmqR;Z3G+@FSM`)5}v0g-BpOU!7GIoPgGH13q;W1>8TT_pVkw!#fUc4TUg|
zV9=ar-w50*JiWZ4@u#3vSTaI@EwQM%+3*(+C8?RC;{%@d%5AWFxQzKAafylQOWFxH
zPW!j*$VDvtUsgU@^#~hyS9L7~oXYzV3g!t-@$WV$r`l5{f5r=v>gAc}V~}j&aBelE=-C6PT%|uKb3M_O$9%_P>$G*?ghvs6pU^
zlMwgr-IKgLV2zE5`7O&lh;aWY{`^Mr!3%5wpjLw^s~@o1X<068^gsH0)3uXrzfZ2n
zpJqiJcy#Jm>Gy6*DEDE()mkBbe(Jz(5w1{2L2OBus!k`yb(N8+GAs}@B_m*w@gyzN
zQHvTU-a0u49-r+28Sb;$tpJ!tq6=OI%SEV(ddJra`e?S4;cv2!lzj5eb&$uix
zyOeZ-wu?(u{EJqls*7|71AKGAyQJv8qtif6Tw|9(dc;+^cSD07QM$>=?^_;j=-8?|
zdcZ{?kbY-AQ1=jg4ok{eb}4n%FWuFPq?Zn2|7m`hSX_+F&u3eKu2X3JW$s1%Yi?^>
zs;>_S2#5ggA=>;Nc3g?=ow-V|h18|PedDTru$_YDen)I{(3tXkSocyuImWD~+#(Y^`?udLoXO9#6OWh(rp~5F;g^L96SJ
z?FsMD(l)k3c#Lx%c~K_L$mE6zQ82wH-Q}OM-YHTZXQae(VF-+9
z=Req_p{)Y;^>U9XXwGI}kR=#8ku}Gn-yZz!<-7?sz(bnAgx-yNAj}Gc!J(mY3
zacblA1!V`~?Itvu$VMIX%ja?6
zsz@03O`>3*BwdgN$U43}-T&(~_-$81l091K1sra{{C`w^2{e>_8#iUimO|MIl}HHL
zsiBf6OCtNe??OTiV<}le5!t6wq-@#ueP0vV8T*kPwu*Szm}&-Z=jJm)#}JeHYz
z?)&;**KfNnrG|*1kF;lp5{FatwAA|F%VJ>h6zvf+8Z)MHl=@%ut{Nk$vfy_23M2
z)K%s?=XO&gGfk_>U3rPJ{BtNfyUa+Uv2+pJQpssT=COZUcwMCcW-EJpd&*tq4KuSp
z?t&f#FZNv9Z_GQxm2Zu2zCqu3YJ_SSpEu8)FGk?cgp2;#^aDwB;#?OWM-#~}t9p_4
z^tGNRGH<|yKQs_h#iS_Cm|yj6n4C#8?*7P2mwWeK3v2SlUV^SIw6>=pyJ{oRJ2o~~
zoeW^S82xi?3AYR`yj;Kki8;E}rMb{y)r^4%(`SYH3AfQA)vgOL;{5yJfJ}3itD6SRybEoDC@dG=d$m_~O)DZHdY$)J=lOl`E&jW#WQAeYyaTb6X2}q-Is*
zOs#ep31Wp^gvMvcqzv7pf`~|vV2H}dlvy(K5qDH$o$N2+7_Ftou~>I^1zCLFf!~-*
zX*)6R1Mx3)YmWei_so1#(@SJlO^s=gh!1xZIfadl%@skxSj8}C9gz4=vlak&q9D{J
zf;*hqEh$5Zmm}oDY4Low7heT6HY`{?~lpEnAw=esUlDjHZT$rK_ukOlP*ojq|a=6=EK{(MLCqN@mj|VF$Curmot!6OfUCl;N`ME{aJ^Ul?rfmf
zZ#PSGML$?EnetA|fBH6{=5@w;&~M};Ev>+gj*jfTj|uZ3d+kfak8a&rfvZu>d4L%8
z-q?C$k8vJ&<1x|r+u+%^tPPE1DTd`G#L2fd29KTzveAd*-9Rf5bJeZ*MS$Fe+W_xE
zT)@Rc8;_Uv5?A*mCH)^fprfLu2Am;NRTTXq^qgHJ271b{wGq9W>k|_bCFY_v{C>LI
zm-mqff%b(ayO|R)(d#|FHt19wX&tmb$Yac*$s%oHpHF4mj#(#cefcClzjWZ&6U$E~
zV6;Gg&cWVZ-{PtX19~LA%(k+!^78OyPDFCeY8!SoOmRzu)gQ1uc#e56U;hMVKH#q@
zT(7%M+!1iiA=pt}*hH_U^oA>^!O-ATW*(f9XWmKJo0|_YzFcwJ)n+0Fq$r-3fRG-Z@Fd*Ob!h#cA%<{V1*zMQjfL9
zb6*pY>oDzs<>vnP2mFY)G;cwF{Ps;{;d>_pp;V}oPa27M!9M03iTuP~^Yv@S~Nr7R8!{~LtrSD2Tih?e#zuy%-|LiqZ?#WL@
zMdciu?y_+H{CSVQ!93yCFou)PU(ma
zZcz_q?s`cDR=v$Af{^&hzQ66}mv$A5IwY9P=*)#F!W!|P-r878`mGudr?AqVIsdo~
zzr3{cR$Xt_GyBRL0Tu}aCXnB-CR&`WDN!jX`8gazEN;}-gA`b3EzHdoJ;+yIA(wt#
zNPaTAKg(T>{b@6X^zzdx&4@j#ubZ)PjFSD}Yij^*w6#<0kF5!r)71yx;zYU?lG@7a
zPo6yaxuitb@s=lp==a3F{u>UJl6(mBS^zZ8564789bIHApLUZVI^192=v!?FV>G{m
zSCEjfrn@-Xo1&g~#@q_0sr_xCD2@9j6$c91kE2a_jU)M?dgV&|N=$V8T(
zn5zDd+^p=$Ej1V9DS6W5cgFstYG%I&CMvk6c^T_tEj~}T$(y3Wt6TMJY3T}-2A4BV
zK2@4uAF-W3f2Lou`)om-Jkr#=JKs`ZT^;fi{;eO)xBS^
z0|=+fSc$6TizLtDJRz>=i1yD#MJ&a|#W0S%pE@{948J4fxF&H2_$ff*FT~vsTTir=
z;OqbB5SpR7zmQ;klOytTe*VL2M9*x8qdpG*i|^jn9M3nwEuJ&dU0}MYdP1?wM}p3?
zo9q)k8U<4P
z9z5CDW-R?FES44P)$jdo+11=4OocZHz-LydKfld#6>=-hMeQr4`e4krzwAUitbY_s{WpC*AWi$pK0w4j|$v{l{@%f9*97E~su^(A~S!gjWnlPDEK%+dj%X6NvQ;-BM#Jr;I6
zWSZCMX@=DK>CI0?q>1`ne>RDJ4x+3%jNu*Z!66gdZEb2vX~*CJLTKZQSOx|LCea4(
zp;0b%`JPH|XPBQI9cf_%fJW++i#rlIe)evrpYecbVzLBNShfnyhx=cZwoG#P{tgVV
z06OTLA#HiREM&dom2!QjIn8;p`lI9wfjtdR$%W3Zl8VWzSt>srkUg)YZaTPB6&7kw
zw!4gz4^Q@r#;yi$8qQ!hojgbvcV>z&kfff+<)g34mxV&
z#|8%8cQbqxE5vf^$4|TZR<@%$D1~37M(VK+HJ~EVkwn75awhuOd2c%-IvB-SkkUtc
zySojGTNaQBliU08vdv9`w7NJy5&wp?n$@fxC3frhv)J?eJ>71GMn(}%L%Ad2FQG4_
z0ViRBqRO$%yto==M}`rPSU?6-<-JMq6_%rYy`*xS&>Y&>vqDJDraf-0HX%{C7_1qY
zHl$Ld5P|{Z_EADA+S4^fEd^H3x}SbKvQbQ?E;2JQ5%!l7?ken7
z=q>?(m+jm+mJ1nvp3ldj)z{M14S^C1Lp?U@*r^Z7z%fQ~D@2)#md$8nF=HZ8gvKcj
zSEV;A1AI3T#{&|qiXVsd&Oh&rpv$*rBf!v5U`SoBY7%P2Bo{MaN%vG5I2!
z(EH2t`x(t{#!a-Ua?yx1CqnQfwp^lCJo=}N@X#$g?qa0JCVD-Ikti=G=Ujs#^8vsF
z3mpZjnee1=c557$CtdjmR||dfxtq^*a2O0GIwXXuy#HT_CTjpEF|3e-*i6A-tzjD+
z9BdhGo+LFG6xnQv`~9JYS1Slun-~;}zLf0s96cyJfScKWRcsmPPOrI^(!Kvy;`EnC
z0zkVwxLOE^4rz}lK$dJ=T*^1NS^<%{oRo0dU+2{Q`}a2>vE8CI>bzw*2b5Xuh!zDT
zE?9eh{-CnW3C}w_ifb
z%uFOpYUKB_1WD|PKKyGZWlS4xFA)wfgbIaZ_lNPNE2n_g5fc}`gzQU}Qs_N_stI;T
z!eOIPZ$OEZ$A)s`9Tm6S+>z&C(S^u9eA#O7+3Hb
za5#|070|8B%M0^=ea7F9XWloD6i%ci{+JvNf0e*fEP$QL2qU-$aBwyDNU&TwEns
z6tt&4K-s^&|Me8@tETD}N!Ua36Yx2ZuAY$6why^|L5x_5RY+8`gcnY#Er%4@@*n}{
zA}xbPpf!)3`gXc+@1r`yo9hFkZviL7e!J}Csgt`4ipi1tCFIW-T9&_LX5FO@N~om^
z`gQsveo6s0PD5muzj^;zykBFR(uwPG&n1yjcWZF9xMqQ`=lt46u&_mMrBh{q4phj9B!J>EU9)~h&|b`2bp3}*+`ohq{hI$N|8{rO3}
zP5Gt2&afFT0R}dg(h0us+Xx&PuSyd;?nCeXBCancT~h|gC#K;RSso&rOe1rl_=#rO
zjFJ6+Z$98I;?|#W>qLJY!`aR%V8qRiY9W}fV6bpH?-g-mV*;lcwdm+HkGh8JCOT)f
zJLB-1=+}|P1k_4aWW96@vu9uPueuse9FwU3uDYY
zyCy{jwTv9kUdKh=)_#nK|5gZUQG7!KDQq3u`@(2+j$BBDLixEIW};Ke@t(UQnUu}yPQ94
zRkM=YoRHO&XfG=^o?Wjh`2@R?I4{0CafFK|vMJ!(HRt3tK4+gjOku2v9Un>Z?ApSo
zG1tQ3dTrM;TlVO=3zjh!@x;Z0D=8_-<7|3w$U4iy>U3@IV&ku0zr3(!vv5rekFpmI
zyc+F{7>R%aI@9D5sYo(_
zD?#-ihcSK#Zh#J68uvJzZSuavebDofEHW>c;oFFwt}bmK;3F0Wi7y(rHJ8KhYas1r
z7k(UP8sCuZ>7r`vXIy8wZcyF37%LyNT`4MBCyRGYcDqJ^j!kvD2kl3~4Zc43ASx;O
z3XUz3kQ+!k7Die+{+dZ-YCRhVTF+VkQz$Orrpp%#wk1HGVcZrjr}KLzr+?e6#x;^%g_LBD1c0B*^}2${fZ>^WV2$zRh*Y`=mZq1zi-oBV
z)%uHEYPK^M8{Ax6;%czgg>b|uT|8~%PIoi!`PLtTUC?PBE646XOXA*}=#fY`J8=CH
zMDnstvraT5RLk&7k*U7=Hbk7P23YZFt^JYsQeQi2(&nqAdvOVfZO#y0fRoP|%etKx
zv+iGui6iQaf*kZ$e}Cc1Lb~=RCL**cC8=qtgxaUeF@i)mUr
zs!NU~_9!1YNm~M_y5_g#@J@vSsEd?rg>IWoGf&km^w2D_M(ukqQVP@4qv6e5RH*fK
z(<9UT=W2J>?JXFx-N
zw8MhatzV)KS~AJaXE$*g%uyC>zugwaeP=pD3Ma8c0M!4HS|Fq#T;z_Q8j9%k>fvRB
zGX)Zwuc(PL`>E!n23|q#D$jUM`X2kU+FKwLb~Mz?SCBX{7{0z|7ak_67)s04`byQd
zY(y?Dc(pn6c2k{*i>XOx^}n4NC+E#BQF>LKpSlJmXOXG=f$jSAmpsu1y~SMXe>76?
zGu~cas<~wUE;n&;bDRD7?0ypm-ZtD2>QGOs1dn(2JvVNMAZ%sh*47OHKO`JvWu`H$
zMSKybzq4s}jGcjWA5y(pppo+1G|1VKySGvwOl=eU2Xna(w+_rHXc})xIbLHS6TF@@
z*Dy3p|0k2LX?-PBjp>ow({tQuJt@MRHG@pytZ?ebRggx|_u@m>Ln0ERL
z`)F88daqaLpm)Dvx#gd!O+F|!=F?oX^SY+H_=nzgyXeLedi7}8F6zyjvIQrvgX|Xn
zwc;UTg-&KFN#jzdn}j{M?ntTRQy!c|=}DhUz>~Lp?z;lB4J;TZ2f+l*ojZ3v`*Ma{
zm}haQ271{KwVG3EtdNOqmo~-!f+m>x@bHk0oxOdvLi1`|2VF9HUR8ffe+y-Ae*)_>
z9>18lzBDM&s^^q~a*_N^u*0%VeEU*44Uj{Jx8ABeHfyS&7C^^qbHTm-fD2dUleg`h
z-$eJ`fT&1NQn|bv>hb=Cd)_tS6VG5Ih}r((QBx>sNFAEDS1@GyLO8D*O?kTv^R6G*
zK0zU~3hbQP(Q*UpdlwFjI5Z{1KE^+E|9}N9q11mko0ytl?bp8l>k9;d{>M(xmUwad^Q6rT+MxT@^4tQ|GvXmhDt0yYW>*`30{f8$OkKJ
zS3k^x!t
zal$fuT+w6iA69dX*h{6e|7L&Ez-(Bu3$Z5htLvoSRR5HjOX6|CQs9DMzH_`60_|s~
z7{hr4>LIt)Ek}ZPlKRf_Lj_FOT8QSzEhLXL(UB2^3`eIFTj8NET
zdE9!i!sx}pTB!*tEs|IjOJ|Mi4fmJ>jfS3je-oOBM^{=_?F{it*>f5Ei6e6g(G7y`=1pG|aySkB*GzQ&UmtzR&z@
zz@uj*Si@Oj^wJhFyjt&F0vi!WugZ`oT4S@>3f|#*Y8V+9REtkZEjaX)&PNbI134_E
zQW`p5{bFwh9?lLZRdAKyK0{36=!3kyNJ*&pyZ|ptK_nan9Q7hH2
zPhvQjst*PbR#TVxK@INtzZBd^KIwJXX@MhjCK%L6+Y#>KRUWIRlC_C
zC@5h)vl#4m6SvQizzq7A++m&Z{GkZqppo1380M&Cb?@2Qs7)c$T!SfebZfiS0QuoS
z^0kU~>drA)-#`A>A5nb-Tjt6i=V9j})>GUT_t?7E<}gs)JgMI2d?mW-F{UCkW)@?d
zoSOf0Q>6qgk9qCuku({5Ad~xHI?=&O#4n;t-3j1=Lk|{_*MgGqLEU{Pj{evF;8WM{
z-_oV9n7==qrrCe%Q9xy_U~+u*S?W^GYev@y&iu)%_0MYVNx`2gA{%;Mq1SjT(|DL7
zV;TKx27`B|oC<3>k6<&h^W(IqMsApiq?+q@2*$%h@{2t?xhPkIcosePS&VY7bm^X>
zlT#rj!(nvYf=^L#al7PK=j2h=zNh(@-SMSkS%e5AH9sOB>o-K`JsWVJ`H;2Gd#1Fw
z_)~2yriFaQPCLoVsFR8SB7~>QFTe^pt%+i_I9y7PK1OzgM-$oMtj&YLd69U4YQ4jF
z^ZlOqR(OzYf7E<^{Vn&0;wSDi-Yz*ITDq9?Rd&7i(J#5i?%ET`#cGS0m8H(&A|zJ5
z|9$KU1>9^Sb))Vt=xO5wP
zht54<=FAIlrl=9mNp)4b%MK*9Y@p|%8KZv*bH>q)pn=zg?a
zl5T3|)bmziGppIt9cJ5u8=SsBO$nqL`@?Mj@7s;Kxw|?~6wIrN`NRL$`C*FM&i}Lk
zRl!y72&5?`VaOH_%O{*2hP-Q?#*nqU)F_@>Vkc%kpSU+UDe2O{M0rz2W@#mv?C*R&
z2L}g`-~5IMRK}%AHu90*zk|$0Pt=+E1Zp{)yW(g&vcXPCD@1Kid5oOm7&$oM#{M<^
zT((=*&WyT0>nByZp3mJxtxM%5At^a>HfT#0pyZeKPEJ484tieA45F^dQK`bWf`Ayl
zAS@kCZjV6sE?D*5q6KAvVA|S^u(D~+kU&V9YFOWU@aqioyf)svyB|bbVNB4CmAa&)
zbPKnB=R5+tsPNVUdOwDU-jA9;K==aZ|8;Ix1b@=DZsX!Y=Lz@fXTxw4X+3;M#=|^5
zI64{*6;4M-=Ofst?(%+*LUg}cA4htxjZ)TPq9-c7K|o|-ZA}5k6Ab8QK7AR|1HqCr
zle1jKP1YLEEkDo_I~!-dWq5TvKfCKDD3EmPL6RLC*&ay*5G7gUXX?8ab#?WU7r^gh
zw-=IyqZDURi}D!vIQH@JZyS)gOUGZH>xV#({~7d9+;WpdlHpoWgnMJe<>Wv0CUqVc
zXn8z^-)!DvWg^q{(#Of@B<|!C8(&G$p6m4*i?;|l90&O
zPghi?DrkFUV^DH1s=>ZCM|8yDOMZ-9--{_D#%LwC4@9?gxi
zQB~`55)v=r3slKKg%S#cr*E_|zkcL8y_B=7YrMV2gdIW;L-k~qTcLIF*XvB*M3ysxypYgU-sqkjU74j91EUC1=G`36&mM@*GLV8
z=Cr+Ys;_|jWkXi!abw|rBky=EBWP&^06E7#7DNvQZcS#`{TWQ+ZrsML0yT7S{
zg+<7Xd7H?7@N~IlM%ZWE>}3+>M{|aH@+HK;&(X0lm%YcS
zww=hdTg+QiQ#>$4UAENk?z-nhKExTkFgUw@M5HAS$q}D#%{+H=bR;E%Q=094K#Qqs
zkDnT9RM-`P%XM%AW6;TMnfLf;NxOETc8mAl?#-UZ1_mP)_+IU8M?&weNlr>m2zs50
zfb!ckdmw$Zo~puF^ZNU;=0>(GvwmvnuzF_mm*6b)bqAn7d;gGwc2P{=4Yfewh=0Gk+snExNVW`{~m;YUOmuyK+q1Uk$mvpM2aui%ZmRb@jH)xO4F(nh9S9(S7QF*Pz(?A0tk*h?VE@N`fgAC7!E4t5!~IZT3?z!w8U*{2Nb*Na
zwE9w>Kh@RL>cGNtHbPZEJTrP^b*Et#%LA}ue*P)bJUw`oTpx&Vy66jq0R2x^2UNcW
zTjC=NfG=Ah$43MQSe6eM8|DY(AXyvKe~f^Gf+|5(rsf`aVRSmds6=+%CKv97_ivA1
zxA~?5fq>USA0Ci`0a9Rp&LEKy05SlFBO@baz&8t24HyZ&{=IkpB5j%zURJ}&2CA&_*d;?nj*vh=
zH%TP#@=s{;?oGa01H|<927C)h5rFyw4+gwjm2&AQh1Q7q`tXPdm$N5?>A@ujiiRny
z52=tok#TNBc+7>~i014Z%rW}fb(xZV=!cELaP