From b22ded5a9314b7c70d7c880f5a50d54d220b1a3b Mon Sep 17 00:00:00 2001 From: S34NW <12197162+S34NW@users.noreply.github.com> Date: Sun, 2 May 2021 13:34:53 +0100 Subject: [PATCH 1/5] What happened to you, AI? --- code/defines/procs/announce.dm | 4 +++- .../gamemodes/malfunction/Malf_Modules.dm | 6 ++--- code/game/gamemodes/revolution/revolution.dm | 2 +- code/modules/admin/verbs/randomverbs.dm | 2 +- code/modules/events/anomaly.dm | 2 +- code/modules/events/anomaly_bluespace.dm | 2 +- code/modules/events/anomaly_flux.dm | 2 +- code/modules/events/anomaly_grav.dm | 2 +- code/modules/events/anomaly_pyro.dm | 2 +- code/modules/events/anomaly_vortex.dm | 2 +- code/modules/events/apc_overload.dm | 4 ++-- code/modules/events/apc_short.dm | 14 ++++++------ code/modules/events/brand_intelligence.dm | 2 +- code/modules/events/disease_outbreak.dm | 2 +- code/modules/events/door_runtime.dm | 4 ++-- code/modules/events/electrical_storm.dm | 3 +-- code/modules/events/headcrabs.dm | 2 +- code/modules/events/ion_storm.dm | 2 +- code/modules/events/solarflare.dm | 2 +- code/modules/events/spider_terror.dm | 3 +-- code/modules/events/tear.dm | 2 +- code/modules/events/vent_clog.dm | 2 +- code/modules/flufftext/Hallucination.dm | 2 +- code/modules/mob/living/silicon/ai/death.dm | 2 +- .../simple_animal/hostile/netherworld.dm | 2 +- .../security_levels/security_levels.dm | 16 ++++++------- code/modules/shuttle/emergency.dm | 21 ++++++++++++------ code/modules/station_goals/bluespace_tap.dm | 2 +- sound/AI/alert.ogg | Bin 0 -> 12412 bytes sound/AI/aliens.ogg | Bin 64985 -> 83206 bytes sound/AI/animes.ogg | Bin 38454 -> 50106 bytes sound/AI/anomaly.ogg | Bin 0 -> 48768 bytes sound/AI/attention.ogg | Bin 15909 -> 14708 bytes sound/AI/blue.ogg | Bin 0 -> 40020 bytes sound/AI/brand_intelligence.ogg | Bin 0 -> 66091 bytes sound/AI/commandreport.ogg | Bin 26575 -> 40093 bytes sound/AI/cshuttle.ogg | Bin 0 -> 34224 bytes sound/AI/cshuttle_dock.ogg | Bin 0 -> 43798 bytes sound/AI/delam.ogg | Bin 0 -> 64069 bytes sound/AI/delta.ogg | Bin 0 -> 41246 bytes sound/AI/door_runtimes.ogg | Bin 0 -> 96511 bytes sound/AI/door_runtimes_fix.ogg | Bin 0 -> 51323 bytes sound/AI/elec_storm.ogg | Bin 0 -> 85918 bytes sound/AI/epsilon.ogg | Bin 0 -> 42668 bytes sound/AI/eshuttle_call.ogg | Bin 0 -> 34217 bytes sound/AI/eshuttle_dock.ogg | Bin 0 -> 40776 bytes sound/AI/eshuttle_recall.ogg | Bin 0 -> 35576 bytes sound/AI/flare.ogg | Bin 0 -> 72910 bytes sound/AI/gamma.ogg | Bin 0 -> 41196 bytes sound/AI/granomalies.ogg | Bin 40525 -> 0 bytes sound/AI/green.ogg | Bin 0 -> 38437 bytes sound/AI/harvester.ogg | Bin 0 -> 79469 bytes sound/AI/intercept.ogg | Bin 239180 -> 42398 bytes sound/AI/intercept2.ogg | Bin 23156 -> 0 bytes sound/AI/ions.ogg | Bin 0 -> 62745 bytes sound/AI/ionstorm.ogg | Bin 50216 -> 0 bytes sound/AI/meteors.ogg | Bin 33801 -> 82120 bytes sound/AI/newroundsexy.ogg | Bin 19632 -> 30962 bytes sound/AI/newroundsexy2.ogg | Bin 22201 -> 0 bytes sound/AI/outbreak3.ogg | Bin 0 -> 81752 bytes sound/AI/outbreak5.ogg | Bin 56476 -> 81203 bytes sound/AI/outbreak7.ogg | Bin 57305 -> 83654 bytes sound/AI/power_overload.ogg | Bin 0 -> 84006 bytes sound/AI/poweroff.ogg | Bin 76821 -> 0 bytes sound/AI/poweron.ogg | Bin 44327 -> 0 bytes sound/AI/radiation.ogg | Bin 58436 -> 84374 bytes sound/AI/red.ogg | Bin 0 -> 40004 bytes sound/AI/scrubbers.ogg | Bin 0 -> 88330 bytes sound/AI/shuttlecalled.ogg | Bin 25597 -> 0 bytes sound/AI/shuttledock.ogg | Bin 25806 -> 0 bytes sound/AI/shuttlerecalled.ogg | Bin 25943 -> 0 bytes sound/AI/spanomalies.ogg | Bin 40469 -> 76567 bytes sound/AI/welcome.ogg | Bin 30253 -> 44461 bytes .../announcement_voice_filter/.bitwig-project | 0 tools/announcement_voice_filter/README.md | 13 +++++++++++ .../StationAI.bwproject | Bin 0 -> 212855 bytes 76 files changed, 73 insertions(+), 53 deletions(-) create mode 100644 sound/AI/alert.ogg create mode 100644 sound/AI/anomaly.ogg create mode 100644 sound/AI/blue.ogg create mode 100644 sound/AI/brand_intelligence.ogg create mode 100644 sound/AI/cshuttle.ogg create mode 100644 sound/AI/cshuttle_dock.ogg create mode 100644 sound/AI/delam.ogg create mode 100644 sound/AI/delta.ogg create mode 100644 sound/AI/door_runtimes.ogg create mode 100644 sound/AI/door_runtimes_fix.ogg create mode 100644 sound/AI/elec_storm.ogg create mode 100644 sound/AI/epsilon.ogg create mode 100644 sound/AI/eshuttle_call.ogg create mode 100644 sound/AI/eshuttle_dock.ogg create mode 100644 sound/AI/eshuttle_recall.ogg create mode 100644 sound/AI/flare.ogg create mode 100644 sound/AI/gamma.ogg delete mode 100644 sound/AI/granomalies.ogg create mode 100644 sound/AI/green.ogg create mode 100644 sound/AI/harvester.ogg delete mode 100644 sound/AI/intercept2.ogg create mode 100644 sound/AI/ions.ogg delete mode 100644 sound/AI/ionstorm.ogg delete mode 100644 sound/AI/newroundsexy2.ogg create mode 100644 sound/AI/outbreak3.ogg create mode 100644 sound/AI/power_overload.ogg delete mode 100644 sound/AI/poweroff.ogg delete mode 100644 sound/AI/poweron.ogg create mode 100644 sound/AI/red.ogg create mode 100644 sound/AI/scrubbers.ogg delete mode 100644 sound/AI/shuttlecalled.ogg delete mode 100644 sound/AI/shuttledock.ogg delete mode 100644 sound/AI/shuttlerecalled.ogg create mode 100644 tools/announcement_voice_filter/.bitwig-project create mode 100644 tools/announcement_voice_filter/README.md create mode 100644 tools/announcement_voice_filter/StationAI.bwproject diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm index b62f0f8763b..50de8663da2 100644 --- a/code/defines/procs/announce.dm +++ b/code/defines/procs/announce.dm @@ -44,12 +44,13 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event title = "Security Announcement" announcement_type = "Security Announcement" -/datum/announcement/proc/Announce(message as text, new_title = "", new_sound = null, do_newscast = newscast, msg_sanitized = 0, from, msg_language) +/datum/announcement/proc/Announce(message as text, new_title = "", new_sound = null, do_newscast = newscast, msg_sanitized = 0, from, msg_language, new_sound2 = null) if(!message) return var/message_title = new_title ? new_title : title var/message_sound = new_sound ? sound(new_sound) : sound + var/message_sound2 = new_sound2 ? sound(new_sound2) : sound if(!msg_sanitized) message = trim_strip_html_properly(message, allow_lines = 1) @@ -74,6 +75,7 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event NewsCast(message, message_title) Sound(message_sound, combined_receivers[1] + combined_receivers[2]) + Sound(message_sound2, combined_receivers[1] + combined_receivers[2]) Log(message, message_title) /datum/announcement/proc/Get_Receivers(datum/language/message_language) diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index e299f0c97c2..4f0552cbefa 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -248,7 +248,7 @@ /datum/action/innate/ai/nuke_station/proc/set_us_up_the_bomb() to_chat(owner_AI, "Nuclear device armed.") - GLOB.event_announcement.Announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", new_sound = 'sound/AI/aimalf.ogg') + GLOB.event_announcement.Announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg') set_security_level("delta") owner_AI.nuking = TRUE var/obj/machinery/doomsday_device/DOOM = new /obj/machinery/doomsday_device(owner_AI) @@ -280,7 +280,7 @@ if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.timer = world.time - GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg') + GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/eshuttle_dock.ogg') return ..() /obj/machinery/doomsday_device/proc/start() @@ -300,7 +300,7 @@ if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.timer = world.time - GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg') + GLOB.priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/eshuttle_dock.ogg') qdel(src) if(!timing) STOP_PROCESSING(SSfastprocess, src) diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index c8a9d39e555..8b0ecc51891 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -219,7 +219,7 @@ if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.timer = world.time - GLOB.command_announcement.Announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg') + GLOB.command_announcement.Announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/eshuttle_dock.ogg') return ..() if(finished != 0) return TRUE diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 484bd321bf1..3076b9dbee4 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -604,7 +604,7 @@ Traitors and the like can also be revived with the previous role mostly intact. "Custom" = "Cryptic Message") var/list/MsgSound = list("Beep" = 'sound/misc/notice2.ogg', - "Enemy Communications Intercepted" = 'sound/AI/intercept2.ogg', + "Enemy Communications Intercepted" = 'sound/AI/intercept.ogg', "New Command Report Created" = 'sound/AI/commandreport.ogg') var/type = input(usr, "Pick a type of report to send", "Report Type", "") as anything in MsgType diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm index c806fac3ce0..743c6f13068 100644 --- a/code/modules/events/anomaly.dm +++ b/code/modules/events/anomaly.dm @@ -36,7 +36,7 @@ CRASH("Anomaly: No valid turfs found for [impact_area] - [impact_area.type]") /datum/event/anomaly/announce() - GLOB.event_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') /datum/event/anomaly/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index b90e8b86b01..1591c802491 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/bluespace /datum/event/anomaly/anomaly_bluespace/announce() - GLOB.event_announcement.Announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index 350e21cb496..533f2b5a073 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/flux /datum/event/anomaly/anomaly_flux/announce() - GLOB.event_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index 4acf530c081..a14c63961a8 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/grav /datum/event/anomaly/anomaly_grav/announce() - GLOB.event_announcement.Announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 2caa8dc4a0c..09599073005 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/pyro /datum/event/anomaly/anomaly_pyro/announce() - GLOB.event_announcement.Announce("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index 76058cfa574..fe274f3c73a 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -5,4 +5,4 @@ anomaly_path = /obj/effect/anomaly/bhole /datum/event/anomaly/anomaly_vortex/announce() - GLOB.event_announcement.Announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") + GLOB.event_announcement.Announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert", 'sound/AI/anomaly.ogg') diff --git a/code/modules/events/apc_overload.dm b/code/modules/events/apc_overload.dm index 4e2a296dda5..e1784ae9726 100644 --- a/code/modules/events/apc_overload.dm +++ b/code/modules/events/apc_overload.dm @@ -21,7 +21,7 @@ SEND_SOUND(M, S) /datum/event/apc_overload/announce() - GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please check all underfloor APC terminals.", "Critical Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please check all underfloor APC terminals.", "Critical Power Failure", 'sound/AI/power_overload.ogg') /datum/event/apc_overload/end() return TRUE @@ -33,7 +33,7 @@ /area/turret_protected/ai) if(announce) - GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please check all underfloor APC terminals.", "Critical Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please check all underfloor APC terminals.", "Critical Power Failure", 'sound/AI/power_overload.ogg') // break APC_BREAK_PROBABILITY% of all of the APCs on the station var/affected_apc_count = 0 diff --git a/code/modules/events/apc_short.dm b/code/modules/events/apc_short.dm index 9560140c2d8..ff93b081dc3 100644 --- a/code/modules/events/apc_short.dm +++ b/code/modules/events/apc_short.dm @@ -20,7 +20,7 @@ SEND_SOUND(M, S) /datum/event/apc_short/announce() - GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", 'sound/AI/power_overload.ogg') /datum/event/apc_short/end() return TRUE @@ -30,7 +30,7 @@ /area/engine/engineering, /area/engine/supermatter, /area/turret_protected/ai) - GLOB.event_announcement.Announce("Power failure detected in [station_name()]'s powernet. All APCs have lost power. Gravity systems likely to fail.", "Systems Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Power failure detected in [station_name()]'s powernet. All APCs have lost power. Gravity systems likely to fail.", "Systems Power Failure", 'sound/AI/attention.ogg') for(var/thing in GLOB.apcs) var/obj/machinery/power/apc/A = thing var/area/current_area = get_area(A) @@ -48,7 +48,7 @@ /area/engine/engineering, /area/turret_protected/ai) if(announce) - GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", new_sound = 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", 'sound/AI/power_overload.ogg') // break APC_BREAK_PROBABILITY% of all of the APCs on the station var/affected_apc_count = 0 for(var/thing in GLOB.apcs) @@ -75,7 +75,7 @@ /proc/power_restore(announce = TRUE, power_type) if(power_type == 0) //Power without Repairing if(announce) - GLOB.event_announcement.Announce("All operational APCs on \the [station_name()] have been fully charged.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') + GLOB.event_announcement.Announce("All operational APCs on \the [station_name()] have been fully charged.", "Power Systems Nominal", 'sound/AI/attention.ogg') var/affected_apc_count = 0 for(var/thing in GLOB.apcs) var/obj/machinery/power/apc/A = thing @@ -89,7 +89,7 @@ log_and_message_admins("Power has been restored to [affected_apc_count] APCs.") if(power_type == 1) //Repair without charging if(announce) - GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') + GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired.", "Power Systems Nominal", 'sound/AI/attention.ogg') for(var/thing in GLOB.apcs) var/obj/machinery/power/apc/A = thing var/area/current_area = get_area(A) @@ -100,7 +100,7 @@ log_and_message_admins("Power has been restored to all APCs.") if(power_type == 2) //Repair and Power APCs if(announce) - GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired and recharged. We apologize for the inconvenience.", "Power Systems Optimal", new_sound = 'sound/AI/poweron.ogg') + GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired and recharged. We apologize for the inconvenience.", "Power Systems Optimal", 'sound/AI/attention.ogg') // repair the APCs and recharge them for(var/thing in GLOB.apcs) var/obj/machinery/power/apc/A = thing @@ -114,7 +114,7 @@ /proc/power_restore_quick(announce = TRUE) if(announce) - GLOB.event_announcement.Announce("All SMESs on \the [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') + GLOB.event_announcement.Announce("All SMESs on \the [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/AI/attention.ogg') // fix all of the SMESs for(var/obj/machinery/power/smes/S in GLOB.machines) if(!is_station_level(S.z)) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 2ffcdb2acb9..e8a557ed069 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -14,7 +14,7 @@ "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.") /datum/event/brand_intelligence/announce() - GLOB.event_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert") + GLOB.event_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert", 'sound/AI/brand_intelligence.ogg') /datum/event/brand_intelligence/start() for(var/obj/machinery/vending/V in GLOB.machines) diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index 9a6ab6ca614..feba4fc1626 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -20,7 +20,7 @@ D.carrier = TRUE /datum/event/disease_outbreak/announce() - GLOB.event_announcement.Announce("Confirmed outbreak of level 7 major viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak7.ogg') + GLOB.event_announcement.Announce("Confirmed outbreak of level 7 major viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak7.ogg') for(var/p in GLOB.dead_mob_list) var/mob/M = p to_chat(M, "[patient_zero] has been infected with [D.name] ([ghost_follow_link(patient_zero, M)])") diff --git a/code/modules/events/door_runtime.dm b/code/modules/events/door_runtime.dm index 39e02e694db..67110810a82 100644 --- a/code/modules/events/door_runtime.dm +++ b/code/modules/events/door_runtime.dm @@ -1,7 +1,7 @@ /datum/event/door_runtime /datum/event/door_runtime/announce() - GLOB.minor_announcement.Announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.", "Network Alert") + GLOB.minor_announcement.Announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.", "Network Alert", 'sound/AI/door_runtimes.ogg') /datum/event/door_runtime/start() for(var/obj/machinery/door/D in GLOB.airlocks) @@ -13,4 +13,4 @@ post_status("alert", "lockdown") /datum/event/door_runtime/proc/reboot() - GLOB.minor_announcement.Announce("Automatic system reboot complete. Have a secure day.","Network reset:") + GLOB.minor_announcement.Announce("Automatic system reboot complete. Have a secure day.","Network reset:", 'sound/AI/door_runtimes_fix.ogg') diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 17c697faf11..555d26ee353 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -3,7 +3,7 @@ var/lightsoutRange = 25 /datum/event/electrical_storm/announce() - GLOB.event_announcement.Announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") + GLOB.event_announcement.Announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert", 'sound/AI/elec_storm.ogg') /datum/event/electrical_storm/start() var/list/epicentreList = list() @@ -26,4 +26,3 @@ var/obj/effect/landmark/epicentre = thing for(var/obj/machinery/power/apc/apc in range(epicentre, lightsoutRange)) INVOKE_ASYNC(apc, /obj/machinery/power/apc.proc/overload_lighting) - diff --git a/code/modules/events/headcrabs.dm b/code/modules/events/headcrabs.dm index ce8cf3c5d9d..04cba56c6be 100644 --- a/code/modules/events/headcrabs.dm +++ b/code/modules/events/headcrabs.dm @@ -55,7 +55,7 @@ /datum/event/headcrabs/announce() - GLOB.event_announcement.Announce("Bioscans indicate that headcrabs have been breeding on the station. Clear them out, before this starts to affect productivity", "Lifesign Alert") + GLOB.event_announcement.Announce("Bioscans indicate that headcrabs have been breeding on the station. Clear them out, before this starts to affect productivity", "Lifesign Alert", 'sound/AI/aliens.ogg') #undef HEADCRAB_NORMAL #undef HEADCRAB_FASTMIX diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 60fc5e4d39a..310bc8a1767 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -18,7 +18,7 @@ /datum/event/ion_storm/announce() if(announceEvent == ION_ANNOUNCE || (announceEvent == ION_RANDOM && prob(ionAnnounceChance))) - GLOB.event_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", 'sound/AI/ionstorm.ogg') + GLOB.event_announcement.Announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", 'sound/AI/ions.ogg') /datum/event/ion_storm/start() //AI laws diff --git a/code/modules/events/solarflare.dm b/code/modules/events/solarflare.dm index edd1726cbb2..fa72b6182cb 100644 --- a/code/modules/events/solarflare.dm +++ b/code/modules/events/solarflare.dm @@ -4,7 +4,7 @@ announceWhen = 1 /datum/event/solar_flare/announce() - GLOB.event_announcement.Announce("A solar flare has been detected on collision course with the station.", "Incoming Solar Flare", 'sound/AI/attention.ogg') + GLOB.event_announcement.Announce("A solar flare has been detected on collision course with the station.", "Incoming Solar Flare", 'sound/AI/flare.ogg') /datum/event/solar_flare/start() SSweather.run_weather(/datum/weather/solar_flare) diff --git a/code/modules/events/spider_terror.dm b/code/modules/events/spider_terror.dm index 36a8d452248..786fa2e28f3 100644 --- a/code/modules/events/spider_terror.dm +++ b/code/modules/events/spider_terror.dm @@ -11,7 +11,7 @@ /datum/event/spider_terror/announce() if(successSpawn) - GLOB.command_announcement.Announce("Confirmed outbreak of level 3 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/effects/siren-spooky.ogg') + GLOB.command_announcement.Announce("Confirmed outbreak of level 3 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/effects/siren-spooky.ogg', 'sound/AI/flare.ogg') else log_and_message_admins("Warning: Could not spawn any mobs for event Terror Spiders") @@ -60,4 +60,3 @@ successSpawn = TRUE #undef TS_HIGHPOP_TRIGGER - diff --git a/code/modules/events/tear.dm b/code/modules/events/tear.dm index 85976290f9c..ae0597e501f 100644 --- a/code/modules/events/tear.dm +++ b/code/modules/events/tear.dm @@ -5,7 +5,7 @@ var/obj/effect/tear/TE /datum/event/tear/announce() - GLOB.event_announcement.Announce("A tear in the fabric of space and time has opened. Expected location: [impact_area.name].", "Anomaly Alert") + GLOB.event_announcement.Announce("A tear in the fabric of space and time has opened. Expected location: [impact_area.name].", "Anomaly Alert", 'sound/AI/anomaly.ogg') /datum/event/tear/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index daa2013a126..484b3eb2e73 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -6,7 +6,7 @@ var/list/vents = list() /datum/event/vent_clog/announce() - GLOB.event_announcement.Announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") + GLOB.event_announcement.Announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert", 'sound/AI/scrubbers.ogg') /datum/event/vent_clog/setup() endWhen = rand(25, 100) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index bd57e680e99..13789771f73 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -872,7 +872,7 @@ GLOBAL_LIST_INIT(non_fakeattack_weapons, list(/obj/item/gun/projectile, /obj/ite if(14) to_chat(src, "
xy2>KA@IwMS2_Syyv<_`Am2F?Y>hU*}P3JoRN;eBQ;ASauSvK;MbpD>L4SXE?1d z6zOoI4^706T8m9v8QUi<#_`q~pSGpvf&E+CE%{zpL^cWUMOHLfFb5Y+2=PS#$$ zq#iTybyt+>`VDk`M3TF5}}#Cs-YnQS9NbCs~y &R9x(}TM zWv&PqJ-qVAz38X%{n0!@F~zBryLu7N%f}n9``|jN!3grBIJ)Uua@lwFFpiA8>#|7- zOhj-l3ddprF{wXbg;#q5toIs*J%z+Yk#IR39me+N`0K@Hb$c<8X@7zK2j53|wF@25 z_L%nFyv>HK&B(o%mV<+F+a;nsBfS2ln}VYy)M ++RODKlt&zcavq kL>ETX&&hqg2>ybZMlB z#6>!ejK(DSQ{kmXOR@Elxo?Kk3hpkAqljmRMMB9Z`_#1fL9jU3p^hQ&QMr +H_VNq zoO}zYM^82~>Klx8<*iR;V(If@nxQjP{1AJ+521^6vek)#DXSZEHtnr1V`==%T-Ygy zAXBzBqiLtU@Fj(%PZ>FnSLrBnXM|E{{he>(E*s++MmLDQ87t;=CE$zqw~HUYgSK*H zG8LHx>t3cib<8D!&!HSoY^ ?e%Qfzt$>xnX>{M5$SSRHCkB-YZGXMFb;}Rg^BD_D|o?qEr zLtrZNcQ%&he=T~Id@f!bn_w8pxY{b<{6(#a#z}fCwVsATT=lfJfI*<5F3~NgxkFDC zo*VOe@vXY_d_em|v+P 18GAONFXZ#H}U4>q))dPprF=TB^N`O5u99TX}W4=jJ?`#?p8EGhz#^==rb#9VzV$ zKBJoT+v2yhU`Pt`l|r2(!7}<_fknE#$4bgcrE0=ta}}XXdPhWK-KF(ne2PuEOO+&Z zA2_~c7nD!^fS0_J?q;K4hK6Ffy0Gh ZawziB)ar@{;nBJS8g@R YXvhR+=lrPdbcvI89jW5lAjg8Bie5~#xaOB{Ga+wM+*U>ZKSPrZc{a%@j zuv>L(RCm_M7kQIPMtx}gbT>UV^V+HhH9BR-(7|#tw=?;U+=$%4cdyWZ4hrm?qa;6R z(L-Mr>Gb8Z)pzXAub*lkwOXGPd*y!^Dw*(a2rn;iGS)JqOI_T`DU(4})qPE6$A9zN zw0UDZF}81g?0PTbnrCgaE!d#HsTguL$~$f9GVQc@{C>25UE*x)?cJmNMbn TMw4>CLXQH|mX8w>j*&h=dPa5F+iRZ~dKwsgjqh9n(abps;p6a9oSXGq zX=Ax-vEfyW!=s*Z-G_7fr>BRO I+YpaiT%LQglRq0Jf 6N5@0Us%{q~O(-|*~*;w5GWgN;iA zAWpR%Ck;NK-7=Aq)K6h0#d|(=D-jJ3`y>ME`s*-jMmg< c!)u$fbS{p5ss@337``c}DF61+@S- ^jk!v_QOF0Lf$BUm?N|m z_{Se_&oy>?+Kp@PQBtzsqR9{~f3;(Z5`M_$7S88rKD_Y||FXki%gake+-Uh2@xsgV z?6_&(@2Fs6?b!G fkr&x8GrlhS^J+>w{Q4E$LZ8+!xmxOw_rde?r3_mlC5(?9O* zJPWukz8^e)pnpf_WzfioY-HX0gp@8~85{RWr=F569b%msxaoeO)Jie6qT7<6{vB!} zsjFp2S^J7+uKCxN0*!Sa3WZwO>pJT8btb4Sk3$A9wxKh%{%=$UxHcQB7OswYbA?$Q z;iK96-L0ZkYyDRPHc{x;Q-gtt3>!^!rlu+ph9z9!AeHW2aEhm_J*uU$uHmHTyB38C zb8Tgt;3MnXzjDI&AK;}#j7YexTx?9cbqsWzf;u pxn1u{`eDZMCQdFPO?Wa Bt zAbLSfD)T5tCLY6bpYvW#{pgNx)ky*cUtrSCL6R}1Uo@?UI3x58Qh}#pZ;Wg50lX$a zSf4H7yZ12BdP9I!sxFV%@|it*$peQ>lL>>Sz5%`Z)IZb{9HyLx{@JTW>?hk_OzU!} zhjmk?x^F$0O69lg5+L_$pPw2J%R0!d$1w}6jt*Cr^e-)AsibhFH)*&*qtfaj)1ACQ zj~(k$ ?LyjT*^V&m^R z_Naj^EBIba^ozqJk4474yxFac=aVX71MtxT*+mn@<_NB%Z*`m#cGN M$CuHG_jy%arl|NdHR)9+pA^m{Fpw*1eZB!#(>QVGrRnQ zUL4x9*pNK+hga{`?(+D$ E{|}O3B$@ z))=2kCytnp)f4WVpYNU=cIxRqNY|7o%jkj@=^o`ykql0iRDXdXl{NAC#43WkzsX}a zY)PNm4|Ok(S?+pxuLunr tVWe$pjmw4&uzTnzA(oC V#diAVt7Q{XWx!96%vglO`jxZHQBEp9 QYF^Z$~A{CP1D)`2z zky+_1I^n5E{MjFK6FS-jyf$0L8oX|x(#fFJXy}h?udT&gT~kf!zQS<11e-UiOns-G zkyKVlz3T~XlWgjQOWwcib`|;8?eFs4vBIj4hmZ?M`Em!WRN?CM%*y?{caQ2;(M9if z7S9wIUAx%nemL}PKd*Co5{ZZ~%Y(BIq$W3bmH2ztw~qMp!{gFVog(?CUf8iu|FTd! z^6BdF?QtSG#mtbhz62%jj92AK!G|Il3{81I?^mUfT`7>Tg_5$_dF3ihk_QL+lq8bj ztEXM8Re8r7e 1H^UqD}I z$VOXbSEdRL4gcK(IknAu@wDV@a%(8F!n45XRS}XLrgv6D<&ofJ;2L1KjT4p&k&n^g z6xFeGcIlr=?{*k_u4Ov^8L}0`sk>+VLnf#}D@^vGZK7b?h}WK#Xw_k-c!g1gvEVYM z-dlV*J)|vpkRc^GhhZ#lf4>7i>f3#M$9iY^5WA#Q3HV6``l&FqbFlnud6=bE81Znf zTdu}_MsjjYPqN=`a?8^Ck^7F1__S9OFNs-4A7A)l?r CQ%GmsP!GqHwTw)aSMKAUBkK2fmuV2DdeyQCmgaUhk2Dtln5|d9vy;l~b2u03 zT0&C$m&aB{x-Z*)J2)1RENUC%xE9dl5>>bGM+Q4?l$;M%%YE!k>G<9L(aCbfFNwVk z%E;aCvk7sJNO`Km$63f+MEjDxB1a#zTaC|p)Crv)?i}~%n(<8~&}(lF>ueXjsd`n# zR>M%ipjqZ~P^?2SE8RMj`Hq?Sz%H?`r%IE%CffPxY=6TLx_ir^ITUs~v`a2tI>H=_ zcb|t(oi0@!+)7gML5bdqwdZ@eB6(}hlKx3LV-EhwfW}_G p*W^r6Qfb58p!DD>H
JZd*)R#!P8ITt-g76p?r4}8r bq2dizBpf ySnpN`@6yg@zi8a}Qai(D;dvoG6&sF+?1=l4l;iSBzvXuWe4 zLbF{WJrEY@Y+Bo5xPXiIZ|={fpD2>D+)L;) yGyrcfOvg zw@!X!>Fo3)b-&Rmvcc4UV+f&Bn)1uP=4`T5vIL%Ln!fj>?Axu*I|j>hJM7;3>8iB2 z&)na4d7M9=3V*{53(KdP|8YtyoTEgPn>eEyWkioQFlTm%?w2r)x}A*e?)5*FjNJ6i z^_$^`O5@E&U#s@c@|qVWyd1Vy`!q 2kDEkF z{fYFSmvyHjbjS6FN!@x _NY8T(W6yBpZ%(4;`@M)iA*yuSqw%|4t0^=v8msWAU zye!4x>pX((O}gzZ0|$CC0X8aghsECQ^twtJZiX7W%K?QIzr1yKNjA~$oeq$Il=%8G zUcWByib`*f^4mkB0k*YO&g|buom_nO7!Hvi=vdc5ZSV8 wS^P5ntcsl2$zvdiIQv*rD#VK6n4tfU~9;-%8rVlq#59W-jz zij;Och%=kfFh6dPK|*!#gPD_5`{+2j6H$@KXhYTrPKF+N&k;i;5Pq9~_7((n-oCJj z*7NXR&Tdih54> UqM8m`UNn;;X^p3Pg )NYP{Z;CFJFgYpPSk0%j7(79$3_@=V%r8rC$K8Ak zWu#_?<)+}qz|;YrDQ~2U_HfS`H4t$+M*d!90TK 0fJjt+=IKjCxJkMyGvkkSbT9wAh^3jaA$Fsci{K8 z_kOtNez rDyYhfih~8&*`B=kXB-MqF|{Y4_aG3iC_3E>s8Kjy7dBZaUe-_19@ K`4Y88=d$Ah_y%4x6Nav_@*y=kSUWkivO4 zq8-Co|3Oh5X&>5s!IBJi$ioGsY(hZFe~@fgYoZ+ocmZjhGzjci!uf#WnxQ(re$dkK zpl|0vb0}xc*gx$a8$UimAJjiewyYa(ok||G07b%o>PR_^u|bg_(9cYo;AI+Abo>e= zP!|Y<{@wvgG73w!oUnJ80tFF8^TmTN5P^15f!R{QIU3=n7U@);Sv1L6bVU^wJrxYS z6+87zkKLs}ppQye?e ^;PLVxhL0zf2FB1qdMir!MvO>wK&&9g|1a$~N~00w zVi80#Z@A$3f*1TB7odYc23S1bzjRU{k_8xIQGamAB?Y843XL9*O$x+$e{|8>RIlDT zpvNN>fQ`RM1JFf*Ho${6I~FWOo117DOxsE5)W_OM>W|E}`7=g=uRA+hfv<-G5)QVa zg<&bnm9M=ug2E@F{b>5<=b+Ews{rf3Eft p}+cVy^{=8y$!9Q`nOqNBv+qO5N7Zzljv9 1Q&6!*<+K>NjKAYjK|4oiMI#}} zGF_3Z!Irc+%80ZDIk7{m9oe}PT68&8#DMeOfIa|u2$8G<-RL{(OEQ0S)(%o<^miSE z0mz~+$zri&x=8~tM5UvQkVO#y6#OdF7+sW>EDmt#Q$paw5CF{OImqED2vKx^tb_DJ zs0bouHkPOqts%1LdTMMRFKtfjgeYx+c&JEMYD_dQHD&Awm^KIYQO4>K00PTW9@>sC zW5F0Zq6GkBT47KaK6wYJ@ql!9Y7AJ$0tx`@gmI{%GDHEfGBS+uv08npF(V?9IsTDg zY0Bzoa42Qml#C2(e5|20W5 i~o2O*q;x0ze;UhmIE%wlSs!Er4kO zKqtOaF>HN71h5=K8yEvn#n_=GMqB Ckv8csA1s{S>22d bQ}OUVQN-@DqO4G ze^k{>SwdlFdQQ7AAhe$#04WHw=Y1v_{gcl$AW$oA4zB+YX?Cm;I(|T`A*yH&meGK8 zL98J_Ly{2?Jd{QQyoi+F&}F14a{%vB=BNPq{mV1Z`_CxJ7$MKF@GCGth_67T=-^=1 z4bs?Xu*@4#Io_9K0bsBtBjD Vv6 zNfz3k2#7#mpbl3Vkbu7B?YKq&1rtEu4qPkwe@jMCAh{Fr00|jagc?uvtpVf}4)N#5 zkW~VhV*Sqg2iGxNr0eI00oGSZ0bRV3IWf`FuQKB%*l083qP13mI8*A$kBt|#NXj13 zGS38o%AO$rpVyf~k#V5+#30a@NN^}%BS1|@suL=04lY1u9 0n-9K0}c^SsA9i7 zW}kuw`W_4q0ORL8`n7;Vh8OTF7~GQ@^AT_r;Cf)a0n>*11JOYXduxP{85;{kOb4nc z-9s^q=rMpgaK(VeZ;e7>fe-NnxR3D>g{^Bn6!ES4fuIg}`M^4Xnj{Y`{%ZyfV@gmY z0_Z*IA7C%y4T?2 ;&iqTPA)5*rv=L5``o_xC)?>Z8JMt1&I6h2Sc;LU_b(L)I&Ii z0+c_7s9`AV!Fa}Y4I}8IwNMzY70QDftXU_Lfwc`pacKEOvMkUSXi~SX1DIT`VFl#` z(gfg|WUGOuya~gHCQkcJAW#ef0x17EftiLhA3Y%o(<2WApwFa#0Q(+x--pfpagjbs zv0#~OV5$Eb2mr|V39L#)z$-Gec>e-qXmSED_#S~*k3fzykPZG>i$J@r#}mUpK pu=OG9DN5QMihgtori18l@sH6NJ01Qm` ze~SN}%VXXDDgYyaKztAWWXT#4-Q`&6A-DfP*7jV*yh{c|3T#~OpY#1g*Bii@kJ9(V z2WtMI@c**x-*fu!?EZh2us|+JOCVf9gB4_YX|r#T-`@g@pMyq#g>M9eH*HsTC2;;i zF+vwbNDIKS%%{u^WJM%%eh8~-4X2lx*+7P5?9lM<7X(5L$fQ7HUYr#mtLKav7Qr?M zL-!w3_CvhwH<=Gf18ZN)X @=)M0?=&oa0jyXFT>XG2pt?7xpzp6G zFu-PbYWNN-uW;W*0&DLHh!x1$z*!_a5+EDM?f=)YGxaf(f };!GI#b7Yn^E|d Lu{2oR>i4po2(B zDL}tKBEOMAEIjXVdC@l!N$t&_fsj9R$$k2Wh=R)Y 6pD&r8iT(i}zGOb2bL2;f z*dEZD+Op!id(h4C+0FIY2^>~jc@-O(Ot(1DaK4Yq!uDGjyCZ!tWP!jA%}#MnNJp@m zDW&?In4w!MYf-%%ZfE`M1W`dc9d={S1a`kgrTYmlakK~%ChQi&SFlON!eqR(f&1;m z&Rcfq^}IJ$w4(5h$Is56!o8|0+k}{Q8Tx_8#|d97kOvcbtW&XLqv>&!H4cSC6XNQ8 zH^vv6Zp|W`d`)y?#_8ba@a5Q^WTJ2qc$q>~|LM)q?5UcwbGdr7_a$U9hG#3_E|s|6 zEZt7Q^uTj_WjAZ*ls*k2%zw{GUk~oH%X#5+H#pDl_Z41EHxMz9#}u2PP%{ddQip4l zHx_5dwWORj3Xs2I-PLN)Y9L5bh|IU22`6V8Q9c|;v>;oB4xd5){7^rwzCO>lB-gf} zx3dGKCJMUvMRyCh%xsO4-wk?Cn g+Nmk?NWipuqy{^$y$jyt&%A$PdC?A@ArRN>wCbP}hV^||7mIHLPMHE0W0 z+o&7YB+ToLE_{;t5pI4hIKCa%;%OlyLYG>5hoIub4_9r=Q-l>=_H?#?`sW*a62d$C z7gp8I?HAgnA>Vd7)ToKZ _ z+Oab~yUwc_a*K;_ykLgR8}$u!y*aagy}{?LH`^w?9tt%OvGtplN$Sf#e gHdCxnxWr{P9<$I-v1Mxy&@H~Oy)>qva3rx!Sjx!Zz$ znJ_^_KbSlRJ!-i3EzT2^dPnc?xLi@MLp;hRJLk>3hj6c_gpLS(cC}=i=^9HkZdbP7 zs|X2-Z{4r^`nDAiCQ!e)+x^?;kxfKAJ*m_Bc13dM79V;fG0a?8ldV%3@B$=}nC3^q zyOb?VPT;k}T|tthbVzqi)Z^Ll^7gW3V-t}hjd!G~E`6K#7M2_ut4bCm|6Mni-+!b( z`uYkxus6M>*{|uOG=z`qTdzmO!RV=3%O20P%dF&VbJ#W%nM?}w>*_{Q-z?lV1g+`b z{=RW%BGWb#H(A>OX5S*fxd+G4N;-HgqdD1F0^MC9?Qf7Q-? pn ^@}RBvxv z^Kq@1&4dRTAzvg~;5kkMV^!=cB}I3^Xm-NZcXAmdC#l6Iv9aAF&F33AnzYD)MP9vB zT+9s5biYjJ=67tfS~TC>d}QCQTfK2RCbBN;9-?RQvb^>&I+~vnJoyw{*qDynp}(J7 zal0lM^}_=%>pl8=);6zjb`#c#K54hF>Z;!*$CUSW>J6N=$)4OvYN>)gk-DRSe&wW- zVig6y{~pMRsfhF9Y2my^J4NQQ{Kja=K6Gu+tw>65A$_vv_Q->n?L&SN)z1kAySv#x z^Eou*F4>iXP}8Sh$N9S;ObuC#^5#U9&9kNrU*~gbW+AG2y*=xL=i6oXu6k4ao(;o3 z_o;TV;~U5F>n`L0_N`AoW$@$>Wz0o{7{G%wt*)hGz(lkQHE63= *?wkUCbB>>Su^Qzh5t6U zwD<`XU;U(JmNQx-KJS)YtZoBd(nd J{+ILprS9a -cD*);+&{Mlb~TyWcZ!Jm|C(ON-A_*+oIqobs5}&iK)gt@ql4bjNn_ z=$yfgD2;BW^XNbVxr5m|;-{BJ1hjdg7B4TBTdQk~pHr6XJhi%n5E33;vHiNgo#4JP zO(6jqbx))>&5*XBJ$2mWu%bubRP;_lkzi_sj z){&1o_?#aXmTF#;CAIcSr&;Q84KPluQeP(1e0tCO)R{m89T&Yawr@sktp}Z=tfj9h ziOp&VoieNSE!vizRPb{U@eo Gn-@JDERGwMlS6(kO7mX%89V60 i&wPfNaG{cg=t;n@d(>MC9wF&O1l*KB!bP$ 3_oB-(YdHBMg+V5-lkrN #bzxZz-V|;v{tz*vdr1 z?goP%?}*yo3_1>Otf=FRAMak*SD!bq$L@ISGTmG3H7ag4q*)-_-mDpGcTb-@LFO5} zyH8fdu^5MzdZkn=e{#IO{^2$MR-D@E3*CLE$(t%Z9@%_bX`D*8#xPTw)I-yxA3kf_ zZR;Q9A;b1=p8BU#OARRMa~E;v5?8)%{afJzKFO)!+D$(sY~1{^673>3J}_>r`3bYR z9X>^SidcKNmK;E+Ja>epqsQ1#l+8P?U&`nGgI*o}`-`u0Gfft5_UmW6{b<)4>f6jA zn`CV_#04NRO!u*mNNHnGhKyc>TXh7M?6!^_hf-(jp4cG%IQ~Z3CmxQp$%%Olr+f)H z7tZ`WL~gD=>0>xYos)yTe||>c?Vsq|>iek5H*+mP7xvP-KV18s{Y Rx{j%Y*=r=2-%9lbC+iG-FP(2G3Fs$w+xTW- zp>*CTN8Oa))2p`R?>nj}|C|V!yR R~`g$i{L!4%<`cPZw{%*V1hsf^q zUVlwKp{SPOtYkt*=VLIjRp3;MRa#WfPdtL=nKOHrrmK$ d&;nTB~limD6SuDvpDaL0xC1w@x#wQ&B#1F~6YKs^pj5+#Gm9x36SL92mE9q5FV3 zDgHU;Ews|YnQL 4?!}V7G*)D(^>&%$=U8Xoe+OGUGC9-u?*! z>``&A<2a&ZroD4*G7g*05(~ceA1X&`xNF(-RV^F!*sK;=ML7N4-J_zVB=QQr&2Rep z4t7T8|JaU=Dnc%eIqgOc{o_~f1|pZ%%?>lfTe9^v2mHBhgyOn=!Za(A6EqL25l=~v zs lRd-^)yy2TPYG-`g+ezqWQ~vSL);^qxvgl|%Zn75EeAKfiI1AHv22R@<6#{w# z$1rcbTIYUECo>qYoW0pxLsyMQOO2b5@UDirEkfCAVnsi4<-cA7HNM?c&>WwJo+%{V za9;}wyc|~jmo1F~_dn>y&)AibB)6=6H9YSZ$4_9=MR;c~4B&F_ikumJU2JkEsZK27 z^{TgyDxCMJ&q>Jr5D7`ZZ0aO Lrv0fve(bz$LUC2WIMs)0v0M-y(hBsEAn-^5n7;E{uc7& z`oc20LCfuj*JFt=jFPHBO-k*FO3mtUFQ~EII-JUZ;QTexVvYXcOUw_cu5mw*Gt(=; zjXR48p eXCz3gS%Q%xzCH0e%ZPaVLA8Doc36P@GiQMSRgCkG7K4#U@DcO#y zP8-d9fn6U#?~E|HhDD}ZAKkMWGtS}bDX+8ADif&7N&2|7NXa_Xu_2cxL)i!NwLgpG zi6_l6F$E&J**=R8BP^~k_!Ummr_m$#6LUJcO8inU|G4K!)Ypd)k<_i`Q?coR!{)J_ zb8YJZj_-pF5v|WhAS>p_UUX}x7ls8}t&T(l>qlFO;g((>8cJ$XdSR> z+Hxcr?31I5sOrmP<5<&9TR+lf8e*~vw=-_V#(&iLr@Hz|Do+ =l0&K79 &^W=FoI3QMHhj{^8WA# VGc`sTG0_+I{;e6B}a6O^m& zoIh=G+j(2-aGn+R9JCcQ&tqLfy }iM1 zAHz4gM>Z`?C$87**|X6&2kY}(B6X{ltv$8>cu2?BDaX`L6Ep=| PPp^bg7)x+`{YXi @Y4)~Eo^0+<}Sf}qc7DYNRFADt kN>J(b|UVsY7~*W0^R zuiW(^Nu$qOR+DNr4AWG;L#-ESlv5lx*dp)lv?`=|($XU6vYI}T^1Tmh^>-IvbRcnS zl|_kZLb#Aep0Lhe;l?(P#ZGoO_z=r8HFeerEe~}WXL8I<*6M0_cD#(IobMyObQlj- zj2E3ma)6=r{p#gkD2bhiyH%r_?efLa&pIS-z3ad21+88;1%oX)+btPIo#Ay>XR*lz zhT9X(SZvg^Z@{D=U)&?C#Ck4s&mccNQ@_c#J88%zzgRqsIuc$baT>tAcT?>X>9@|` z&R6ADhY}*#SNhCzDmjOvU_@DduqpzZySe65b10cf4#U>w&8HGZ__g1MZ;C(fb>n|$ z6eMAo?yxXQH@Cpt60W1Kn@1jj3F*}5^y7~ ^NiqRC60kQbK^p6%VSlL0C(L1gCKpwn`oa&z2&0>!2yZhW+VHAEbUjRyIMT3 zggwiLuyTlXI=$4ixe3SJ&lrJ*XAxcnc_)YpZIg^Y2A3RxG#`eRR?Q?F#qmnyhLIa} z;z9%w^s-AA(z4Lk7<-C&(roa$V3c|}^4!`Q-{SS%(B`QPS~Jt?*E9D~l6NS00_=<} zN_RUx6GW{|S$%hj0cN##=5|m`B5BRDiL-_(t*|QQcEgB|ab6K-P?R)>Ghbp!z1-2_ z={MAM=NXxuK20-gpJ!Z=tr3>Cf+?pv&{C3p`~uF(&bYbZB$C3=^J;G!h~~MZ!njDy zk+_S7+n6k6(85< ha&(AFcQM9X;Nj^*gw z8FOW{6XG?Ie9F0XZ@s=nxPea4?`;8LFQnQ%&a!*Lk)a1ay|Gcqi{y+d_k{Bb(Ue+s zq5IT&z>4!y6-Q0Z8jp0+;702@o5mS6eqKUC%F8GUX*`qalW+abnwTdyhRaN=2+-9N z>e1R>7cDL*DPLDuoU2J%3?8ivdCxmKuVgUZzjhK9ym~he4J>uT4BHp<*_%w`>Tj1x z+vX2&8jP5Al|DDi(DFayLZy#M=$?zUOL5K2 l221t2H{Fr98Cu9A2u7vkzFGvQYln+`r^>J` z;i)xQyfA|MTe5R8B5ywF5kwG|`Fgl7CZT@KtI4TPiF!dbN1ruD)qUVK2r1l(`BfOI z_hT3HH!U^ZccE5`KSyR6l%+QyVo-L&J%s~uA`3X}@EoP~I~kGz%b1vTmm@w6qdIXS z6X+ZV(Tg3gi^79ZrHlH)$Q0rvw3Yse$+Tq`_ar@ca{?!=-m2A<_CEX2o~9X|i!=Vf z%weB`3WL#vkg=%@xY+dm&H}P&!uWhDX+h?7()ebRKmUB@p4ECa3cb+B^z1k3R1hBS zTRc8ehlbDkw4QHh`x1*om0owxWQ;cRL@X_n3!e7 GrL>r znUK^r0SNae?AG4Zl}AX?gxiNW?G`~rb%J3i_{8Tml+J)v>#c-3BihblI(0-Tbr^@q z4LF85K>whVVi7_-Kc9EJmT_dp|NGjfLnQFn(2uXC=tg~Gx)z(O!|sQd+xS^%l`bRs zw>RY_W_qFUJ6rj@(%EtU&s-CNauPr23NX#hRqOVUeZC6kpPQlNwyu9-jyWmT7xG?k zKYY>9<_^pIn$2*7nI&=;damKBc~-TVYWgnVz_2}ndP;^ZA^G<+l+$$6mbi`=h^!7$ zr|UzqitK}bk9 S&Nkrns^k1nJMFT)cLHzx%}?BR$JZv#y-!1G3VCmDwn3?$esqke zT0Y-eTUctA>sIQ;?c5g!nSAQ%DJnvv6}Z~_lkU1YrgKH9QfFc_pKbThk_xWd#G~Wa zb6xD$@3td6tHK(h3AT8RBj}0mZ^56Uc%CLHL%u(d$j{#&Y*XEe(SiHDUIe?yy@Dld z8%85q|9euKUUp4Z*ZDNg&72bMA^GHvJNhNX9yW(lP^Fm5DEYIgS1Kl3-A+!QXD6_r z8wSt7RJJ=7DnUNHEobGL?X4q!Z8!Fe^y7{Hm^3a$5W}fY==7~jx2^|Lh@5E82}<{` zNbD3<>5XlfNzkTqV?%ULT}Q&gbJWpy > zn#z+5sBt2!He*aFB+nN7qFp(P=&O#>?Fr*u+Ks}wyIUJ~*sp8Hgtt-Qb ^N?0nYnT%|UC+^p!loKl;!gJ^O0ceDP1^ktpi9SlA1w1?7D7g) z>A?8>M+vGg_tA3@*5)T-0o%}xCPj`N(Q3J;dU1NMCgyWTn6KPO=FzV7i3zyNg-2+w zJ9kVDUe8u1B(#xgr?B_$oOvz>*$hCv1IB5cplSw}9$S&%KS-778cXKlp*}bm)JpYt z>Ki|D!SimHpE6ZTaAL~f+tPaoMXT(BC>7PornES|3f0#unPt`Jyn7`iI+r(_vmTh* zV(UIT+$(&6EX_W#HiAwcl}RE_NK3Eu1f8TdOhfT~7KM3K6P+(CBUk8U4f1G(PoiE6 zWhUwkq*Trv4+J)Z8lQF^ogb}Fao2o{Qu6x_{ncAA0a`%lL83q(IyhL?Uf|(E)t+j5 z^Q5q_a3r)iq+>y;BK&6Lj=F`?Ep?07gf0!@I)t8=BAPeFubivCAE7FnpsQqiMpYw0 zPcWW&zExDHS`<-g6Jv95;!zLDS9|}vu1>G(=uk9|zJz4iQEuhzr`*Zt{(E?1li(o! z>6ng{nhNY7Rp}gZtV&|sa56O%TvchRxS^$T4iRl6)xU}Bc{-n1r8TNt+d}O|giX!E z6i~4{bu6Rr(KNQ3x*?o`cN2aiUdnIw!M7=Pe`dfChH0LF<@EOu2kO8)(r_00;~HDH zS}-)k5?i}pB+=D(s(@801Z}elEu;O;VAokbs(O`$Ur#NkWa;p)oTmg%f4v2oxG4-g zeIUSfs1Dhw^TNrznutj-S)04&*dE9N-j5S*pmBxV!!mj6Lci5~g9ont$X( IZPm8+MOwWb6?7nrDOMW-5R<{>xL8^T{4v8ia&ebuUv;DKT`i6LF`t47P zoA=y49-cHklCCT) +m%$tjEo!Li_K78=2 z=T2c)Fo8Uqk&J9sWk%0YRwmcE8XBLffLB%AtolLqja(fvA)=M2RhUk?XKv9r337Hy z^MV7}N~A@5-TNe3%-*}Tp*ILlo#JTaEtkHK)-T~dWTu9flKLdfi)vWD`C+^wZ|mQ# z-<6*@@v7TD9g~;;kQM60lg6Ywamg~4vedd}7Dv>Kq0Y?N>&+@1oUcB=piwjW3@*O^ zTu_e!YDuzb>TU c(pY!qQ_Px9rY%?Q)+F zyWDivP`z7^nf ;a&ghZo-< n05048a>6vrU#foGzRA zW3Nj+J lq#rfwJ@N3OLU#UU0#aUhcJgeBJoEvN2d)jg z$!XJHz&TfWAD3&O&{^BQRbSN9Bu-*mDFSU&GN*;v<<^!kij%y4mZ52k39a+zXr=}? zK|>xFw% |{HsB#kSYx}K LzPEA^fUPZtmDLF3Eaq}rO@Mq$ix2RpYiY7^lT9|zW#_lQA_ zo(17TYv7!-dF_)}kH!xaJ@)dZ)?Eh_f^OR; ~S7=7XMa5H1@g&@v zX(ajEWJ8~3l?DuUI^pJd8gaEr%#2fv_2VOHJXSA9)6f)enYQG3%S?^1Gr%9PUpgW~ zVa8+o%oP{aHs3y>%k(A+6WkgGGIeW7xvK4q3EjDB_1-wxLAxt_Sk*}-N`GNf@CJ9M z>&&I8Fc~7r5>B3Z`O QB_c|81{J -<_B)NlsFbU1eG zEmoKMBP-H98GdU&t)$vA*5R9ZEgHzHheG|EnBlfBYL*L`%|n>g_GBmsi@K;txy>e` zZ%=JuGR3OlS^7mc2t+c}etT3^Tgs)SZo1a|z1!`Ym(-jMK}MFX2oCCSA`jZXuQxN@ z+*hegPT|t^YeyZh@L1C<#P(cV**H>GvQ{gMc0VOBTy~>uO>)&l%=6qaFB7+4gfsP3a}r*_H`Z zBHgWLx}BYmR-4`$j7^mMZR`3zem3Ktc~-8aQvZ3=RD*RKQu10VJ$^01#O Tz zU&Vr-dpA_>ZtWcGU!EQwp7>YQ-#^hqJi^T$KyyC4*_<21t|v8UBkA>ZOMmvs-Fb5% zC7iDwzbh8qXGD*lW7e|26;kb6oBn$-_^%TyU9qDC7xAtytA^O1u;rFf%_^+~QclB< zWrdr&24ZaInq@wM!&7v}e%G0 UgTTMtd5_@AhDgs;FUcN%_CY=38rbHF-K7P1D@NYWEQNu5o;eP*vC&4 zuOXHVtKF90{bTReXeczhwKEV`Q8jv$(CN%ub18j_fGrBek^viuDWFKuZxzG2-)f~O zAdD;EKnb-XMqI6gtE%Hu!qhrrbm~>P48w{1lBRZ B4v6wVVpK*(ectw9&sP8^@h zkd8$QF7LXMl=&wL$OQG?to)*9flRj`C(M}P$4Cm_F2D+!b9y_1HJDBrd3Ujdi^vx- zLVZyY3EBvzC!CE4Od<4qb9ubO=5OUSp@$sf2I|CfVQ2Qa4O wfLDh}=A *|;y|!z)W(M2KBy;d_-g()zSa z$YiLFDP*(1uJ~F<%YD&y LL67xLbreO;4z3+;IH$ z`tMs#810G{Q(q(X_(t|!eY8;z8YgZ-4=T9!h>LcyFVqOvOEf%gb{)e+y6Ma&wI| z7V^=6u%p_eE-^jP%&q>KD9UIFdme|wty=o^S$1>{q7AJ1)NsLVL{Vly7$t#oZwn_+ za-m<>WBk(CM1A^MeOG4Ur0Ez!=mIC#+43;&^T;?p^vP+> } z!tlTin+oEQ(vUw3lQjxgbptnTo038^dY7Xy6aojP^#Aln*q$vsZSKkh7qrKdY$o!T zuwLI1eN^@b6&hnD7gD_O@F`tN(XEI{p4+~N<3K%MncEU-+EU+fXSBFrSgkYfUS@%a z^>!catcfqL`ugU#tU1(?symBf#fXKpnAsYC>{3E*=DVh^VQgv9^@4A&Ug?cDns!$s zgjp%(7N``6p2Z4qy V;Tk zX8PfYawW#X*wNSFBnU#aNu*qiXnsS$VUuaT5aRa7z%_wbSo*zseBf0mCx=FIRhqV+ z`%G$6bBH=@AJt1g5L*&!%plx!O{x5RI?CUUSZ>jcvim0A=Z L&*+78hijD)#WO=lA r^kb51Az(bv+AN( zmI6koSq|ip0hPg3>BpF2zZTTwa>}jty&JbD)e?NYX020Q7%YEkzg)|qY@A3#c^4;2 zSQtSdPZjo#`EwfDh)PsKAcVL0nn*?r-bj{;qyk z#%=I-!2r(WN|^3svfEALhftv(JX#tTd$rX pQKo)HO{i(}%0|x(moRaLS_45L39BR0h73{oP$pZt$YgHmz8a zGr6O$c!pyEYL41|usmyGSIce^(r)mD1MxXqk syQ51t QZMdD?f+dLBK4{rJRcy(;qg* z8s}A7=1UpLOX3-k#u?;kY}(ha8f~wtA~=L&c3I|yy07iQg=Qa 3W_P|HJB}xAv6mYg_{bG ze0)1|xN&(ny5cZ!es+I)eTYKToA<>xhD1n89`DLjrp$qf+jLOj1Rq39qeb>>bMB{p zx!W8TufFz_tH`I(+j!YCEKU_g`e?ekp_ ho9C6sWAN-2DB@sWBiDG+9Aq(;j-n`3XgF lOyOu|C&%>u9oI1am_X_zZ* z)z8oO^5BOS@Bo*y-XD!z_PO%n6HP^Zj9%G0J-_p5#?lEQ)R1hkb!xt5COoB(s3)_w znZ-%43Md@zE;o$0zAcbL!=C9FSH ER!u=s* z(@i(^%|$r#f-z&qPEd_uGk4}vZDq1vj|^YjitldvfYtq?i2YL+NYe{g)L~}w{p65? zz%<8f$J?)NPtrGsv4GR1x>M(9>NKtmh?t;|&Pu9$DN(Z=HAp08@_L3hGu)~v$=~dL zvwK=Y##dY7T(s(2Xve4o)ojwCZ&03KmJcomeh-*ci>UdxzU$hCUzv1i`z*e%qtBXG zUf<*q>_G5TY~bqfqL^dk2S?(P46WAW!CjYJp)&4i_U*!~857IYnnKyF)peFqDdV HWTuyHp$$;b<(aSrfin1%w@>4EC-pcdi;TwcClILvORZRIeW*p(q4GPmkG@MFCIUHTX(h$g{ZFRThde7V>luVZ`98aMlf(e9L=V} zfww9!BNQ54O{bpjMXoi7-{+~Cja^N6(f~8zc#iTZzIU-n>M3&dJ>&ZEk1BDe)37qs zMe!?eApMDonyTk2cVV$>Lxqd8frNzj _^y3XCOw;k$b-eUL9CsEg zIo*(N=&=|*nJSpF92`*a*m|o9597OCLz*9a=_uT*LPdIT M1Xo}!2604M6 z==r9;K{OeMDqdtO?DYv@G)vRf-@uMPCa;N*A$T+cLD6QapwIju$=i%))LuT+?UZw# z)-t|l X7Wtl_@#)_SyXTyHUTvQyaWtHySPf1} zb2Bi9{uY~poqd!hB$%61lhlR?I-+1RYZxY2LkO$p Imq9_!Ip$ij4u{TX`a|XG3?Zd^k_j^de({(c{DzX! z^SM7-`s=<2Ctbc%%<)&(8f(DMHY#l4O{bTgy(z*z@FF`u7ia7jTy~ad3lptHZu8Eg z?B}P~qDSm!`a50s8qFW7t7qblY~1vfznOg$+)1qF;G1^xknTAeHrr?&@tGu&+op&+ zSGy`2W*hZ#GLq36xXO2pwPVJhj-O#xW?=(8FG6i16h76&GiPD8u8bfiT;HdRz(x(Z z9aF?=@-(YV(y3(5L>{H~bsfxY@>5c+bU}_o8yJ|Z#j{t$i=R>YJ`Ecayk%4LX?zjk zJNA+~dG2gP^mK=yb3OX 3-Z}ro2df zP1f(@^QT&qg`ic&7hiHCd^wVtgN$${OvS>a-=mmslIMlh5j0*n{2X;Ur+=n+*2wB& zC{PpO8CaR)kXOXf^<9C#Qj}f4yXx(WAm?mmq}y$q7B$+$S5XU7^!f@M6_;J$kd6{) zGH1lqM3>C lEWvbElwfF0MCw(}Mvs3)&xbbr4rbl6o{`1z;-=&yW#Vgj zgW}jVRck%C#v$Z;Tp@#Ua$T5ua@!%!X=;^;TJE>FLS}x;W7q1UKC7cbqhx-#E6vgE z;E66z>77r*Zd6`ygI7g^Ua75CkP??V&pBK|0l|_e2hV?PC82t}*3iaG*5{JgIzQ(% zXz1Vnd4S)4-zWh8tPwPV?v;vpadUKfa&>ZW4lgM#uf4teTn%lmPPYHcP4KdgBo9L| z$okpZEgKjcS9BthPenECDVKYOFGO?qgAw(86U_bDIv#E@6HdSV8ha{^t#9^7vTI4c zNkf>#Wg;|{IC1<+K i*Z?t z*s>iR`hx`neAvQROnGrm{7vv(v|dq>jeK(M^YDh_h9cANZ6le5lj{xoiv`P(qf>|L zZaad*)CEiB+hnr`J+dOij5BqC>rt!<0xq=FmegSbpN#Je{rlm9WSfUb{%;1hzN0Cq z8bqhd3(;^Wo6JK svinW7bGB4ah@T@} z^>Px=PJnBO_Er$Str)Lpwh(r!)DJtSgL?BP?aHd{en~8rTKLhSw2Na35s_Tjs@;&U zyxnHFUVs%T`}F*zMCwmNxE>8p3$%-hXj|J+^~SiZ+ZpQ?-6Ok76Yu+$CarLO_f9P& zaKNSixc2Hgxpw!%r#cpDpEutkJJIZ{Y;JCQGTdw%%0I@hdfQOjSFq@MEv;|$z~ek@ zw= ~(hLgQS zmNS9BC|QiJrwqG-X%}h#xSTY2w{Uh%t~INrLT#sT+e5T%d(blAQCh0((*t!CQesCO zdybV=RD<2U->+3+LF@FX4#WJGE%b7hlQrY9)VG6cg2!>rmt_tn?w391g!<$==W_Go zv?Vk~8SS)ZvR>EsL?wGwAuV=6i)VDU-}B;%hp|7vYW FEz;tmj7&V;g|VgdZi#&?vs5zH(RF6yg}iCES~Z<3+i0(|{ACvN zHQl><(oRqLzO*2wdbcr;lovkE${CZr#`pJX$sXlGd&yMYfvJDiQyc5pZLTA#gaRYY zVrpkM@A`her6HoNa4X1Y-0#(s(35QQ9LP*J!iYr(Ukv89iaX*BaOpWqX^9RN(U3 z$LsJ^GMzY{py77SP80LEqbc1O51*BRppR#4*gJ(M3NJ4>W@ADCq({S7{FyfQv#qcI zAzN6zDKtR ky9}f#T+86Jzzd3*uCL FrH+a_ z9agwX3QdurSH4=Cxvh>Rfyi0Tm}Rm0u1r9lE=jH?Ky&r?(FX1g%$oiWQSTkihWq~i zcTcJ cruLS$irTez)ZR%6L5RFsMeUuKQ8OY!i6kV#*YEs3 z=e+;B|Gm$-&vmZ*c|D(xs}2|88T>9RycE~m8!+g8CpySRk>_^c>%%$~lW}7kyF~uZ zD|xr?@$h^nZ_Dkp1(}&EYF3gP) B4Z~d zO?AeNHw<{^q9aQU3;ob8V61SW`~5`rgf7LKf^@JPk;}McwrHAcjqz}}U1LK_yevWU z9>_LZDK2%2=^rMHpz}s91rfRJ(wJ#^mnU?k(7c!J{hoKN6%u$M2L#(c*FMY-5R&_0 zI$;{d&V%R}veE{}R}_DFrT>i(;Yto!*2G%>e1k^U+0eok$SY^m1EFEaQGe1*qW0e- zVvV2t%YZT`Gwn=38WE(<>@@@fhTmmLr)eib>dcUX-(J0k`+ znx9-PlPzSTWxMNa1Z{j82KyjMw~+mm$+?FQ>p%7so2rg}iD~5Vp(dv(2Wv+Y57PTl zL%5^)t0}85mo+0Zrn$7)%Whk1R}7zvyi)V*_08u(^JDOXifQ%@{@2qnLvs$)d%t~6 ztkU;~1Xnq#Om=e&n;?c+*8D+rA+N MwACda&n;on>D|K2>c zVB}AKGz5O>dc%{A%ZR$o23%KNTDM?l%)BaJd^2S_JMnfz{^;_0bdqrw!aM`SC)o}H z$$@v>s|5`r!d;cjG6+OM2i+eq4rpNp6bVx2(|#bdPcB0?-G<^DUy3!Wpj?9yP779r z6?lB4am&tvj^%q#${$CW8%3V0A4QUjxIdv9{8znje?QG?0xZ_N%n1*KWR4@MQt#b~ ze Q0WehGcnz<_qc~&BvyQ%jMvv+8(Q(DSGC;a zk2Ztyeyj4f(KsC6o*Cvsr&vE}Ay?%D)YgI}r_qsRj<+gSoR7F5QKl-FD6&0{i efz}jOqULpBX^zzz^x({BlK4oOm(QBDE7{&Tfwt zNaNb1wBaa!otgZ$PeONd>)!;lQ;7Mz+TKsgwcq3qg}nJPQCwjsn-tLk`}ObEg<2`s z8tf!p3xy6ReV-ceO*?kHdu2APq;T_%5vQ4zm_fiQa>qeSNUx=pkE`um;B+y|mvz_& zm6s>Bxo70rYP4I ktX2YD(_M+ zmPa+_PW_!owG3Jrk34C}G`*qm`$KOzmHk?fQmM?OD|sb=$YZpa*O$oMvzMG+?Zs9= zu)Yfn=Q+CBCS7SV=0c-po!c!yn~5bM8kSP=UAt@l*z`>HK^KP%YeUR&`yEQ^Ci$9D zSWU3lmNo!=`03a&<-Q=A)VeGAm(gH1HIr;!M`3eHumwdY30AWJb17x(Z!s$ &oW*5e4;zzmMOnWfa;2W*R2c{0e(>dgCGb uGFG*(Ik9Syk&f-)aJm*TBHihR z8B;*Dc=^4;E^byR-Pc>9+5NOCcX$-PBb?-j1sRU1tMTTGE-1fcHquh_u_w{izZMrcWBaQnOklE+`D8UO>@Ximnq=G zM >cgoMftllJBU= zX|#dsB}R4@r*xlw$&xJSqSsD2ig3(;RHxx L`C0NQGk?j ^2 &^QVrh9_{)+qJiK|D=}lz5(25uS ztyeQVr&ccHswN0+$}GAKn9tQ87jj`6(%22l{Ts9d?!AASq37(a;rLU*`prI)D#@+z znEgLr+|>P?&!wWW->b)G#<4y{MYZqP+F Oy1M>HNkzeohJew$zB}yz#L07?#Q9|imswJgJ&mC)|;<`_v?zroz7351e zSiW%m)#fH)OHWxrAy-*r@(nH-@!AL~mOqCa&xKPzmP?4_L6P0ss7)E_I1#uBz`FU6nIsZKr2V zCG>{cC3{rD@}V%8n2KUnRQYYEb?qA~$JNlB*l0}QM%d=d!jNImQN&MQ&<@i%>cP4F z2U)>#AT#kqh59^)Y=#`NE}AO@cN(bOYX0;7o!c$`Y9x!!m%3sOUn-=l5Kkg=1&R2# z9lxiG1S%2yBA8*3DVk8m9G9J)I}q{MOC<1zD#X&=AnGJz+_!WrV)}6AXl#Fa)+QFd z*S!;sRjw3BX>`3<3a>ThlUg>Ao~3!^^p4!ic26z 04WS+22A~iuv5uj0XYl?}ckRjY6jn763B<>{=Fko^Pu(V>!+N)O)A@F> zKmPUbR|^SeL=e%V?vMS|FZIEQ%oaW82;#5v0qJAtlZPo8T$EUqhjG;ba(=YTx&aBC z+mn8HE+#r`pWXpSNe{G& M)*k>YL3 )&$j;}x(|Bmy!iy8T}-nO`}*)yVRUju_a$e0Q7j__~Z zyqn zAgcXkHT$12M*$-j3cF zH5&d_XiW-C00yY*wwVrBakMpT6X2Bth`4pINZwG`iFJ*lT2Y=~JIL=|Hi}!;phs4x z_p3~hLTbC)0foDrfhQTh8tPa~QQN;*B|mNM(4aT2k^3M6XSxazpsVddAG*v-XR0&& z^BXZ1HV60%7>cEV2{%$JMIv%zNuV|F7R!3F=iy-i|Ke3x@LQzYXZIH?4+FKj3VaUi zjrkjhTwT8dzDqlcS!Xi6!dlXUcnFutkNBV9+}q{%Z}*61q^Wgk20ua==UVPo>X(-j zXXN^qpPp^Y;Xc8?Tdyv2FyK+UB4;lgfMhx`7tX7hv2kJU`@ebRGTvVz9v=>NqHf5s zl6LLJY3<`~TYGN)XjoDLapZ~LXZi0&4(a~Tm*?kZv!yZ|H8?{~76Esj6oslaio#$j zRriGWFQ)RN=bI!X(?QOm*S#s 2+)=8ZC2MClC*gA*ZyYlV+Tyv4o_>&RS?fULR?tclvRiz`7Md^z> zUP_%% 6$Vhv50tGDB2C{LbFuD<(7mziGQZ;>LN}(w{ih<*NsncLE>Hu z^2{05@K>(ZdLf5@{`j)~mu-9G5EWAou}oHmH zuJeRnYyZ`;rzgm*$C8`S)Wy=CqFZyK>~Rx?-DQFP8E#<+LI0$-9?w~Zbyxb22zZEY zsdCtl6jUgK@`GOMS?AupQhnei#OcL$zqCr|P3X@pdc0WrQZ ^U-m1SE%f;Wy+Oa6&zu>^p58mW-oTG4s2!cF ?d3#po98od}7KX2d5nGi|di zRT8X2c``S!(|KO-1UcZL)U@Wjogi4a8?rV`H>z0g?dl50PEA;oHm{{LM)lVO2}&+@ za*~w2rNj!P&umq3-XN2CrmnKqJ+4q#8vgq{z}%^* CLeOEg|{m*b{Vo-~V)ysJoEkR2p6Y*8AO#2^xgtJM*{*lEiuGg+c zV>z9Wo&aOpu%Sym9m OM;2(^ZO!1e%po2jV{fC z*!A%j#K$j|e-&Jt^(l |DoXe0$ z?YTb4+x}f|O4w;!YP4!qVJGE3$@wF-LaZHJ-x@CoTTmJ;ll;eiv+lT3`w**w#I~xy zWJAS{mI{;^S0vIuQSlPBlErPJ$Fx6h$FhF7E^nOg7%1I4C`j5Sn639W+u5m89IfZ? zfR8s>M~ct%n}fF_-%O0{pHmQ8w)r7D)r83iNp~!fY@D(fF>QrXD92&r+nGZNUaV;I z<{R`j>R@isW_{@xCgN}leJ-06XLQ6UH53k_m~Qkc*0LgQp#I8}*mwhpHPJVdR;-~r z%EtUYp Hx2lBP^3bIXi(COz+Br- zK~9@rNMXE#x}?Oc-kO?#_0-rHDUYNlkeB{i#=DsV|DS7S$yc8A&^C3X^d!VI=2yf@ z6Hd8bft^_nL8=8g6rPv#wkveLG8hVi6LFo5A+=5-_LY;l^#ZuSi)&wNva)=)TcWl8 z?C$F
7`kvi4Mjt ibZGbgd z VKZIXr1d^=A }euDPb(V-PDmryph8x?llrTkB^j{GJ6 zHg49;)h*Z{vx#0KvN PjH61FFz+|1kOIJvkotN$R+=p&gCAVPeI&zQH^helw-x$YWr3+?Os`3ZBKFkKE zLa(%=M uGz~Qv#g$3uI8#nf#}w6w>J1Hpw5Z-W<%A?g5LGlmMdj?0UJw2 z4n)n-=o*8!4R7boQN1YW)3VLO782P`k;w)3PD5Ol(mZnCQj5q?KQ32%HADKGsj?O$ zZ5=d--*rTV4=_D*x6K$ygqmetj%D@OWS YdPMH%Uz34ea^ABzVp@$RH8-*pNw#C1N2nB@_Ur-rjuDMfHO9*xjev{1>$ zMS9X4aNFhD%K{@nV%Z|J!i@=2cfwLR46|4FQ~T-kI>EpGHiT{xw;dWPgZOFHM(DrU zfzpq1Ai-~+Z4XDa2xaAem!Zu1*84;wrDP! 2!hrC_$?fOa| z?|vO4@y3aM-&HX?ta*tRtB-Jfa!h;9C*E+Tb>-naAK=5b mh$q}}bt&~{h zQT+9Uw!qDx*`;^0uiHT49_Uepz2y?CEj=?8%G(C=w-9(u!X4e pW4d6{bvPPw} E;&?fbf@&y|q4K9@>Fb zrj@`8aE%~t2aOPlrrcg8&eli*d#EBb5ZuUAWYYhtAwSm)QBdZ_!0s5FhjLzTIZHbf zoO%X?AL9_8Iy-(!B6^z%EDy1}e&%La1U9n81DA{jSW64#0^c_9%zn%F^1!8dm3{wO zJ|)-xT()+7e=6!nwkwMDg5`K%c@C!zqrBYikQ(U#Ye4LoqrGaAdiQzTGKVP!pECJv zF}3M(66NlJd 0*~U!{MCQ+t=o 3{~#ri_~yFXcI#v zmtXC6zHT!n#b(p~zC10T=SLVMxh9^SRAtWNJj*T(2^zAQD0*7{liSbp7qb6IpA`Pc zHsBROoL$X|!t4wpcawM}2p<}DJ-kQWoXo7E*a36b)rvL?R66I-1((>BlPr0#+cjAO z>5+x6Xd5$bD3I#EI9;EP4T7^17XU+#Rf}xn8N5GohjBEK%wyNfC6j-LC1#gb*WOWI z8c?Q@;;z((X^R{ACDL}tpJt={f3b(o|LF*qPmdo;=nptxHHd~L5^-hY^wWXZ-CJ4S zAdt3ryq*l3WxC(9cmCEfCVCwm2|Kip2v>_xZaRV%snw^QS3tW)OGX8u-)$TsR0fCS ztc^xUlqcqZgcwV$lM*iTu)DEEv8deMxu}kIdn 2 zVS{Mi0tL0r7G1ZuJ5d!Hn%UEH*VG5S#g^U!_a3TJ*C)TGJL9+Y$B*f|lGkm Lo+P!8*nyl45g(N(z3m4ENCKx8PMZ4FM6dB0OW7?>uq2U!nE(yxxH|1W*q~` z@{*_j#PTRt0$ZElJKcYv{Gl4_Tnd_$8ppr@lmwdsyjj;QqGKv0h%dh=6E=_?*;3Pg zocSozxI9}#k92|nt|N+v0=tO@Y)lBom(r}d#Rx06dp~g(#u35T-!gba$vRpIT{th7 z^tpnIC3mKH6)$AG^K8hP&1i#pPkwu;@7Vv)(p#l*Hsxmm`@$g;xVt{9Gss+1zTem& zR9BY&vLrj*x!K9W4zA2OM;yutv8|8zPy=YokB9`1InZW2=KUvWT0q})dt?D7fIZG+ zdbZ|mM1AE>q1x7L(5&rt ZrXocT zxkpd2BkxsN?yIW%OP*wSS?=HodwYU>ToFIWA@zK@Qo7`r;YJ0W{`P3xG5%%1-ftP2 zRDO*xSO44k1kzW_Hi6$un!gcUp&>SScKJ2q9MR*qS8Hc&wIqovi`N}B^S5+V5~tqn zw5ek=7{>AoJ37mi;t<-7OlL5FkMRkHx`G0&zN|Hp(`M_X<9lm{shvMmrKx1~;aZ;3 z(9q?RNL7S?y&1lY>a*BMaem7@Xm0`IVR~K$A C`SDz+jE65r%*%UW`)IR`Vio%w#&pgv=gO+CQpSvuxIoR4tU`R9R2Tyv9E0(p!V zDwLcs5sr%DFGENl*)T^*W6NSAeCn{~itT+GNR`H7C>)EjGnf%|+hIpls@d|6H(`%H za4hfKQC#*TwYlYPlU#TLYKERMnmj3D#-kXcisrLRG;ft17eR*us1N1aLBvd6!{?eN zNn}pv{IDD(kC^A^dR}h`+cE&wjjT!)5YLwVhDFUwQbz=5X9N`3ppqVEZGClt71 -EX@}9eaMwqJB(ESL7qVbTS)3+KQq)_u`%p`2F z!)hH8V!Zj*IHgqAsd#Q=+=|-{CF?Ihk=;zEVFKAsyRMTGl`c3jWe6j $E%tO%H? z$tTaiM-V50*|&kTJ-)~KYZgED;AoxD6HOsBm6CN&L%s;Ct|{j-WqR-z@<^}5(0WZ< zq|ic2+s*5Ha66Cx&^<%ayINatbE|+J_vCjg2cmD*sx$-5yh^)QNldjl1F1^oWbxDa zh6SkdEbfgzt*N~zrgQ3i1-Q+YGTOJ8TSMQC1qCK!g&u;lKFJncT^%L7x9rWc;z`<& z{P{Q47<4BT%MbR9sC(Q~X;6uryASPb{X#CGTrPHS@L1B7L^iG;H^=uS#`op-t~hy) zn9bT}fT;2VV}KVAU!{tAdYRsITk)NSMWII*& +ofc{i-nV|j|Of~8+A+BUD>u=FNp7lT(C zt**ciGbyU1r|zd$yd_Z9b#@QzVY@iQ&vKoz!~H=UD7W>ZR8{Uf&M&?(ti6 zWanVtZ!X#HQ>Og1V@BiZ0g`lM4l-leMiS4`Vm0V(ZJSZ&2Jg7?Zahg+#$2pz&s`tr zdu;*jFeR3tBS#g1S3Ia53W+Q6%2N|CrbM4ma9D3U$hMuQ>rUGuB3fKUCf72>Foj^b zl>5}g{$ r&RFqh;V4+F9CuOE@6EemCHHYRPrfYBLoA6>@Ra )>$AO`-E$|(}>I;3SCo`0+xfG2PMM4stK*aVytjr;80=@+$C78a_sM@ zXPEMh5T2pY*R(xKEI$X=_07Xzzr+VBTDox{VWG*Cg2jGuT2~}sUkM3~UA8OS9zghi ziELGl7r|SsA-6;OXi`~zKow+P5YxjAFU?WoeG={m2XwfB?P~dZg?#HCYB>WhdQty_ z6!xYaN1HeJ)~kJKHm!7TprU{-GmlI42OGX9k60hBza6n H8jMoK4Nr N-F(D3!xq zKh`Gv^UOWNtir7}qFcKEJqlR)d|3YWXLr6hEZGmUFs5aHY^n%jN9V9&gME*K!|2DV zbn=LNe++DFYG}0VEDKivVPs+o)>s?vfKs}aLZ3Bn92RK!ZV5GhE6-@Ii4UT;+>1`2Y818Oq z-?pjodvzxVqzpW8DuQfFu=l2Qenr^s;+O0NqQ{@10z!FtddKc^jGavjny;U965*jA zf3B^2o^D@bl+bTJSHL@72B_yedKOz77oLwjo@9J&=wNSr)>j`1gE4a!n}vgiXcCFQ zzgE hDe(+U)vomeH~mg#Nc>tOt6O z2qn0-RhFrNH_M8jSb7j%AZGh7CAI#sP4PP(^~&FzmP~DdjztDVor!4+uED=V3WRJp z!nZHHM0t!% ReKm5t5o1QxBcR$L%&zt~5mzV&js z`Esk%nRH5{gV}G_=-(Rex7Fi&O4l>x{4&f~@@jG0J!ny|G(|#%OxL$)-hK7lo!Q8- zJ7KrS>rIpc|C}rS+2Lzb7`#*O_mrc0Y96ta88zN-Qk|4zn8D{LX!#d3lMs0Sse7g# zjG0>BqW+ifum@s>LCkIJK0QkuR0y*DSDjx0^T^bGI!Y}IdvJW#aC<1wk++*QBwL@x zLlme*LwACh4=Cx*Q)MoNivr4jIY8Og0~7J0H7(YzX02pU*fb~J@9kKI{>2lnFkH{` z3$0hrQ@0N+lsm*9{P$02aAp+ugADhiTEUHpSKRCkfrP(nRsDwn!cTxDbzMrE@v}~x z)dtcb*uXOLq#pS8d#kELkid(_aZgx{QJK#JNrgJvWX6;FTNJsZw=~{xLiIKvcNe;? zlJr}jHH}?BPGhJ`RS28a(de;Xd-+gR!E{sRq3t+!ElS+k(Y38^(8W>flhpAtGaA2d zA(*OLT@iLJD{I=D?se7gNw0P+^txQ8J1&g=)vQf!stG?3!KUBPwph{`f9(C%?`rFC zr6Ut6%l3We(%?nAKGi{XHi7KtcUiJ8yjBkvjA7$*7&~ 4)2ZqnreT+7-WA^)bOrG5#T=*XoE YD*vGRlXBqck48-zTCY2L)nG9DWS3rducZF!hn(5pxmTKtv$;Ck3{U) z=gXP;0o%v8 7i S($$?;cXgoF}Z= z$1+1n=&gpab@zF+J-fjEhJ21j$#mm{?6nk?x@vd19%Z>{0LSjkQq|3H4^j9UVKm=K zfh8oig?Hk6#Bcn@@aJIy#dI9wduYd7ZUlcbI=s*!CmrLDXaOf4bi4~i7OWX{(d1F| z;jb03gICn3Kd#+<_9Z>Y-ysDO_ci#N``O=TU)4-TC&NNnX2C6C`r)nqpkw@1RbtuX z(G6wk)a)suK)!21QUV$}$S 8WigMVxXEgD%rkze@3ivi}#Bn%gRg@XZJv&oc*(V^y`q)3y zC@uSX&)fKH>PzavOOR7H$1NXWB;F0(i5ZYea=dZ8mU=_+=GVvr(Cuh#Z~G}_%X3f9 z0CPd&I@v>I3q}eige7>I>rj9g&NCKq<8j=m%VsawcXw$US{PmSuqe*tdF$OmnDu73 z&*38<15~O70GHL_VfB {eb7{dn*FhwYt`v& z#^hr4e0b*nS1``t{- t?Pa z6Y{!E(|Je4+nSX_$BFWkLCfZH^c%{gDa=lofuPXMpugjy?e4&^FSd2CP%9tq!5B#@ zzB!?SOMOJv%6M!LY os{BBk6b>)YCRsVtumM@j-LK Z=c9(vs`kL_!RxOkd()`F%?_HzRsd9{VrAGA rUIaW`cxM0zdgK+ ;vxCRxM&;R`<}+S=b7+sVt>fWdOv;IyEN zHbdI>4!LVC >KD=m{D^Ha(PsaV%Mi#nhz_E6u*5NPSx*~-< z9ppD{R4M^+(T^DR@Fee@oFa~Mt0l3yLPSAaQ}K;fuQTS7JzglRt*?fn@>bs2yM#=M zj%UmWlwQh3IpX)#9Z@PJP;6m+#eZ0O2g^PX+-iVgZq4a9FwwBCaNj2LVdBP~thP*L z=y~YCoMR)uNC&ke1UXxHwXz|P*D@f=;&I$^%L!&PV#^l{B5RBPR7Tq*C$*Nr=L1%m zMJulnP4;hx@oOB<{!VwV9>Y8rV-Hh4>HjqA2Zc;+_I|5Wy*1MXM9l_TJcZ>4d-vI} zo&xW3Pa2Zj9gYgz63n5OVnPGfmbI&`X5fc2h}ZpTeNn2Dp5}xzYO8T)%Y-lf4*i`L zs)KjGUl#c7<6!(Yk8yi&gjL<0R(4*sV792(_{8&`4n* ppx@r*ANA6OP@5Jf$T}nzkHUfti`O?ra^P4Hh{o|~c zNCE$u$X^YtWzY}r=(Yo!SS{F)JCPW7)}*3RqQ47yvS63FNj*MXDZzP%omjAT9d^jd zhWMvFz5ZEe?Kk6idWEuAn3y`xhPqY)AOI@@v6lk!N;cm=l1xFEC~~!Z*IYS%=yy=Q z-mM!O#CsA!O2!JLcnjZgL(vBJH=Yf)> oNWnW(;)iisJCoF~dGcpEb#re9DnEtM9APWY>$>|XWR p zp07y9&0Ze~y3+BBZ1Mrsp*j`F%W9Lm{4P( Kv2H^hzfs?FkE z-Y$_xYj1N+|A!qb{*Y@;r_#e>j;KE0R4P0rT7f(Y5eMIy2Gz5@GH#EO>3k0zJZx?5 zb@#G30(n*Fyo>3_Srob4(A*R9S)LpST4Z)>l*06%!IRFDPbGeGBj-7d?UQ#gMfnxS zH9@Zuh+kH?vde*)F>w@>A*HPI0&)uf P+Yhrv_uW(kabC1Gqzp{ sxO+_6HB?9(m+}A+YKQ|LvLVccM} l`mqQV&@p%AQETPvFf-F>+*Yctcl`}xG7o2Q zOODV=9Nf99)S|TP_Qb=TShm9C)-b&a$G{0(I`!}KuQFqL`kP_h5_f9edTc-oJ-$DJ z6R+#olO0}LaIWsMa a8brmB)WTa>vS_4 z+=M|H Pu6~&k9<5UAI4oK)-WH|XJ zRdb`RjTgq+ScdPMC+sFhhjh77>p_OZ9LJ$MR2wg`K_XFEq+Zr;qcN7nKK{3?%lc-< z-6pN6nt_M#F@_=!DVV1vD=+XX!P6ae;NsW4DjT|Fz{0s->-W`+;WfLc)9AE8O zik^T6n_`<+2|i(vNJdoBR#}XKh*?2N+)X)h@oUro{$c35s4PX1j}0+3J|VmPSFPun zbql*zdfg{796)RTRY9 }(I&iOw0nr2|x7+s3 zn~s`m1{XHu>U-mNvEZ7T3APmo0kUlDGuRkCxuPREdsWpnxYDb$U5ZfO_s4_IRmZ8f zZI6FP`URaqlh+#TC0CVo%C|POJhS{3^H%mMObH8td)COhW!1y&Or=etg&L}EuT!5= zpw+UercU^N`?{B ve-cAOQz0E6$;~%QEQzw?uxj{OryS?bv&-m$+s>zl0$Q2-fO9k@Vt6$)oXF zrBN?aLUquGHbM3He*-Rde7j-2YC%;4KSsvKbclp?x%I)KL5G8}1HRT-h0dN{2;+e! zz6gLSBZ1%b2}~iVYv~qtCLY>=*U`!fu@N_jP-cTXvzsQWP{?a2))$xcw6lOT51-z5 zDIKBF&UBvfDWA#(_4`FR(5r`z{P)#Tp#yydp+xKu5jTtmE91l<%KHYlyIX?NN5TSo zGptj+&AhWiHV~L`R6&A9Z$7hTo!>h$fRtByt*lI`IH6g8zKF4Lu#m6U`CZpEL7W`D zL5ye%=(wko6*%_iYDDm%{fL5$V@~sd_<#~$TLd@)5hRoH+4HHzpX?O$421rvaHuL< zeb ZCakY$s=MP! 2minltY6Xa z!{fUhnPS6bf#dl4lNR>cRMCPf>gUSDCvcslBT(!3AGLR$nNtft8H+I*PqF-M-ub*{ z+3L<7A*9ViK4aC8{b 2?>US=O+yb%T-12f_L(Wl9kDw~Dgf