diff --git a/baystation12.dme b/baystation12.dme
index 7d61c875d2e..361118cb4bf 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -548,6 +548,7 @@
#include "code\game\objects\items\weapons\RCD.dm"
#include "code\game\objects\items\weapons\RSF.dm"
#include "code\game\objects\items\weapons\scrolls.dm"
+#include "code\game\objects\items\weapons\shards.dm"
#include "code\game\objects\items\weapons\shields.dm"
#include "code\game\objects\items\weapons\stunbaton.dm"
#include "code\game\objects\items\weapons\surgery_tools.dm"
diff --git a/code/WorkInProgress/Wrongnumber/weldbackpack.dm b/code/WorkInProgress/Wrongnumber/weldbackpack.dm
index b0a9f87b235..18899745c9a 100644
--- a/code/WorkInProgress/Wrongnumber/weldbackpack.dm
+++ b/code/WorkInProgress/Wrongnumber/weldbackpack.dm
@@ -34,13 +34,15 @@
user << "\blue The tank scoffs at your insolence. It only provides services to welders."
return
-/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob)
- if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel)
+/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob, proximity)
+ if(!proximity) // this replaces and improves the get_dist(src,O) <= 1 checks used previously
+ return
+ if (istype(O, /obj/structure/reagent_dispensers/fueltank) && src.reagents.total_volume < max_fuel)
O.reagents.trans_to(src, max_fuel)
user << "\blue You crack the cap off the top of the pack and fill it back up again from the tank."
playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
return
- else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel)
+ else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && src.reagents.total_volume == max_fuel)
user << "\blue The pack is already full!"
return
diff --git a/code/WorkInProgress/computer3/computers/crew.dm b/code/WorkInProgress/computer3/computers/crew.dm
index 2d89b336f80..b3ef9398bab 100644
--- a/code/WorkInProgress/computer3/computers/crew.dm
+++ b/code/WorkInProgress/computer3/computers/crew.dm
@@ -47,7 +47,7 @@
log += "
[life_status] [damage_report] | Not Available | "
if(3)
var/area/player_area = get_area(H)
- log += "[life_status] [damage_report] | [player_area.name] ([pos.x], [pos.y]) | "
+ log += "[life_status] [damage_report] | [sanitize(player_area.name)] ([pos.x], [pos.y]) | "
logs += log
logs = sortList(logs)
for(var/log in logs)
@@ -75,4 +75,4 @@
if(href_list["update"])
interact()
//src.updateUsrDialog()
- return
\ No newline at end of file
+ return
diff --git a/code/WorkInProgress/computer3/laptop.dm b/code/WorkInProgress/computer3/laptop.dm
index 0fad61af82f..52d996827b6 100644
--- a/code/WorkInProgress/computer3/laptop.dm
+++ b/code/WorkInProgress/computer3/laptop.dm
@@ -55,15 +55,20 @@
del src
return
+ if(!stored_computer.manipulating)
+ stored_computer.manipulating = 1
+ stored_computer.loc = loc
+ stored_computer.stat &= ~MAINT
+ stored_computer.update_icon()
+ loc = null
+ usr << "You open \the [src]."
- stored_computer.loc = loc
- stored_computer.stat &= ~MAINT
- stored_computer.update_icon()
- loc = null
- usr << "You open \the [src]."
+ spawn(5)
+ stored_computer.manipulating = 0
+ del src
+ else
+ usr << "\red You are already opening the computer!"
- spawn(5)
- del src
AltClick()
if(Adjacent(usr))
@@ -112,6 +117,7 @@
pixel_y = -3
show_keyboard = 0
+ var/manipulating = 0 // To prevent disappearing bug
var/obj/item/device/laptop/portable = null
New(var/L, var/built = 0)
@@ -147,10 +153,11 @@
portable=new
portable.stored_computer = src
- portable.loc = loc
- loc = portable
- stat |= MAINT
- usr << "You close \the [src]."
+ if(!manipulating)
+ portable.loc = loc
+ loc = portable
+ stat |= MAINT
+ usr << "You close \the [src]."
auto_use_power()
if(stat&MAINT)
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index d29bb84bc98..a48f759de12 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -15,9 +15,8 @@
// Run all strings to be used in an SQL query through this proc first to properly escape out injection attempts.
/proc/sanitizeSQL(var/t as text)
- var/sanitized_text = replacetext(t, "'", "\\'")
- sanitized_text = replacetext(sanitized_text, "\"", "\\\"")
- return sanitized_text
+ var/sqltext = dbcon.Quote(t);
+ return copytext(sqltext, 2, lentext(sqltext)-1);//Quote() adds quotes around input, we already do that
/*
* Text sanitization
@@ -314,4 +313,4 @@ proc/TextPreview(var/string,var/len=40)
else
return string
else
- return "[copytext(string, 1, 37)]..."
\ No newline at end of file
+ return "[copytext(string, 1, 37)]..."
diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index c6078c10ac8..6522aae611d 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -124,8 +124,7 @@
Topic("breaker=1", list("breaker"="1"), 0) // 0 meaning no window (consistency! wait...)
/obj/machinery/turretid/AICtrlClick() //turns off/on Turrets
- src.enabled = !src.enabled
- src.updateTurrets()
+ Topic("toggleOn", list("toggleOn" = 1), 1) // 1 meaning no window (consistency!)
/atom/proc/AIAltClick(var/atom/A)
AltClick(A)
@@ -140,8 +139,7 @@
return
/obj/machinery/turretid/AIAltClick() //toggles lethal on turrets
- src.lethal = !src.lethal
- src.updateTurrets()
+ Topic("toggleLethal", list("toggleLethal" = 1), 1) // 1 meaning no window (consistency!)
/atom/proc/AIMiddleClick()
return
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 7d6628b5733..2fc7d0c8eeb 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -214,29 +214,6 @@
flags = FPRINT | TABLEPASS| CONDUCT
matter = list("metal" = 3750)
-/obj/item/weapon/shard
- name = "shard"
- icon = 'icons/obj/shards.dmi'
- icon_state = "large"
- sharp = 1
- edge = 1
- desc = "Could probably be used as ... a throwing weapon?"
- w_class = 2.0
- force = 5.0
- throwforce = 8.0
- item_state = "shard-glass"
- matter = list("glass" = 3750)
- attack_verb = list("stabbed", "slashed", "sliced", "cut")
-
- suicide_act(mob/user)
- viewers(user) << pick("\red [user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.")
- return (BRUTELOSS)
-
-/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
- playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
- return ..()
-
/*/obj/item/weapon/syndicate_uplink
name = "station bounced radio"
desc = "Remain silent about this..."
@@ -256,28 +233,6 @@
matter = list("metal" = 100
origin_tech = "magnets=2;syndicate=3"*/
-/obj/item/weapon/shard/shrapnel
- name = "shrapnel"
- icon = 'icons/obj/shards.dmi'
- icon_state = "shrapnellarge"
- desc = "A bunch of tiny bits of shattered metal."
-
-/obj/item/weapon/shard/shrapnel/New()
-
- src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall")
- switch(src.icon_state)
- if("shrapnelsmall")
- src.pixel_x = rand(-12, 12)
- src.pixel_y = rand(-12, 12)
- if("shrapnelmedium")
- src.pixel_x = rand(-8, 8)
- src.pixel_y = rand(-8, 8)
- if("shrapnellarge")
- src.pixel_x = rand(-5, 5)
- src.pixel_y = rand(-5, 5)
- else
- return
-
/obj/item/weapon/SWF_uplink
name = "station-bounced radio"
desc = "used to comunicate it appears."
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 771b43caa57..4ddfbffb48b 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -20,7 +20,7 @@
/datum/game_mode/cult
name = "cult"
config_tag = "cult"
- restricted_jobs = list("Chaplain","AI", "Cyborg", "Lawyer", "Head of Security", "Captain")
+ restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Head of Security", "Captain")
protected_jobs = list("Security Officer", "Warden", "Detective")
required_players = 5
required_players_secret = 15
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index fd774975d0f..8737b296d35 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -14,7 +14,7 @@
/datum/game_mode/revolution
name = "revolution"
config_tag = "revolution"
- restricted_jobs = list("Lawyer", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")
+ restricted_jobs = list("Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")
protected_jobs = list("Security Officer", "Warden", "Detective")
required_players = 4
required_players_secret = 15
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 0c0928dbc1a..7d7651a3629 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -6,7 +6,7 @@
name = "traitor"
config_tag = "traitor"
restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances
- protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain")//AI", Currently out of the list as malf does not work for shit
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Captain")//AI", Currently out of the list as malf does not work for shit
required_players = 0
required_enemies = 1
recommended_enemies = 4
diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm
index bed29b858e9..3a0118e9b8f 100644
--- a/code/game/jobs/job/science.dm
+++ b/code/game/jobs/job/science.dm
@@ -17,7 +17,7 @@
access_tox_storage, access_teleporter, access_sec_doors,
access_research, access_robotics, access_xenobiology, access_ai_upload,
access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch)
- minimal_player_age = 7
+ minimal_player_age = 14
equip(var/mob/living/carbon/human/H)
if(!H) return 0
@@ -50,6 +50,8 @@
minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch)
alt_titles = list("Xenoarcheologist", "Anomalist", "Phoron Researcher", "Xenobotanist")
+ minimal_player_age = 14
+
equip(var/mob/living/carbon/human/H)
if(!H) return 0
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
@@ -79,6 +81,8 @@
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology)
minimal_access = list(access_research, access_xenobiology)
+ minimal_player_age = 14
+
equip(var/mob/living/carbon/human/H)
if(!H) return 0
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
@@ -108,6 +112,8 @@
minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access.
alt_titles = list("Biomechanical Engineer","Mechatronic Engineer")
+ minimal_player_age = 7
+
equip(var/mob/living/carbon/human/H)
if(!H) return 0
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
@@ -123,4 +129,4 @@
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
else
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 50b17ddc338..fe569e23647 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -325,7 +325,8 @@ var/global/list/frozen_items = list()
time_entered = world.time
// Book keeping!
- log_admin("[key_name_admin(M)] has entered a stasis pod.")
+ var/turf/location = get_turf(src)
+ log_admin("[key_name_admin(M)] has entered a stasis pod. (JMP)")
message_admins("\blue [key_name_admin(M)] has entered a stasis pod.")
//Despawning occurs when process() is called with an occupant without a client.
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 9cd7b588947..c85599cf6a7 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -532,23 +532,26 @@ About the new airlock wires panel:
return ((src.wires & wireFlag) == 0)
/obj/machinery/door/airlock/proc/canAIControl()
- return ((src.aiControlDisabled!=1) && (!src.isAllPowerCut()));
+ return ((src.aiControlDisabled!=1) && (!src.isAllPowerLoss()));
-/obj/machinery/door/airlock/proc/canAIHack(var/user as mob)
- return (isAI(user) && src.aiControlDisabled==1 && !hackProof && !src.isAllPowerCut());
+/obj/machinery/door/airlock/proc/canAIHack()
+ return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerLoss()));
/obj/machinery/door/airlock/proc/arePowerSystemsOn()
+ if (stat & NOPOWER)
+ return 0
return (src.secondsMainPowerLost==0 || src.secondsBackupPowerLost==0)
/obj/machinery/door/airlock/requiresID()
return !(src.isWireCut(AIRLOCK_WIRE_IDSCAN) || aiDisabledIdScanner)
-/obj/machinery/door/airlock/proc/isAllPowerCut()
- var/retval=0
+/obj/machinery/door/airlock/proc/isAllPowerLoss()
+ if(stat & NOPOWER)
+ return 1
if(src.isWireCut(AIRLOCK_WIRE_MAIN_POWER1) || src.isWireCut(AIRLOCK_WIRE_MAIN_POWER2))
if(src.isWireCut(AIRLOCK_WIRE_BACKUP_POWER1) || src.isWireCut(AIRLOCK_WIRE_BACKUP_POWER2))
- retval=1
- return retval
+ return 1
+ return 0
/obj/machinery/door/airlock/proc/regainMainPower()
if(src.secondsMainPowerLost > 0)
@@ -639,9 +642,11 @@ About the new airlock wires panel:
else
flick("door_closing", src)
if("spark")
- flick("door_spark", src)
+ if(density)
+ flick("door_spark", src)
if("deny")
- flick("door_deny", src)
+ if(density)
+ flick("door_deny", src)
return
/obj/machinery/door/airlock/attack_ai(mob/user as mob)
@@ -868,7 +873,7 @@ About the new airlock wires panel:
t1 += "Attach signaler"
t1 += "
"
- t1 += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", (src.locked ? "The door bolts have fallen!" : "The door bolts look up."), (src.lights ? "The door bolt lights are on." : "The door bolt lights are off!"), ((src.arePowerSystemsOn() && !(stat & NOPOWER)) ? "The test light is on." : "The test light is off!"), (src.aiControlDisabled==0 ? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), (src.safe==0 ? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), (src.normalspeed==0 ? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off."))
+ t1 += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", (src.locked ? "The door bolts have fallen!" : "The door bolts look up."), (src.lights ? "The door bolt lights are on." : "The door bolt lights are off!"), ((src.arePowerSystemsOn()) ? "The test light is on." : "The test light is off!"), (src.aiControlDisabled==0 ? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), (src.safe==0 ? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), (src.normalspeed==0 ? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off."))
t1 += text("Close
\n", src)
@@ -1171,7 +1176,7 @@ About the new airlock wires panel:
beingcrowbarred = 1 //derp, Agouri
else
beingcrowbarred = 0
- if( beingcrowbarred && (operating == -1 || density && welded && operating != 1 && src.p_open && (!src.arePowerSystemsOn() || stat & NOPOWER) && !src.locked) )
+ if( beingcrowbarred && src.p_open && (operating == -1 || (density && welded && operating != 1 && !src.arePowerSystemsOn() && !src.locked)) )
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.")
if(do_after(user,40))
@@ -1211,7 +1216,7 @@ About the new airlock wires panel:
del(src)
return
- else if(arePowerSystemsOn() && !(stat & NOPOWER))
+ else if(arePowerSystemsOn())
user << "\blue The airlock's motors resist your efforts to force it."
else if(locked)
user << "\blue The airlock's bolts prevent it from being forced."
@@ -1248,7 +1253,7 @@ About the new airlock wires panel:
if( operating || welded || locked )
return 0
if(!forced)
- if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) )
+ if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) )
return 0
use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people
if(istype(src, /obj/machinery/door/airlock/glass))
@@ -1263,7 +1268,7 @@ About the new airlock wires panel:
if(operating || welded || locked)
return
if(!forced)
- if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_DOOR_BOLTS) )
+ if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_DOOR_BOLTS) )
return
if(safe)
for(var/turf/turf in locs)
@@ -1305,7 +1310,7 @@ About the new airlock wires panel:
return
/obj/machinery/door/airlock/proc/lock(var/forced=0)
- if (src.locked) return
+ if (operating || src.locked) return
src.locked = 1
for(var/mob/M in range(1,src))
@@ -1313,9 +1318,9 @@ About the new airlock wires panel:
update_icon()
/obj/machinery/door/airlock/proc/unlock(var/forced=0)
- if (!src.locked) return 0
+ if (operating || !src.locked) return
- if(forced || src.arePowerSystemsOn()) //only can raise bolts if power's on
+ if (forced || (src.arePowerSystemsOn())) //only can raise bolts if power's on
src.locked = 0
for(var/mob/M in range(1,src))
M.show_message("You hear a click from the bottom of the door.", 2)
diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm
index 32ed0d1f3c1..3b1700df784 100644
--- a/code/game/machinery/doors/airlock_control.dm
+++ b/code/game/machinery/doors/airlock_control.dm
@@ -9,16 +9,19 @@ obj/machinery/door/airlock
var/cur_command = null //the command the door is currently attempting to complete
obj/machinery/door/airlock/proc/can_radio()
- if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_AI_CONTROL) )
+ if(!arePowerSystemsOn())
return 0
return 1
obj/machinery/door/airlock/process()
..()
- execute_current_command()
+ if (arePowerSystemsOn())
+ execute_current_command()
obj/machinery/door/airlock/receive_signal(datum/signal/signal)
- if (!can_radio()) return
+ if (!arePowerSystemsOn()) return //no power
+
+ if (!can_radio()) return //no radio
if(!signal || signal.encryption) return
@@ -28,6 +31,9 @@ obj/machinery/door/airlock/receive_signal(datum/signal/signal)
execute_current_command()
obj/machinery/door/airlock/proc/execute_current_command()
+ if(operating)
+ return //emagged or busy doing something else
+
if (!cur_command)
return
diff --git a/code/game/machinery/embedded_controller/docking_program_multi.dm b/code/game/machinery/embedded_controller/docking_program_multi.dm
index 46f7538afde..3901591720c 100644
--- a/code/game/machinery/embedded_controller/docking_program_multi.dm
+++ b/code/game/machinery/embedded_controller/docking_program_multi.dm
@@ -199,7 +199,9 @@
//checks if we are ready for undocking
/datum/computer/file/embedded_program/airlock/multi_docking/proc/ready_for_undocking()
- return check_doors_secured()
+ var/ext_closed = check_exterior_door_secured()
+ var/int_closed = check_interior_door_secured()
+ return (ext_closed || int_closed)
/datum/computer/file/embedded_program/airlock/multi_docking/proc/open_doors()
toggleDoor(memory["interior_status"], tag_interior_door, memory["secure"], "open")
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index b8975feaeb0..421ad9a9bbe 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -189,7 +189,12 @@ Buildable meters
icon_state = islist[pipe_type + 1]
//called when a turf is attacked with a pipe item
-// place the pipe on the turf, setting pipe level to 1 (underfloor) if the turf is not intact
+/obj/item/pipe/afterattack(turf/simulated/floor/target, mob/user, proximity)
+ if(!proximity) return
+ if(istype(target))
+ user.drop_from_inventory(src, target)
+ else
+ return ..()
// rotate the pipe item clockwise
diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 98af795ca83..5ad0ecae560 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -436,8 +436,9 @@
-/obj/machinery/turretid/Topic(href, href_list)
- ..()
+/obj/machinery/turretid/Topic(href, href_list, var/nowindow = 0)
+ if(..(href, href_list))
+ return
if (src.locked)
if (!istype(usr, /mob/living/silicon))
usr << "Control panel is locked!"
@@ -449,7 +450,8 @@
else if (href_list["toggleLethal"])
src.lethal = !src.lethal
src.updateTurrets()
- src.attack_hand(usr)
+ if(!nowindow)
+ src.attack_hand(usr)
/obj/machinery/turretid/proc/updateTurrets()
if(control_area)
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index ac3b09ff6a5..15e243559dd 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -328,7 +328,8 @@
if (src.product_records.len == 0)
dat += "No product loaded!"
else
- var/list/display_records = src.product_records
+ var/list/display_records = list()
+ display_records += src.product_records
if(src.extended_inventory)
display_records += src.hidden_records
diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm
index f25f835c691..8d60a48a9b7 100644
--- a/code/game/mecha/mech_bay.dm
+++ b/code/game/mecha/mech_bay.dm
@@ -6,43 +6,52 @@
var/obj/machinery/computer/mech_bay_power_console/recharge_console
var/obj/mecha/recharging_mecha = null
- Entered(var/obj/mecha/mecha)
- . = ..()
- if(istype(mecha))
- mecha.occupant_message("Initializing power control devices.")
- init_devices()
- if(recharge_console && recharge_port)
- recharging_mecha = mecha
- recharge_console.mecha_in(mecha)
- return
- else if(!recharge_console)
- mecha.occupant_message("Control console not found. Terminating.")
- else if(!recharge_port)
- mecha.occupant_message("Power port not found. Terminating.")
- return
+/turf/simulated/floor/mech_bay_recharge_floor/Entered(var/obj/mecha/mecha)
+ . = ..()
+ if(istype(mecha))
+ mecha.occupant_message("Initializing power control devices.")
+ init_devices()
+ if(recharge_console && recharge_port)
+ recharging_mecha = mecha
+ recharge_console.mecha_in(mecha)
+ return
+ else if(!recharge_console)
+ mecha.occupant_message("Control console not found. Terminating.")
+ else if(!recharge_port)
+ mecha.occupant_message("Power port not found. Terminating.")
+ return
- Exited(atom)
- . = ..()
- if(atom == recharging_mecha)
- recharging_mecha = null
- if(recharge_console)
- recharge_console.mecha_out()
- return
-
- proc/init_devices()
- recharge_console = locate() in range(1,src)
- recharge_port = locate(/obj/machinery/mech_bay_recharge_port, get_step(src, WEST))
+/turf/simulated/floor/mech_bay_recharge_floor/Exited(atom)
+ . = ..()
+ if(atom == recharging_mecha)
+ recharging_mecha = null
if(recharge_console)
- recharge_console.recharge_floor = src
- if(recharge_port)
- recharge_console.recharge_port = recharge_port
+ recharge_console.mecha_out()
+ return
+
+/turf/simulated/floor/mech_bay_recharge_floor/proc/init_devices()
+ if(!recharge_console)
+ recharge_console = locate() in range(1,src)
+ if(!recharge_port)
+ recharge_port = locate() in get_step(src, WEST)
+
+ if(recharge_console)
+ recharge_console.recharge_floor = src
if(recharge_port)
- recharge_port.recharge_floor = src
- if(recharge_console)
- recharge_port.recharge_console = recharge_console
- return
-
+ recharge_console.recharge_port = recharge_port
+ if(recharge_port)
+ recharge_port.recharge_floor = src
+ if(recharge_console)
+ recharge_port.recharge_console = recharge_console
+ return
+// temporary fix for broken icon until somebody gets around to make these player-buildable
+/turf/simulated/floor/mech_bay_recharge_floor/attackby(obj/item/C as obj, mob/user as mob)
+ ..()
+ if(floor_tile)
+ icon_state = "recharge_floor"
+ else
+ icon_state = "support_lattice"
/obj/machinery/mech_bay_recharge_port
@@ -55,50 +64,50 @@
var/obj/machinery/computer/mech_bay_power_console/recharge_console
var/datum/global_iterator/mech_bay_recharger/pr_recharger
- New()
- ..()
- pr_recharger = new /datum/global_iterator/mech_bay_recharger(null,0)
- return
+/obj/machinery/mech_bay_recharge_port/New()
+ ..()
+ pr_recharger = new /datum/global_iterator/mech_bay_recharger(null,0)
+ return
- proc/start_charge(var/obj/mecha/recharging_mecha)
- if(stat&(NOPOWER|BROKEN))
- recharging_mecha.occupant_message("Power port not responding. Terminating.")
- return 0
- else
- if(recharging_mecha.cell)
- recharging_mecha.occupant_message("Now charging...")
- pr_recharger.start(list(src,recharging_mecha))
- return 1
- else
- return 0
-
- proc/stop_charge()
- if(recharge_console && !recharge_console.stat)
- recharge_console.icon_state = initial(recharge_console.icon_state)
- pr_recharger.stop()
- return
-
- proc/active()
- if(pr_recharger.active())
+/obj/machinery/mech_bay_recharge_port/proc/start_charge(var/obj/mecha/recharging_mecha)
+ if(stat&(NOPOWER|BROKEN))
+ recharging_mecha.occupant_message("Power port not responding. Terminating.")
+ return 0
+ else
+ if(recharging_mecha.cell)
+ recharging_mecha.occupant_message("Now charging...")
+ pr_recharger.start(list(src,recharging_mecha))
return 1
else
return 0
- power_change()
- if(powered())
- stat &= ~NOPOWER
- else
- spawn(rand(0, 15))
- stat |= NOPOWER
- pr_recharger.stop()
- return
+/obj/machinery/mech_bay_recharge_port/proc/stop_charge()
+ if(recharge_console && !recharge_console.stat)
+ recharge_console.icon_state = initial(recharge_console.icon_state)
+ pr_recharger.stop()
+ return
- proc/set_voltage(new_voltage)
- if(new_voltage && isnum(new_voltage))
- pr_recharger.max_charge = new_voltage
- return 1
- else
- return 0
+/obj/machinery/mech_bay_recharge_port/proc/active()
+ if(pr_recharger.active())
+ return 1
+ else
+ return 0
+
+/obj/machinery/mech_bay_recharge_port/power_change()
+ if(powered())
+ stat &= ~NOPOWER
+ else
+ spawn(rand(0, 15))
+ stat |= NOPOWER
+ pr_recharger.stop()
+ return
+
+/obj/machinery/mech_bay_recharge_port/proc/set_voltage(new_voltage)
+ if(new_voltage && isnum(new_voltage))
+ pr_recharger.max_charge = new_voltage
+ return 1
+ else
+ return 0
/datum/global_iterator/mech_bay_recharger
@@ -106,23 +115,22 @@
var/max_charge = 45
check_for_null = 0 //since port.stop_charge() must be called. The checks are made in process()
- process(var/obj/machinery/mech_bay_recharge_port/port, var/obj/mecha/mecha)
- if(!port)
- return 0
- if(mecha && mecha in port.recharge_floor)
- if(!mecha.cell) return
- var/delta = min(max_charge, mecha.cell.maxcharge - mecha.cell.charge)
- if(delta>0)
- mecha.give_power(delta)
- port.use_power(delta*150)
- else
- mecha.occupant_message("Fully charged.")
- port.stop_charge()
+/datum/global_iterator/mech_bay_recharger/process(var/obj/machinery/mech_bay_recharge_port/port, var/obj/mecha/mecha)
+ if(!port)
+ return 0
+ if(mecha && mecha in port.recharge_floor)
+ if(!mecha.cell)
+ return
+ var/delta = min(max_charge, mecha.cell.maxcharge - mecha.cell.charge)
+ if(delta>0)
+ mecha.give_power(delta)
+ port.use_power(delta*150)
else
+ mecha.occupant_message("Fully charged.")
port.stop_charge()
- return
-
-
+ else
+ port.stop_charge()
+ return
/obj/machinery/computer/mech_bay_power_console
@@ -137,82 +145,90 @@
var/turf/simulated/floor/mech_bay_recharge_floor/recharge_floor
var/obj/machinery/mech_bay_recharge_port/recharge_port
- proc/mecha_in(var/obj/mecha/mecha)
- if(stat&(NOPOWER|BROKEN))
- mecha.occupant_message("Control console not responding. Terminating...")
- return
- if(recharge_port && autostart)
- var/answer = recharge_port.start_charge(mecha)
- if(answer)
- recharge_port.set_voltage(voltage)
- src.icon_state = initial(src.icon_state)+"_on"
+/obj/machinery/computer/mech_bay_power_console/proc/mecha_in(var/obj/mecha/mecha)
+ if(stat&(NOPOWER|BROKEN))
+ mecha.occupant_message("Control console not responding. Terminating...")
return
+ if(recharge_port && autostart)
+ var/answer = recharge_port.start_charge(mecha)
+ if(answer)
+ recharge_port.set_voltage(voltage)
+ src.icon_state = initial(src.icon_state)+"_on"
+ return
- proc/mecha_out()
+/obj/machinery/computer/mech_bay_power_console/proc/mecha_out()
+ if(recharge_port)
+ recharge_port.stop_charge()
+ return
+
+
+/obj/machinery/computer/mech_bay_power_console/power_change()
+ if(stat & BROKEN)
+ icon_state = initial(icon_state)+"_broken"
if(recharge_port)
recharge_port.stop_charge()
- return
-
-
- power_change()
- if(stat & BROKEN)
- icon_state = initial(icon_state)+"_broken"
+ else if(powered())
+ icon_state = initial(icon_state)
+ stat &= ~NOPOWER
+ else
+ spawn(rand(0, 15))
+ icon_state = initial(icon_state)+"_nopower"
+ stat |= NOPOWER
if(recharge_port)
recharge_port.stop_charge()
- else if(powered())
- icon_state = initial(icon_state)
- stat &= ~NOPOWER
- else
- spawn(rand(0, 15))
- icon_state = initial(icon_state)+"_nopower"
- stat |= NOPOWER
- if(recharge_port)
- recharge_port.stop_charge()
- set_broken()
- icon_state = initial(icon_state)+"_broken"
- stat |= BROKEN
- if(recharge_port)
- recharge_port.stop_charge()
+/obj/machinery/computer/mech_bay_power_console/set_broken()
+ icon_state = initial(icon_state)+"_broken"
+ stat |= BROKEN
+ if(recharge_port)
+ recharge_port.stop_charge()
- attack_hand(mob/user as mob)
- if(..()) return
- var/output = "[src.name]"
- if(!recharge_floor)
- output += "Mech Bay Recharge Station not initialized.
"
- else
- output += {"Mech Bay Recharge Station Data:
- Mecha: [recharge_floor.recharging_mecha||"None"]
"}
- if(recharge_floor.recharging_mecha)
- var/cell_charge = recharge_floor.recharging_mecha.get_charge()
- output += "Cell charge: [isnull(cell_charge)?"No powercell found":"[recharge_floor.recharging_mecha.cell.charge]/[recharge_floor.recharging_mecha.cell.maxcharge]"]
"
- output += "
"
- if(!recharge_port)
- output += "Mech Bay Power Port not initialized.
"
- else
- output += "Mech Bay Power Port Status: [recharge_port.active()?"Now charging":"On hold"]
"
-
- /*
- output += {"
- Settings:
- "}
- */
-
- output += " body>"
- user << browse(output, "window=mech_bay_console")
- onclose(user, "mech_bay_console")
+/obj/machinery/computer/mech_bay_power_console/attack_hand(mob/user as mob)
+ if(..())
return
+ if(!recharge_floor || !recharge_port)
+ var/turf/simulated/floor/mech_bay_recharge_floor/F = locate() in range(1,src)
+ if(F)
+ F.init_devices()
+
+ var/output = "[src.name]"
+ if(!recharge_floor)
+ output += "Mech Bay Recharge Station not initialized.
"
+ else
+ output += {"Mech Bay Recharge Station Data:
+ Mecha: [recharge_floor.recharging_mecha||"None"]
"}
+ if(recharge_floor.recharging_mecha)
+ var/cell_charge = recharge_floor.recharging_mecha.get_charge()
+ output += "Cell charge: [isnull(cell_charge)?"No powercell found":"[recharge_floor.recharging_mecha.cell.charge]/[recharge_floor.recharging_mecha.cell.maxcharge]"]
"
+ output += "
"
+ if(!recharge_port)
+ output += "Mech Bay Power Port not initialized.
"
+ else
+ output += "Mech Bay Power Port Status: [recharge_port.active()?"Now charging":"On hold"]
"
+ /*
+ output += {"
+ Settings:
+ "}
+ */
- Topic(href, href_list)
- if(href_list["autostart"])
- autostart = !autostart
- if(href_list["voltage"])
- voltage = text2num(href_list["voltage"])
- if(recharge_port)
- recharge_port.set_voltage(voltage)
- updateUsrDialog()
- return
\ No newline at end of file
+ output += " body>"
+ user << browse(output, "window=mech_bay_console")
+ onclose(user, "mech_bay_console")
+ return
+
+// unused at the moment, also lacks any kind of exploit prevention
+/*
+/obj/machinery/computer/mech_bay_power_console/Topic(href, href_list)
+ if(href_list["autostart"])
+ autostart = !autostart
+ if(href_list["voltage"])
+ voltage = text2num(href_list["voltage"])
+ if(recharge_port)
+ recharge_port.set_voltage(voltage)
+ updateUsrDialog()
+ return
+*/
diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm
index 0b8fd7a69c5..6b7ef0242e7 100644
--- a/code/game/objects/effects/decals/Cleanable/fuel.dm
+++ b/code/game/objects/effects/decals/Cleanable/fuel.dm
@@ -6,7 +6,10 @@ obj/effect/decal/cleanable/liquid_fuel
anchored = 1
var/amount = 1 //Basically moles.
- New(newLoc,amt=1)
+ New(turf/newLoc,amt=1,nologs=0)
+ if(!nologs)
+ message_admins("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z]) (JMP)")
+ log_game("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z])")
src.amount = amt
//Be absorbed by any other liquid fuel in the tile.
@@ -30,7 +33,7 @@ obj/effect/decal/cleanable/liquid_fuel
var/turf/simulated/origin = get_turf(src)
if(origin.CanPass(null, target, 0, 0) && target.CanPass(null, origin, 0, 0))
if(!locate(/obj/effect/decal/cleanable/liquid_fuel) in target)
- new/obj/effect/decal/cleanable/liquid_fuel(target, amount*0.25)
+ new/obj/effect/decal/cleanable/liquid_fuel(target, amount*0.25,1)
amount *= 0.75
flamethrower_fuel
diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm
index a1de93987f1..02d11f22519 100644
--- a/code/game/objects/items/devices/modkit.dm
+++ b/code/game/objects/items/devices/modkit.dm
@@ -14,7 +14,10 @@
/obj/item/clothing/suit/space/rig
)
-/obj/item/device/modkit/afterattack(obj/O, mob/user as mob)
+/obj/item/device/modkit/afterattack(obj/O, mob/user as mob, proximity)
+ if(!proximity)
+ return
+
if (!target_species)
return //it shouldn't be null, okay?
@@ -38,6 +41,7 @@
var/in_list = (target_species in I.species_restricted)
if (excluding ^ in_list)
user << "[I] is already modified."
+ return
if(!isturf(O.loc))
user << "[O] must be safely placed on the ground for modification."
diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm
index 74374297cc0..130770aa9d6 100644
--- a/code/game/objects/items/devices/pipe_painter.dm
+++ b/code/game/objects/items/devices/pipe_painter.dm
@@ -13,7 +13,10 @@
modes += "[C]"
mode = pick(modes)
-/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob)
+/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob, proximity)
+ if(!proximity)
+ return
+
if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/tank) || istype(A,/obj/machinery/atmospherics/pipe/vent) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated) || !in_range(user, A))
return
var/obj/machinery/atmospherics/pipe/P = A
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 6b86d88fe05..8ef724fcde0 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -364,7 +364,9 @@ REAGENT SCANNER
var/details = 0
var/recent_fail = 0
-/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob)
+/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob, proximity)
+ if(!proximity)
+ return
if (user.stat)
return
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm
index 19d146b82cd..6355fd26fd4 100644
--- a/code/game/objects/items/devices/suit_cooling.dm
+++ b/code/game/objects/items/devices/suit_cooling.dm
@@ -42,7 +42,7 @@
var/mob/living/carbon/human/H = loc
- var/efficiency = H.get_pressure_protection() //you need to have a good seal for effective cooling
+ var/efficiency = 1 - H.get_pressure_weakness() //you need to have a good seal for effective cooling
var/env_temp = get_environment_temperature() //wont save you from a fire
var/temp_adj = min(H.bodytemperature - max(thermostat, env_temp), max_cooling)
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index 1e7c4597560..8cace9a2235 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -16,6 +16,7 @@
return 1
/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user)
+ var/turf/location = get_turf(src) // For admin logs
if(istype(item, /obj/item/weapon/tank))
if(tank_one && tank_two)
user << "There are already two tanks attached, remove one first."
@@ -31,6 +32,8 @@
user.drop_item()
item.loc = src
user << "You attach the tank to the transfer valve."
+ message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. (JMP)")
+ log_game("[key_name_admin(user)] attached both tanks to a transfer valve.")
update_icon()
nanomanager.update_uis(src) // update all UIs attached to src
@@ -51,7 +54,7 @@
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
bombers += "[key_name(user)] attached a [item] to a transfer valve."
- message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.")
+ message_admins("[key_name_admin(user)] attached a [item] to a transfer valve. (JMP)")
log_game("[key_name_admin(user)] attached a [item] to a transfer valve.")
attacher = user
nanomanager.update_uis(src) // update all UIs attached to src
@@ -83,7 +86,7 @@
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
ui = new(user, src, ui_key, "transfer_valve.tmpl", "Tank Transfer Valve", 460, 280)
// when the ui is first opened this is the data it will use
- ui.set_initial_data(data)
+ ui.set_initial_data(data)
// open the new ui window
ui.open()
// auto update every Master Controller tick
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 9945c2a00a0..d2825c82f77 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -52,15 +52,19 @@
use(1)
else
return 1
- else
+
+ else if(!in_use)
if(amount < 2)
user << "\blue You need at least two rods to do this."
return
usr << "\blue Assembling grille..."
+ in_use = 1
if (!do_after(usr, 10))
+ in_use = 0
return
var/obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc )
usr << "\blue You assemble a grille"
+ in_use = 0
F.add_fingerprint(usr)
use(2)
return
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 843cb782468..d24c9350fab 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -236,76 +236,6 @@
return 0
-/*
- * Glass shards - TODO: Move this into code/game/object/item/weapons
- */
-/obj/item/weapon/shard/Bump()
-
- spawn( 0 )
- if (prob(20))
- src.force = 15
- else
- src.force = 4
- ..()
- return
- return
-
-/obj/item/weapon/shard/New()
-
- src.icon_state = pick("large", "medium", "small")
- switch(src.icon_state)
- if("small")
- src.pixel_x = rand(-12, 12)
- src.pixel_y = rand(-12, 12)
- if("medium")
- src.pixel_x = rand(-8, 8)
- src.pixel_y = rand(-8, 8)
- if("large")
- src.pixel_x = rand(-5, 5)
- src.pixel_y = rand(-5, 5)
- else
- return
-
-/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob)
- ..()
- if ( istype(W, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/WT = W
- if(WT.remove_fuel(0, user))
- var/obj/item/stack/sheet/glass/NG = new (user.loc)
- for (var/obj/item/stack/sheet/glass/G in user.loc)
- if(G==NG)
- continue
- if(G.amount>=G.max_amount)
- continue
- G.attackby(NG, user)
- usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets."
- //SN src = null
- del(src)
- return
- return ..()
-
-/obj/item/weapon/shard/Crossed(AM as mob|obj)
- if(ismob(AM))
- var/mob/M = AM
- M << "\red You step in the broken glass!"
- playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1)
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
-
- if(H.species.flags & IS_SYNTHETIC)
- return
-
- if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) )
- var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
- if(affecting.status & ORGAN_ROBOT)
- return
- H.Weaken(3)
- if(affecting.take_damage(5, 0))
- H.UpdateDamageIcon()
- H.updatehealth()
- ..()
-
-
/*
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index f92f5b759ce..19cb00b999d 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -112,7 +112,9 @@
return
..()
-/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob)
+/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob, proximity)
+ if(!proximity)
+ return
if(istype(A,/obj/item) && imp)
var/obj/item/weapon/implant/compressed/c = imp
if (c.scanned)
diff --git a/code/game/objects/items/weapons/shards.dm b/code/game/objects/items/weapons/shards.dm
new file mode 100644
index 00000000000..1eeb6dff8df
--- /dev/null
+++ b/code/game/objects/items/weapons/shards.dm
@@ -0,0 +1,114 @@
+// Glass shards
+
+/obj/item/weapon/shard
+ name = "glass shard"
+ icon = 'icons/obj/shards.dmi'
+ icon_state = "large"
+ sharp = 1
+ edge = 1
+ desc = "Could probably be used as ... a throwing weapon?"
+ w_class = 2.0
+ force = 5.0
+ throwforce = 8.0
+ item_state = "shard-glass"
+ matter = list("glass" = 3750)
+ attack_verb = list("stabbed", "slashed", "sliced", "cut")
+
+/obj/item/weapon/shard/suicide_act(mob/user)
+ viewers(user) << pick("\red [user] is slitting \his wrists with \the [src]! It looks like \he's trying to commit suicide.", \
+ "\red [user] is slitting \his throat with \the [src]! It looks like \he's trying to commit suicide.")
+ return (BRUTELOSS)
+
+/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
+ playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
+ return ..()
+
+/obj/item/weapon/shard/Bump()
+
+ spawn( 0 )
+ if (prob(20))
+ src.force = 15
+ else
+ src.force = 4
+ ..()
+ return
+ return
+
+/obj/item/weapon/shard/New()
+
+ src.icon_state = pick("large", "medium", "small")
+ switch(src.icon_state)
+ if("small")
+ src.pixel_x = rand(-12, 12)
+ src.pixel_y = rand(-12, 12)
+ if("medium")
+ src.pixel_x = rand(-8, 8)
+ src.pixel_y = rand(-8, 8)
+ if("large")
+ src.pixel_x = rand(-5, 5)
+ src.pixel_y = rand(-5, 5)
+ else
+ return
+
+/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ ..()
+ if ( istype(W, /obj/item/weapon/weldingtool))
+ var/obj/item/weapon/weldingtool/WT = W
+ if(WT.remove_fuel(0, user))
+ var/obj/item/stack/sheet/glass/NG = new (user.loc)
+ for (var/obj/item/stack/sheet/glass/G in user.loc)
+ if(G==NG)
+ continue
+ if(G.amount>=G.max_amount)
+ continue
+ G.attackby(NG, user)
+ usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets."
+ //SN src = null
+ del(src)
+ return
+ return ..()
+
+/obj/item/weapon/shard/Crossed(AM as mob|obj)
+ if(ismob(AM))
+ var/mob/M = AM
+ M << "\red You step on \the [src]!"
+ playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) // not sure how to handle metal shards with sounds
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+
+ if(H.species.flags & IS_SYNTHETIC)
+ return
+
+ if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) )
+ var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
+ if(affecting.status & ORGAN_ROBOT)
+ return
+ H.Weaken(3)
+ if(affecting.take_damage(5, 0))
+ H.UpdateDamageIcon()
+ H.updatehealth()
+ ..()
+
+// Shrapnel
+
+/obj/item/weapon/shard/shrapnel
+ name = "shrapnel"
+ icon = 'icons/obj/shards.dmi'
+ icon_state = "shrapnellarge"
+ desc = "A bunch of tiny bits of shattered metal."
+
+/obj/item/weapon/shard/shrapnel/New()
+
+ src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall")
+ switch(src.icon_state)
+ if("shrapnelsmall")
+ src.pixel_x = rand(-12, 12)
+ src.pixel_y = rand(-12, 12)
+ if("shrapnelmedium")
+ src.pixel_x = rand(-8, 8)
+ src.pixel_y = rand(-8, 8)
+ if("shrapnellarge")
+ src.pixel_x = rand(-5, 5)
+ src.pixel_y = rand(-5, 5)
+ else
+ return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 5353b6871db..061548848cb 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -68,6 +68,7 @@
icon_type = "egg"
name = "egg box"
storage_slots = 12
+ max_combined_w_class = 24
can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/egg")
/obj/item/weapon/storage/fancy/egg_box/New()
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 64d72508d31..782a5a17455 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -65,7 +65,9 @@
O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1)
return
-/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob)
+/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob, proximity)
+ if(!proximity)
+ return
if (istype(A, /turf/simulated/floor))
user << "\blue You hit the floor with the [src]."
call(/obj/effect/rune/proc/revealrunes)(src)
@@ -231,7 +233,7 @@
update_icon(user)
/obj/item/weapon/butterfly/switchblade
- name = "/proper switchblade"
+ name = "switchblade"
desc = "A classic switchblade with gold engraving. Just holding it makes you feel like a gangster."
icon_state = "switchblade"
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 19bbcf36f45..b3b0404054d 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -47,13 +47,21 @@
buckle_mob(M, user)
return
+/obj/structure/stool/bed/proc/afterbuckle(mob/M as mob) // Called after somebody buckled / unbuckled
+ return
+
+
/obj/structure/stool/bed/proc/unbuckle()
if(buckled_mob)
if(buckled_mob.buckled == src) //this is probably unneccesary, but it doesn't hurt
buckled_mob.buckled = null
buckled_mob.anchored = initial(buckled_mob.anchored)
buckled_mob.update_canmove()
+
+ var/M = buckled_mob
buckled_mob = null
+
+ afterbuckle(M)
return
/obj/structure/stool/bed/proc/manual_unbuckle(mob/user as mob)
@@ -103,6 +111,7 @@
M.update_canmove()
src.buckled_mob = M
src.add_fingerprint(user)
+ afterbuckle(M)
return
/*
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index 115806277cd..31a1681eace 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -95,25 +95,40 @@
/obj/structure/stool/bed/chair/comfy
name = "comfy chair"
desc = "It looks comfy."
+ icon_state = "comfychair"
+ color = rgb(255,255,255)
+ var/image/armrest = null
+
+/obj/structure/stool/bed/chair/comfy/New()
+ armrest = image("icons/obj/objects.dmi", "comfychair_armrest")
+ armrest.layer = MOB_LAYER + 0.1
+
+ return ..()
+
+/obj/structure/stool/bed/chair/comfy/afterbuckle()
+ if(buckled_mob)
+ overlays += armrest
+ else
+ overlays -= armrest
/obj/structure/stool/bed/chair/comfy/brown
- icon_state = "comfychair_brown"
+ color = rgb(255,113,0)
/obj/structure/stool/bed/chair/comfy/beige
- icon_state = "comfychair_beige"
+ color = rgb(255,253,195)
/obj/structure/stool/bed/chair/comfy/teal
- icon_state = "comfychair_teal"
+ color = rgb(0,255,255)
/obj/structure/stool/bed/chair/office
anchored = 0
movable = 1
/obj/structure/stool/bed/chair/comfy/black
- icon_state = "comfychair_black"
+ color = rgb(167,164,153)
/obj/structure/stool/bed/chair/comfy/lime
- icon_state = "comfychair_lime"
+ color = rgb(255,251,0)
/obj/structure/stool/bed/chair/office/Move()
..()
diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
index 705351acfc4..9c00ee38963 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
@@ -18,12 +18,17 @@
buckled_mob.dir = dir
/obj/structure/stool/bed/chair/wheelchair/relaymove(mob/user, direction)
+ // Redundant check?
if(user.stat || user.stunned || user.weakened || user.paralysis || user.lying || user.restrained())
if(user==pulling)
pulling = null
user.pulledby = null
user << "\red You lost your grip!"
return
+ if(buckled_mob && pulling && user == buckled_mob)
+ if(pulling.stat || pulling.stunned || pulling.weakened || pulling.paralysis || pulling.lying || pulling.restrained())
+ pulling.pulledby = null
+ pulling = null
if(user.pulling && (user == pulling))
pulling = null
user.pulledby = null
@@ -136,12 +141,12 @@
if(propelled || (pulling && (pulling.a_intent == "hurt")))
var/mob/living/occupant = buckled_mob
unbuckle()
-
+
if (pulling && (pulling.a_intent == "hurt"))
occupant.throw_at(A, 3, 3, pulling)
else if (propelled)
occupant.throw_at(A, 3, propelled)
-
+
occupant.apply_effect(6, STUN, 0)
occupant.apply_effect(6, WEAKEN, 0)
occupant.apply_effect(6, STUTTER, 0)
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index b3cdba60306..39c19c76fe0 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -254,7 +254,6 @@
//send resources to the client. It's here in its own proc so we can move it around easiliy if need be
/client/proc/send_resources()
-// preload_vox() //Causes long delays with initial start window and subsequent windows when first logged in.
getFiles(
'html/search.js',
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 38ef31dbf1a..6e078326feb 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -292,6 +292,8 @@ datum/preferences
if(total_cost < MAX_GEAR_COST)
dat += " \[add\]"
+ if(gear && gear.len)
+ dat += " \[remove\]"
dat += "
Occupation Choices
"
dat += "\tSet Preferences
"
@@ -999,10 +1001,18 @@ datum/preferences
user << "\red That item will exceed the maximum loadout cost of [MAX_GEAR_COST] points."
else if(href_list["task"] == "remove")
- var/to_remove = href_list["gear"]
- if(!to_remove) return
+
+ if(isnull(gear) || !islist(gear))
+ gear = list()
+ if(!gear.len)
+ return
+
+ var/choice = input(user, "Select gear to remove: ") as null|anything in gear
+ if(!choice)
+ return
+
for(var/gear_name in gear)
- if(gear_name == to_remove)
+ if(gear_name == choice)
gear -= gear_name
break
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 3f3fbbd8776..615b5f085fd 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -133,7 +133,7 @@
/obj/item/clothing/shoes/swimmingfins
desc = "Help you swim good."
name = "swimming fins"
- icon_state = "flipperfeet"
+ icon_state = "flippers"
flags = NOSLIP
slowdown = SHOES_SLOWDOWN+1
species_restricted = null
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 53824fc9d6e..83b0616aeaf 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -170,6 +170,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost, you won't be able to play this round for another 30 minutes! You can't change your mind so choose wisely!)","Are you sure you want to ghost?","Ghost","Stay in body")
if(response != "Ghost") return //didn't want to ghost after-all
resting = 1
+ var/turf/location = get_turf(src)
+ message_admins("[key_name_admin(usr)] has ghosted. (JMP)")
+ log_game("[key_name_admin(usr)] has ghosted.")
var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3
ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly.
return
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index 09c0e0e4cb4..91253e2ca6c 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -85,15 +85,18 @@
return 0
-/mob/proc/drop_from_inventory(var/obj/item/W)
+/mob/proc/drop_from_inventory(var/obj/item/W, var/atom/Target = null)
if(W)
+ if(!Target)
+ Target = loc
+
if(client) client.screen -= W
u_equip(W)
if(!W) return 1 // self destroying objects (tk, grabs)
W.layer = initial(W.layer)
- W.loc = loc
+ W.loc = Target
- var/turf/T = get_turf(loc)
+ var/turf/T = get_turf(Target)
if(isturf(T))
T.Entered(W)
@@ -316,4 +319,3 @@
if (del_on_fail)
del(W)
return equipped
-
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index d8fd4b70007..575996a84f7 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -104,9 +104,9 @@
shock_damage *= siemens_coeff
if (shock_damage<1)
return 0
-
+
src.apply_damage(shock_damage, BURN, def_zone, used_weapon="Electrocution")
-
+
playsound(loc, "sparks", 50, 1, -1)
if (shock_damage > 10)
src.visible_message(
@@ -217,7 +217,7 @@
var/mob/living/carbon/human/H = src
H.w_uniform.add_fingerprint(M)
- if(lying)
+ if(lying || src.sleeping)
src.sleeping = max(0,src.sleeping-5)
if(src.sleeping == 0)
src.resting = 0
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index e10c35efa7a..2a9850171e7 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -280,6 +280,7 @@
for(var/datum/wound/W in temp.wounds)
if(W.internal && !temp.open) continue // can't see internal wounds
var/this_wound_desc = W.desc
+ if(W.damage_type == BURN && W.salved) this_wound_desc = "salved [this_wound_desc]"
if(W.bleeding()) this_wound_desc = "bleeding [this_wound_desc]"
else if(W.bandaged) this_wound_desc = "bandaged [this_wound_desc]"
if(W.germ_level > 600) this_wound_desc = "badly infected [this_wound_desc]"
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 54ed39584c3..0080f217f95 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -2,7 +2,7 @@
//NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick!
#define HUMAN_MAX_OXYLOSS 1 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it.
-#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /5) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 100HP to get through, so (1/3)*last_tick_duration per second. Breaths however only happen every 4 ticks.
+#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /6) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 50HP to get through, so (1/6)*last_tick_duration per second. Breaths however only happen every 4 ticks.
#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point
#define HEAT_DAMAGE_LEVEL_2 4 //Amount of damage applied when your body temperature passes the 400K point
@@ -35,6 +35,8 @@
/mob/living/carbon/human/Life()
+
+
set invisibility = 0
set background = 1
@@ -73,7 +75,7 @@
//No need to update all of these procs if the guy is dead.
if(stat != DEAD && !in_stasis)
- if(air_master.current_cycle%4==2 || failed_last_breath) //First, resolve location and get a breath
+ if(air_master.current_cycle%4==2 || failed_last_breath || (health < config.health_threshold_crit)) //First, resolve location and get a breath
breathe() //Only try to take a breath every 4 ticks, unless suffocating
else //Still give containing object the chance to interact
@@ -130,38 +132,52 @@
for(var/obj/item/weapon/grab/G in src)
G.process()
+// Calculate how vulnerable the human is to under- and overpressure.
+// Returns 0 (equals 0 %) if sealed in an undamaged suit, 1 if unprotected (equals 100%).
+// Suitdamage can modifiy this in 10% steps.
+/mob/living/carbon/human/proc/get_pressure_weakness()
-//Much like get_heat_protection(), this returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to.
-/mob/living/carbon/human/proc/get_pressure_protection()
- var/pressure_adjustment_coefficient = 1 //Determins how much the clothing you are wearing protects you in percent.
+ var/pressure_adjustment_coefficient = 1 // Assume no protection at first.
- if(head && (head.flags & STOPSPRESSUREDMAGE))
- pressure_adjustment_coefficient -= PRESSURE_HEAD_REDUCTION_COEFFICIENT
+ if(wear_suit && (wear_suit.flags & STOPSPRESSUREDMAGE) && head && (head.flags & STOPSPRESSUREDMAGE)) // Complete set of pressure-proof suit worn, assume fully sealed.
+ pressure_adjustment_coefficient = 0
- if(wear_suit && (wear_suit.flags & STOPSPRESSUREDMAGE))
- pressure_adjustment_coefficient -= PRESSURE_SUIT_REDUCTION_COEFFICIENT
-
- //Handles breaches in your space suit. 10 suit damage equals a 100% loss of pressure reduction.
+ // Handles breaches in your space suit. 10 suit damage equals a 100% loss of pressure protection.
if(istype(wear_suit,/obj/item/clothing/suit/space))
var/obj/item/clothing/suit/space/S = wear_suit
if(S.can_breach && S.damage)
- var/pressure_loss = S.damage * 0.1
- pressure_adjustment_coefficient += pressure_loss
+ pressure_adjustment_coefficient += S.damage * 0.1
- pressure_adjustment_coefficient = min(1,max(pressure_adjustment_coefficient,0)) //So it isn't less than 0 or larger than 1.
+ pressure_adjustment_coefficient = min(1,max(pressure_adjustment_coefficient,0)) // So it isn't less than 0 or larger than 1.
- return 1 - pressure_adjustment_coefficient //want 0 to be bad protection, 1 to be good protection
+ return pressure_adjustment_coefficient
+// Calculate how much of the enviroment pressure-difference affects the human.
/mob/living/carbon/human/calculate_affecting_pressure(var/pressure)
- ..()
- var/pressure_difference = abs( pressure - ONE_ATMOSPHERE )
+ var/pressure_difference
- pressure_difference = pressure_difference * (1 - get_pressure_protection())
+ // First get the absolute pressure difference.
+ if(pressure < ONE_ATMOSPHERE) // We are in an underpressure.
+ pressure_difference = ONE_ATMOSPHERE - pressure
+
+ else //We are in an overpressure or standard atmosphere.
+ pressure_difference = pressure - ONE_ATMOSPHERE
+
+ if(pressure_difference < 5) // If the difference is small, don't bother calculating the fraction.
+ pressure_difference = 0
- if(pressure > ONE_ATMOSPHERE)
- return ONE_ATMOSPHERE + pressure_difference
else
+ // Otherwise calculate how much of that absolute pressure difference affects us, can be 0 to 1 (equals 0% to 100%).
+ // This is our relative difference.
+ pressure_difference *= get_pressure_weakness()
+
+ // The difference is always positive to avoid extra calculations.
+ // Apply the relative difference on a standard atmosphere to get the final result.
+ // The return value will be the adjusted_pressure of the human that is the basis of pressure warnings and damage.
+ if(pressure < ONE_ATMOSPHERE)
return ONE_ATMOSPHERE - pressure_difference
+ else
+ return ONE_ATMOSPHERE + pressure_difference
/mob/living/carbon/human
proc/handle_disabilities()
diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm
index fe21c7a6ae8..0a123347010 100644
--- a/code/modules/mob/living/carbon/monkey/diona.dm
+++ b/code/modules/mob/living/carbon/monkey/diona.dm
@@ -108,7 +108,7 @@
var/list/trays = list()
for(var/obj/machinery/portable_atmospherics/hydroponics/tray in range(1))
- if(tray.nutrilevel < 10)
+ if(tray.nutrilevel < 10 && src.Adjacent(tray))
trays += tray
var/obj/machinery/portable_atmospherics/hydroponics/target = input("Select a tray:") as null|anything in trays
@@ -127,7 +127,7 @@
var/list/trays = list()
for(var/obj/machinery/portable_atmospherics/hydroponics/tray in range(1))
- if(tray.weedlevel > 0)
+ if(tray.weedlevel > 0 && src.Adjacent(tray))
trays += tray
var/obj/machinery/portable_atmospherics/hydroponics/target = input("Select a tray:") as null|anything in trays
@@ -186,7 +186,8 @@
var/list/choices = list()
for(var/mob/living/carbon/human/H in oview(1,src))
- choices += H
+ if(src.Adjacent(H))
+ choices += H
var/mob/living/carbon/human/M = input(src,"Who do you wish to take a sample from?") in null|choices
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index 08bd3cd97e9..ce681063582 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -80,11 +80,6 @@
emote(pick("scratch","jump","roll","tail"))
updatehealth()
-
-/mob/living/carbon/monkey/calculate_affecting_pressure(var/pressure)
- ..()
- return pressure
-
/mob/living/carbon/monkey
proc/handle_disabilities()
@@ -389,9 +384,8 @@
//Moved these vars here for use in the fuck-it-skip-processing check.
var/pressure = environment.return_pressure()
- var/adjusted_pressure = calculate_affecting_pressure(pressure) //Returns how much pressure actually affects the mob.
+ if(pressure < WARNING_HIGH_PRESSURE && pressure > WARNING_LOW_PRESSURE && abs(environment.temperature - 293.15) < 20 && abs(bodytemperature - 310.14) < 0.5 && environment.gas["phoron"] < MOLES_PHORON_VISIBLE)
- if(adjusted_pressure < WARNING_HIGH_PRESSURE && adjusted_pressure > WARNING_LOW_PRESSURE && abs(environment.temperature - 293.15) < 20 && abs(bodytemperature - 310.14) < 0.5 && environment.gas["phoron"] < gas_data.overlay_limit["phoron"])
//Hopefully should fix the walk-inside-still-pressure-warning issue.
if(pressure_alert)
@@ -413,9 +407,9 @@
bodytemperature += 0.1*(environment.temperature - bodytemperature)*environment_heat_capacity/(environment_heat_capacity + 270000)
//Account for massive pressure differences
- switch(adjusted_pressure)
+ switch(pressure)
if(HAZARD_HIGH_PRESSURE to INFINITY)
- adjustBruteLoss( min( ( (adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) )
+ adjustBruteLoss( min( ( (pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) )
pressure_alert = 2
if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE)
pressure_alert = 1
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 3ab8632e8ec..2c0b3bbdb62 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -18,7 +18,7 @@
//This proc is used for mobs which are affected by pressure to calculate the amount of pressure that actually
//affects them once clothing is factored in. ~Errorage
/mob/living/proc/calculate_affecting_pressure(var/pressure)
- return 0
+ return
//sort of a legacy burn method for /electrocute, /shock, and the e_chair
@@ -300,6 +300,7 @@
dead_mob_list -= src
living_mob_list += src
tod = null
+ timeofdeath = 0
// restore us to conciousness
stat = CONSCIOUS
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 758883dfff7..792ef9296f9 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -446,13 +446,6 @@ var/list/ai_verbs_default = list(
lawchannel = setchannel
checklaws()
- //Uncomment this line of code if you are enabling the AI Vocal (VOX) announcements.
-/*
- if(href_list["say_word"])
- play_vox_word(href_list["say_word"], null, src)
- return
-*/
-
if (href_list["lawi"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite
var/L = text2num(href_list["lawi"])
switch(ioncheck[L])
diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm
index f3f1b4e1c80..62a75fad245 100644
--- a/code/modules/mob/living/silicon/ai/say.dm
+++ b/code/modules/mob/living/silicon/ai/say.dm
@@ -3,126 +3,3 @@
return parent.say(message)
//If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead.
return ..(message)
-
-// These Verbs are commented out since we've disabled the AI vocal (VOX) announcements.
-// If you re-enable them there is 3 lines in ai.dm Topic() that you need to uncomment as well.
-// just search for VOX in there.
-
-/*
-var/announcing_vox = 0 // Stores the time of the last announcement
-var/const/VOX_CHANNEL = 200
-var/const/VOX_DELAY = 100 // 10 seconds
-var/const/VOX_PATH = "sound/vox/"
-
-/mob/living/silicon/ai/verb/announcement_help()
-
- set name = "Announcement Help"
- set desc = "Display a list of vocal words to announce to the crew."
- set category = "AI Commands"
-
-
- var/dat = "Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
\
- - You can also click on the word to preview it.
\
- - You can only say 30 words for every announcement.
\
- - Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
\
- WARNING:
Misuse of the announcement system will get you job banned.
"
-
- var/index = 0
- var/list/vox_words = flist(VOX_PATH) // flist will return a list of strings with all the files in the path
- for(var/word in vox_words)
- index++
- var/stripped_word = copytext(word, 1, length(word) - 3) // Remove the .wav
- dat += "[capitalize(stripped_word)]"
- if(index != vox_words.len)
- dat += " / "
-
- src << browse(dat, "window=announce_help;size=500x400")
-
-
-/mob/living/silicon/ai/verb/announcement()
-
- set name = "Announcement"
- set desc = "Create a vocal announcement by typing in the available words to create a sentence."
- set category = "AI Commands"
-
- if(announcing_vox > world.time)
- src << "Please wait [round((announcing_vox - world.time) / 10)] seconds."
- return
-
- var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", src.last_announcement) as text
-
- last_announcement = message
-
- if(!message || announcing_vox > world.time)
- return
-
- var/list/words = text2list(trim(message), " ")
- var/list/incorrect_words = list()
-
- if(words.len > 30)
- words.len = 30
-
- // Detect incorrect words which aren't .wav files.
- for(var/word in words)
- word = trim(word)
- if(!word)
- words -= word
- continue
- if(!vox_word_exists(word))
- incorrect_words += word
-
- if(incorrect_words.len)
- src << "These words are not available on the announcement system: [english_list(incorrect_words)]."
- return
-
- announcing_vox = world.time + VOX_DELAY
-
- log_game("[key_name_admin(src)] made a vocal announcement with the following message: [message].")
-
- for(var/word in words)
- play_vox_word(word, src.z, null)
-
-
-/proc/play_vox_word(var/word, var/z_level, var/mob/only_listener)
-
- word = lowertext(word)
-
- if(vox_word_exists(word))
-
- var/sound_file = get_vox_file(word)
- var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL)
- voice.status = SOUND_STREAM
-
- // If there is no single listener, broadcast to everyone in the same z level
- if(!only_listener)
- // Play voice for all mobs in the z level
- for(var/mob/M in player_list)
- if(M.client)
- var/turf/T = get_turf(M)
- if(T.z == z_level)
- M << voice
- else
- only_listener << voice
- return 1
- return 0
-
-
-/proc/vox_word_exists(var/word)
- return fexists("[VOX_PATH][word].wav")
-
-/proc/get_vox_file(var/word)
- if(vox_word_exists(word))
- return file("[VOX_PATH][word].wav")
-
-// Dynamically loading it has bad results with sounds overtaking each other, even with the wait variable.
-// We send the file to the user when they login.
-
-/client/proc/preload_vox()
- var/list/vox_files = flist(VOX_PATH)
- for(var/file in vox_files)
- // src << "Downloading [file]"
- var/sound/S = sound("[VOX_PATH][file]")
- src << browse_rsc(S)
-
-
-*/
diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm
index 33901641bde..73a6d59c158 100644
--- a/code/modules/mob/living/silicon/pai/recruit.dm
+++ b/code/modules/mob/living/silicon/pai/recruit.dm
@@ -19,6 +19,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
/datum/paiController
+ var/inquirer = null
var/list/pai_candidates = list()
var/list/asked = list()
@@ -344,6 +345,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
user << browse(dat, "window=findPai")
+
/datum/paiController/proc/requestRecruits()
for(var/mob/dead/observer/O in player_list)
if(O.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
@@ -368,7 +370,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
if(!C) return
asked.Add(C.key)
asked[C.key] = world.time
- var/response = alert(C, "Someone is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round")
+ var/response = alert(C, "[inquirer] is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round")
if(!C) return //handle logouts that happen whilst the alert is waiting for a response.
if(response == "Yes")
recruitWindow(C.mob)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index dfe1a9db29e..18adecccc36 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -69,9 +69,9 @@
/obj/item/weapon/gripper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
return
-/obj/item/weapon/gripper/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params)
+/obj/item/weapon/gripper/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity, params)
- if(!target || !flag) //Target is invalid or we are not adjacent.
+ if(!target || !proximity) //Target is invalid or we are not adjacent.
return
//There's some weirdness with items being lost inside the arm. Trying to fix all cases. ~Z
@@ -80,25 +80,22 @@
wrapped = thing
break
- if(wrapped) //Already have an item.
-
+ if(wrapped) //Already have an item.
+
+ //Temporary put wrapped into user so target's attackby() checks pass.
wrapped.loc = user
- //Pass the attack on to the target.
+
+ //Pass the attack on to the target. This might delete/relocate wrapped.
target.attackby(wrapped,user)
-
- if(wrapped && src && wrapped.loc == user)
+
+ //If wrapped did neither get deleted nor put into target, put it back into the gripper.
+ if(wrapped && user && (wrapped.loc == user))
wrapped.loc = src
-
- //Sanity/item use checks.
-
- if(!wrapped || !user)
- return
-
- if(wrapped.loc != src.loc)
+ else
wrapped = null
return
- if(istype(target,/obj/item)) //Check that we're not pocketing a mob.
+ else if(istype(target,/obj/item)) //Check that we're not pocketing a mob.
//...and that the item is not in a container.
if(!isturf(target.loc))
@@ -158,9 +155,9 @@
/obj/item/weapon/matter_decompiler/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
return
-/obj/item/weapon/matter_decompiler/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params)
+/obj/item/weapon/matter_decompiler/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity, params)
- if(!flag) return //Not adjacent.
+ if(!proximity) return //Not adjacent.
//We only want to deal with using this on turfs. Specific items aren't important.
var/turf/T = get_turf(target)
@@ -357,4 +354,4 @@
stack = stack_plastic
stack.amount++
- decompiler.stored_comms[type]--;
\ No newline at end of file
+ decompiler.stored_comms[type]--;
diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm
index ed66f1ae499..e0ebe671f19 100644
--- a/code/modules/mob/living/silicon/robot/robot_damage.dm
+++ b/code/modules/mob/living/silicon/robot/robot_damage.dm
@@ -1,9 +1,9 @@
/mob/living/silicon/robot/updatehealth()
if(status_flags & GODMODE)
- health = 200
+ health = maxHealth
stat = CONSCIOUS
return
- health = 200 - (getBruteLoss() + getFireLoss())
+ health = maxHealth - (getBruteLoss() + getFireLoss())
return
/mob/living/silicon/robot/getBruteLoss()
@@ -145,4 +145,4 @@
brute -= (picked.brute_damage - brute_was)
burn -= (picked.electronics_damage - burn_was)
- parts -= picked
\ No newline at end of file
+ parts -= picked
diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm
index 931cb0556be..33748f056e2 100644
--- a/code/modules/mob/living/silicon/robot/robot_items.dm
+++ b/code/modules/mob/living/silicon/robot/robot_items.dm
@@ -6,7 +6,9 @@
name = "RoboTray"
desc = "An autoloading tray specialized for carrying refreshments."
-/obj/item/weapon/tray/robotray/afterattack(atom/target, mob/user as mob)
+/obj/item/weapon/tray/robotray/afterattack(atom/target, mob/user as mob, proximity)
+ if(!proximity)
+ return
if ( !target )
return
// pick up items, mostly copied from base tray pickup proc
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 45acf2c713a..42f923aa291 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -168,7 +168,8 @@
stacktypes = list(
/obj/item/stack/sheet/metal = 50,
/obj/item/stack/sheet/plasteel = 10,
- /obj/item/stack/sheet/rglass = 50
+ /obj/item/stack/sheet/rglass = 50,
+ /obj/item/stack/rods = 50
)
New()
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index f044d849ecc..9071e3193b9 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -434,6 +434,9 @@
// And uncomment this, too.
//new_character.dna.UpdateSE()
+ // Do the initial caching of the player's body icons.
+ new_character.regenerate_icons()
+
new_character.key = key //Manually transfer the key to log them in
return new_character
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index 64eda75b919..05f7635bcf4 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -206,6 +206,9 @@ This function completely restores a damaged organ to perfect condition.
perma_injury = 0
brute_dam = 0
burn_dam = 0
+ germ_level = 0
+ wounds.Cut()
+ number_wounds = 0
// handle internal organs
for(var/datum/organ/internal/current_organ in internal_organs)
@@ -265,25 +268,6 @@ This function completely restores a damaged organ to perfect condition.
if(W)
wounds += W
-/datum/organ/external/proc/get_wound_type(var/type = CUT, var/damage)
- //if you look a the names in the wound's stages list for each wound type you will see the logic behind these values
- switch(type)
- if(CUT)
- if (damage <= 5) return /datum/wound/cut/small
- if (damage <= 15) return /datum/wound/cut/deep
- if (damage <= 25) return /datum/wound/cut/flesh
- if (damage <= 50) return /datum/wound/cut/gaping
- if (damage <= 60) return /datum/wound/cut/gaping_big
- return /datum/wound/cut/massive
- if(BRUISE)
- return /datum/wound/bruise
- if(BURN)
- if (damage <= 5) return /datum/wound/burn/moderate
- if (damage <= 15) return /datum/wound/burn/large
- if (damage <= 30) return /datum/wound/burn/severe
- if (damage <= 40) return /datum/wound/burn/deep
- return /datum/wound/burn/carbonised
-
/****************************************************
PROCESSING & UPDATING
****************************************************/
@@ -396,10 +380,9 @@ Note that amputating the affected organ does in fact remove the infection from t
if(germ_level >= INFECTION_LEVEL_ONE)
//having an infection raises your body temperature
- var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 1)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature
- if (fever_temperature > owner.bodytemperature)
- //need to make sure we raise temperature fast enough to get around environmental cooling preventing us from reaching fever_temperature
- owner.bodytemperature += (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1
+ var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 5)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature
+ //need to make sure we raise temperature fast enough to get around environmental cooling preventing us from reaching fever_temperature
+ owner.bodytemperature += between(0, (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1, fever_temperature - owner.bodytemperature)
if(prob(round(germ_level/10)))
if (antibiotics < 5)
diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm
index db3dd8be7c4..9d4a5364ae1 100644
--- a/code/modules/organs/wound.dm
+++ b/code/modules/organs/wound.dm
@@ -7,7 +7,7 @@
var/current_stage = 0
// description of the wound
- var/desc = ""
+ var/desc = "wound" //default in case something borks
// amount of damage this wound causes
var/damage = 0
@@ -207,6 +207,44 @@
return (damage_type == BRUISE && wound_damage() >= 20 || damage_type == CUT && wound_damage() >= 5)
+/** WOUND DEFINITIONS **/
+
+//Note that the MINIMUM damage before a wound can be applied should correspond to
+//the damage amount for the stage with the same name as the wound.
+//e.g. /datum/wound/cut/deep should only be applied for 15 damage and up,
+//because in it's stages list, "deep cut" = 15.
+/proc/get_wound_type(var/type = CUT, var/damage)
+ switch(type)
+ if(CUT)
+ switch(damage)
+ if(70 to INFINITY)
+ return /datum/wound/cut/massive
+ if(60 to 70)
+ return /datum/wound/cut/gaping_big
+ if(50 to 60)
+ return /datum/wound/cut/gaping
+ if(25 to 50)
+ return /datum/wound/cut/flesh
+ if(15 to 25)
+ return /datum/wound/cut/deep
+ if(0 to 15)
+ return /datum/wound/cut/small
+ if(BRUISE)
+ return /datum/wound/bruise
+ if(BURN)
+ switch(damage)
+ if(50 to INFINITY)
+ return /datum/wound/burn/carbonised
+ if(40 to 50)
+ return /datum/wound/burn/deep
+ if(30 to 40)
+ return /datum/wound/burn/severe
+ if(15 to 30)
+ return /datum/wound/burn/large
+ if(0 to 15)
+ return /datum/wound/burn/moderate
+ return null //no wound
+
/** CUTS **/
/datum/wound/cut/small
// link wound descriptions to amounts of damage
@@ -220,7 +258,7 @@
damage_type = CUT
/datum/wound/cut/flesh
- max_bleeding_stage = 3
+ max_bleeding_stage = 4
stages = list("ugly ripped flesh wound" = 35, "ugly flesh wound" = 30, "flesh wound" = 25, "blood soaked clot" = 15, "large scab" = 5, "fresh skin" = 0)
damage_type = CUT
@@ -249,25 +287,26 @@ datum/wound/cut/massive
/** BURNS **/
/datum/wound/burn/moderate
- stages = list("ripped burn" = 10, "moderate burn" = 5, "moderate salved burn" = 2, "fresh skin" = 0)
+ stages = list("ripped burn" = 10, "moderate burn" = 5, "healing moderate burn" = 2, "fresh skin" = 0)
damage_type = BURN
/datum/wound/burn/large
- stages = list("ripped large burn" = 20, "large burn" = 15, "large salved burn" = 5, "fresh skin" = 0)
+ stages = list("ripped large burn" = 20, "large burn" = 15, "healing large burn" = 5, "fresh skin" = 0)
damage_type = BURN
/datum/wound/burn/severe
- stages = list("ripped severe burn" = 35, "severe burn" = 30, "severe salved burn" = 10, "burn scar" = 0)
+ stages = list("ripped severe burn" = 35, "severe burn" = 30, "healing severe burn" = 10, "burn scar" = 0)
damage_type = BURN
/datum/wound/burn/deep
- stages = list("ripped deep burn" = 45, "deep burn" = 40, "deep salved burn" = 15, "large burn scar" = 0)
+ stages = list("ripped deep burn" = 45, "deep burn" = 40, "healing deep burn" = 15, "large burn scar" = 0)
damage_type = BURN
/datum/wound/burn/carbonised
- stages = list("carbonised area" = 50, "treated carbonised area" = 20, "massive burn scar" = 0)
+ stages = list("carbonised area" = 50, "healing carbonised area" = 20, "massive burn scar" = 0)
damage_type = BURN
+/** INTERNAL BLEEDING **/
/datum/wound/internal_bleeding
internal = 1
stages = list("severed artery" = 30, "cut artery" = 20, "damaged artery" = 10, "bruised artery" = 5)
@@ -284,4 +323,4 @@ datum/wound/cut/massive
return 0 //cannot be merged
/datum/wound/lost_limb/small
- stages = list("ripped stump" = 40, "bloody stump" = 30, "clotted stump" = 15, "scarred stump" = 0)
\ No newline at end of file
+ stages = list("ripped stump" = 40, "bloody stump" = 30, "clotted stump" = 15, "scarred stump" = 0)
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index fe2326c21b0..5fff5a7f311 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -30,6 +30,7 @@
var/icon/img //Big photo image
var/scribble //Scribble on the back.
var/icon/tiny
+ var/photo_size = 3
/obj/item/weapon/photo/attack_self(mob/user as mob)
examine()
@@ -54,9 +55,9 @@
user << browse_rsc(img, "tmp_photo.png")
user << browse("[name]" \
+ "" \
- + "
" \
+ + "
" \
+ "[scribble ? "
Written on the back:
[scribble]" : ""]"\
- + "", "window=book;size=192x[scribble ? 400 : 192]")
+ + "", "window=book;size=[64*photo_size]x[scribble ? 400 : 64*photo_size]")
onclose(user, "[name]")
return
@@ -125,7 +126,15 @@
var/on = 1
var/icon_on = "camera"
var/icon_off = "camera_off"
+ var/size = 3
+/obj/item/device/camera/verb/change_size()
+ set name = "Set Photo Focus"
+ set category = "Object"
+ var/nsize = input("Photo Size","Pick a size of resulting photo.") as null|anything in list(1,3,5,7)
+ if(nsize)
+ size = nsize
+ usr << "Camera will now take [size]x[size] photos."
/obj/item/device/camera/attack(mob/living/carbon/human/M as mob, mob/user as mob)
return
@@ -157,6 +166,7 @@
//Bigger icon base to capture those icons that were shifted to the next tile
//i.e. pretty much all wall-mounted machinery
var/icon/res = icon('icons/effects/96x96.dmi', "")
+ res.Scale(size*32, size*32)
// Initialize the photograph to black.
res.Blend("#000", ICON_OVERLAY)
@@ -171,7 +181,7 @@
// Sort the atoms into their layers
var/list/sorted = sort_atoms_by_layer(atoms)
-
+ var/center_offset = (size-1)/2 * 32 + 1
for(var/i; i <= sorted.len; i++)
var/atom/A = sorted[i]
if(A)
@@ -184,19 +194,19 @@
// If they are, apply that effect to their picture.
img.BecomeLying()
// Calculate where we are relative to the center of the photo
- var/xoff = (A.x - center.x) * 32
- var/yoff = (A.y - center.y) * 32
+ var/xoff = (A.x - center.x) * 32 + center_offset
+ var/yoff = (A.y - center.y) * 32 + center_offset
if (istype(A,/atom/movable))
xoff+=A:step_x
yoff+=A:step_y
- res.Blend(img, blendMode2iconMode(A.blend_mode), 33 + A.pixel_x + xoff, 33 + A.pixel_y + yoff)
+ res.Blend(img, blendMode2iconMode(A.blend_mode), A.pixel_x + xoff, A.pixel_y + yoff)
// Lastly, render any contained effects on top.
for(var/turf/the_turf in turfs)
// Calculate where we are relative to the center of the photo
- var/xoff = (the_turf.x - center.x) * 32
- var/yoff = (the_turf.y - center.y) * 32
- res.Blend(getFlatIcon(the_turf.loc), blendMode2iconMode(the_turf.blend_mode),33 + xoff,33 + yoff)
+ var/xoff = (the_turf.x - center.x) * 32 + center_offset
+ var/yoff = (the_turf.y - center.y) * 32 + center_offset
+ res.Blend(getFlatIcon(the_turf.loc), blendMode2iconMode(the_turf.blend_mode),xoff,yoff)
return res
@@ -246,22 +256,20 @@
return can_see
/obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag)
- var/x_c = target.x - 1
- var/y_c = target.y + 1
+ var/x_c = target.x - (size-1)/2
+ var/y_c = target.y + (size-1)/2
var/z_c = target.z
-
-
var/list/turfs = list()
var/mobs = ""
- for(var/i = 1; i <= 3; i++)
- for(var/j = 1; j <= 3; j++)
+ for(var/i = 1; i <= size; i++)
+ for(var/j = 1; j <= size; j++)
var/turf/T = locate(x_c, y_c, z_c)
if(can_capture_turf(T, user))
turfs.Add(T)
mobs += get_mobs(T)
x_c++
y_c--
- x_c = x_c - 3
+ x_c = x_c - size
var/datum/picture/P = createpicture(target, user, turfs, mobs, flag)
printpicture(user, P)
@@ -286,6 +294,7 @@
P.fields["desc"] = mobs
P.fields["pixel_x"] = rand(-10, 10)
P.fields["pixel_y"] = rand(-10, 10)
+ P.fields["size"] = size
return P
@@ -303,3 +312,4 @@
desc = P.fields["desc"]
pixel_x = P.fields["pixel_x"]
pixel_y = P.fields["pixel_y"]
+ photo_size = P.fields["size"]
\ No newline at end of file
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index cccf903872b..0edd2427614 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -35,6 +35,9 @@
/obj/machinery/power/smes/New()
..()
spawn(5)
+ if(!powernet)
+ connect_to_network()
+
dir_loop:
for(var/d in cardinal)
var/turf/T = get_step(src, d)
@@ -46,6 +49,8 @@
stat |= BROKEN
return
terminal.master = src
+ if(!terminal.powernet)
+ terminal.connect_to_network()
updateicon()
return
@@ -385,11 +390,11 @@
/obj/machinery/power/smes/magical
name = "magical power storage unit"
desc = "A high-capacity superconducting magnetic energy storage (SMES) unit. Magically produces power."
+ capacity = 9000000
output = SMESMAXOUTPUT
/obj/machinery/power/smes/magical/process()
- capacity = INFINITY
- charge = INFINITY
+ charge = 9000000
..()
/proc/rate_control(var/S, var/V, var/C, var/Min=1, var/Max=5, var/Limit=null)
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index cc4a5b1354e..0d8986fcfd6 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -1099,8 +1099,7 @@ datum
else if(!alien || alien != IS_DIONA)
M.adjustOxyLoss(-2*REM)
- if(holder.has_reagent("lexorin"))
- holder.remove_reagent("lexorin", 2*REM)
+ holder.remove_reagent("lexorin", 2*REM)
..()
return
@@ -1123,8 +1122,7 @@ datum
else if(!alien || alien != IS_DIONA)
M.adjustOxyLoss(-M.getOxyLoss())
- if(holder.has_reagent("lexorin"))
- holder.remove_reagent("lexorin", 2*REM)
+ holder.remove_reagent("lexorin", 2*REM)
..()
return
@@ -1221,8 +1219,7 @@ datum
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
- if(holder.has_reagent("mindbreaker"))
- holder.remove_reagent("mindbreaker", 5)
+ holder.remove_reagent("mindbreaker", 5)
M.hallucination = max(0, M.hallucination - 10)
if(prob(60)) M.adjustToxLoss(1)
..()
@@ -1315,7 +1312,7 @@ datum
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
if(istype(E))
if(E.damage > 0)
- E.damage -= 1
+ E.damage = max(E.damage - 1, 0)
..()
return
@@ -1336,7 +1333,7 @@ datum
//Peridaxon is hard enough to get, it's probably fair to make this all internal organs
for(var/datum/organ/internal/I in H.internal_organs)
if(I.damage > 0)
- I.damage -= 0.20
+ I.damage = max(I.damage - 0.20, 0)
..()
return
@@ -1600,8 +1597,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(holder.has_reagent("inaprovaline"))
- holder.remove_reagent("inaprovaline", 2*REM)
+ holder.remove_reagent("inaprovaline", 2*REM)
..()
return
reaction_obj(var/obj/O, var/volume)
@@ -2052,7 +2048,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.nutrition -= nutriment_factor
+ M.nutrition = max(M.nutrition - nutriment_factor, 0)
M.overeatduration = 0
if(M.nutrition < 0)//Prevent from going into negatives.
M.nutrition = 0
@@ -2202,25 +2198,14 @@ datum
color = "#B31008" // rgb: 139, 166, 233
on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(!data) data = 1
- switch(data)
- if(1 to 15)
- M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(holder.has_reagent("capsaicin"))
- holder.remove_reagent("capsaicin", 5)
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(5,20)
- if(15 to 25)
- M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(10,20)
- if(25 to INFINITY)
- M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(prob(1)) M.emote("shiver")
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(15,20)
- data++
+ if(!M)
+ M = holder.my_atom
+ M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
+ if(prob(1))
+ M.emote("shiver")
+ if(istype(M, /mob/living/carbon/slime))
+ M.bodytemperature = max(M.bodytemperature - rand(10,20), 0)
+ holder.remove_reagent("capsaicin", 5)
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
@@ -2629,8 +2614,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0)
- if(holder.has_reagent("capsaicin"))
- holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM)
+ holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM)
..()
return
@@ -2673,7 +2657,7 @@ datum
on_mob_life(var/mob/living/M as mob)
..()
M.make_jittery(5)
- if(adj_temp > 0 && holder.has_reagent("frostoil"))
+ if(adj_temp > 0)
holder.remove_reagent("frostoil", 10*REAGENTS_METABOLISM)
holder.remove_reagent(src.id, 0.1)
@@ -2843,25 +2827,14 @@ datum
adj_temp = -9
on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- if(!data) data = 1
- switch(data)
- if(1 to 15)
- M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(holder.has_reagent("capsaicin"))
- holder.remove_reagent("capsaicin", 5)
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(5,20)
- if(15 to 25)
- M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(10,20)
- if(25 to INFINITY)
- M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
- if(prob(1)) M.emote("shiver")
- if(istype(M, /mob/living/carbon/slime))
- M.bodytemperature -= rand(15,20)
- data++
+ if(!M)
+ M = holder.my_atom
+ if(prob(1))
+ M.emote("shiver")
+ M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
+ if(istype(M, /mob/living/carbon/slime))
+ M.bodytemperature = max(M.bodytemperature - rand(10,20), 0)
+ holder.remove_reagent("capsaicin", 5)
holder.remove_reagent(src.id, FOOD_METABOLISM)
..()
return
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index c141a757e7d..d1f77e7ad86 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -94,6 +94,7 @@
spawn(5) src.reagents.clear_reagents()
return
else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
+ target.add_fingerprint(user)
if(!target.reagents.total_volume && target.reagents)
user << "\red [target] is empty."
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 54448450324..94772ba1955 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -114,11 +114,14 @@
overlays = new/list()
/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ src.add_fingerprint(user)
if (istype(W,/obj/item/weapon/wrench))
user.visible_message("[user] wrenches [src]'s faucet [modded ? "closed" : "open"].", \
"You wrench [src]'s faucet [modded ? "closed" : "open"]")
modded = modded ? 0 : 1
if (modded)
+ message_admins("[key_name_admin(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel. (JMP)")
+ log_game("[key_name(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel.")
leak_fuel(amount_per_transfer_from_this)
if (istype(W,/obj/item/device/assembly_holder))
if (rig)
@@ -130,8 +133,8 @@
var/obj/item/device/assembly_holder/H = W
if (istype(H.a_left,/obj/item/device/assembly/igniter) || istype(H.a_right,/obj/item/device/assembly/igniter))
- message_admins("[key_name_admin(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.")
- log_game("[key_name(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.")
+ message_admins("[key_name_admin(user)] rigged fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) for explosion. (JMP)")
+ log_game("[key_name(user)] rigged fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) for explosion.")
rig = W
user.drop_item()
@@ -148,8 +151,8 @@
/obj/structure/reagent_dispensers/fueltank/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet))
if(istype(Proj.firer))
- message_admins("[key_name_admin(Proj.firer)] shot fueltank at ([loc.x],[loc.y],[loc.z]).")
- log_game("[key_name(Proj.firer)] shot fueltank at ([loc.x],[loc.y],[loc.z]).")
+ message_admins("[key_name_admin(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) (JMP).")
+ log_game("[key_name(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]).")
if(!istype(Proj ,/obj/item/projectile/beam/lastertag) && !istype(Proj ,/obj/item/projectile/beam/practice) )
explode()
@@ -174,18 +177,18 @@
if(temperature > T0C+500)
explode()
return ..()
-
+
/obj/structure/reagent_dispensers/fueltank/Move()
if (..() && modded)
leak_fuel(amount_per_transfer_from_this/10.0)
-
+
/obj/structure/reagent_dispensers/fueltank/proc/leak_fuel(amount)
if (reagents.total_volume == 0)
return
-
+
amount = min(amount, reagents.total_volume)
reagents.remove_reagent("fuel",amount)
- new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount)
+ new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount,1)
/obj/structure/reagent_dispensers/peppertank
name = "Pepper Spray Refiller"
diff --git a/code/modules/shuttles/escape_pods.dm b/code/modules/shuttles/escape_pods.dm
index 0261997a9d3..719c29fd9a6 100644
--- a/code/modules/shuttles/escape_pods.dm
+++ b/code/modules/shuttles/escape_pods.dm
@@ -137,10 +137,3 @@
/datum/computer/file/embedded_program/docking/simple/escape_pod/prepare_for_undocking()
eject_time = world.time + eject_delay*10
-
-/*
-/datum/computer/file/embedded_program/docking/simple/escape_pod/ready_for_undocking()
- if (world.time < eject_time)
- return 0
- return ..()
-*/
\ No newline at end of file
diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index 34a5d1e1380..c931e9fc299 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -34,15 +34,14 @@
if (moving_status == SHUTTLE_IDLE)
return //someone cancelled the launch
- move(departing, interim, direction)
-
moving_status = SHUTTLE_INTRANSIT
+ move(departing, interim, direction)
+
arrive_time = world.time + travel_time*10
while (world.time < arrive_time)
sleep(5)
move(interim, destination, direction)
-
moving_status = SHUTTLE_IDLE
/datum/shuttle/proc/dock()
@@ -69,6 +68,8 @@
return 0
//just moves the shuttle from A to B, if it can be moved
+//A note to anyone overriding move in a subtype. move() must absolutely not, under any circumstances, fail to move the shuttle.
+//If you want to conditionally cancel shuttle launches, that logic must go in short_jump() or long_jump()
/datum/shuttle/proc/move(var/area/origin, var/area/destination, var/direction=null)
//world << "move_shuttle() called for [shuttle_tag] leaving [origin] en route to [destination]."
diff --git a/code/modules/surgery/ribcage.dm b/code/modules/surgery/ribcage.dm
index ab16f569157..c14d065cd9b 100644
--- a/code/modules/surgery/ribcage.dm
+++ b/code/modules/surgery/ribcage.dm
@@ -202,7 +202,7 @@
var/is_chest_organ_damaged = 0
var/datum/organ/external/chest/chest = target.get_organ("chest")
- for(var/datum/organ/internal/I in chest.internal_organs)
+ for(var/datum/organ/internal/I in chest.internal_organs)
if(I.damage > 0)
is_chest_organ_damaged = 1
break
@@ -244,7 +244,7 @@
if(I && I.damage > 0)
if(I.robotic < 2)
user.visible_message("\blue [user] treats damage to [target]'s [I.name] with [tool_name].", \
- "You treat damage to [target]'s [I.name] with [tool_name]." )
+ "\blue You treat damage to [target]'s [I.name] with [tool_name]." )
else
user.visible_message("\blue [user] pokes [target]'s mechanical [I.name] with [tool_name]...", \
"\blue You poke [target]'s mechanical [I.name] with [tool_name]... \red For no effect, since it's robotic.")
diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm
index 5b0bccbaaab..b0116585ab6 100644
--- a/code/modules/surgery/surgery.dm
+++ b/code/modules/surgery/surgery.dm
@@ -89,7 +89,7 @@ proc/do_surgery(mob/living/M, mob/living/user, obj/item/tool)
//We had proper tools! (or RNG smiled.) and User did not move or change hands.
if( prob(S.tool_quality(tool)) && do_mob(user, M, rand(S.min_duration, S.max_duration)))
S.end_step(user, M, user.zone_sel.selecting, tool) //finish successfully
- else //or
+ else if (tool in user.contents && user.Adjacent(M)) //or
S.fail_step(user, M, user.zone_sel.selecting, tool) //malpractice~
return 1 //don't want to do weapony things after surgery
return 0
diff --git a/code/setup.dm b/code/setup.dm
index f5b680ee3e2..361cfaa66cc 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -19,6 +19,7 @@
#define O2STANDARD 0.21
#define N2STANDARD 0.79
+#define MOLES_PHORON_VISIBLE 0.7 //Moles in a standard cell after which phoron is visible
#define MOLES_O2STANDARD MOLES_CELLSTANDARD*O2STANDARD // O2 standard value (21%)
#define MOLES_N2STANDARD MOLES_CELLSTANDARD*N2STANDARD // N2 standard value (79%)
@@ -72,9 +73,6 @@
#define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :(
#define LOW_PRESSURE_DAMAGE 2 //The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).
-#define PRESSURE_SUIT_REDUCTION_COEFFICIENT 0.8 //This is how much (percentual) a suit with the flag STOPSPRESSUREDMAGE reduces pressure.
-#define PRESSURE_HEAD_REDUCTION_COEFFICIENT 0.4 //This is how much (percentual) a helmet/hat with the flag STOPSPRESSUREDMAGE reduces pressure.
-
// Doors!
#define DOOR_CRUSH_DAMAGE 10
@@ -837,7 +835,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
#define MAX_SIPHON_FLOWRATE 2500 //L/s This can be used to balance how fast a room is siphoned. Anything higher than CELL_VOLUME has no effect.
#define MAX_SCRUBBER_FLOWRATE 200 //L/s Max flow rate when scrubbing from a turf.
-//These balance how easy or hard it is to create huge pressure gradients with pumps and filters. Lower values means it takes longer to create large pressures differences.
+//These balance how easy or hard it is to create huge pressure gradients with pumps and filters. Lower values means it takes longer to create large pressures differences.
//Has no effect on pumping gasses from high pressure to low, only from low to high. Must be between 0 and 1.
#define ATMOS_PUMP_EFFICIENCY 0.6
#define ATMOS_FILTER_EFFICIENCY 0.45
@@ -850,4 +848,4 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
#define ATMOS_DEFAULT_VOLUME_PUMP 200 //L
#define ATMOS_DEFAULT_VOLUME_FILTER 200 //L
#define ATMOS_DEFAULT_VOLUME_MIXER 200 //L
-#define ATMOS_DEFAULT_VOLUME_PIPE 70 //L
\ No newline at end of file
+#define ATMOS_DEFAULT_VOLUME_PIPE 70 //L
diff --git a/html/changelog.html b/html/changelog.html
index e5fe332b92b..0800ac3b89d 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -126,6 +126,15 @@ should be listed in the changelog upon commit though. Thanks. -->
+
+
2 August 2014
+
Whitellama updated:
+
+ - Arcane tomes can now be stored on bookshelves.
+ - Dionaea players no longer crash on death, and now properly nymphs properly.
+
+
+
31 July 2014
HarpyEagle updated:
@@ -142,11 +151,6 @@ should be listed in the changelog upon commit though. Thanks. -->
- Added dynamic flavour text.
- Fixed bug with suit fibers and fingerprints.
- 2 August 2014
- Whitellama updated:
-
- - Arcane tomes can now be stored on bookshelves.
- - Dionaea players no longer crash on death, and now properly nymphs properly.
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index 23d627a5f12..82d2dee3bde 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ
diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm
index 2f1430c9042..b13c0978bca 100644
--- a/maps/tgstation2.dmm
+++ b/maps/tgstation2.dmm
@@ -1124,7 +1124,7 @@
"avF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall,/area/hydroponics)
"avG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"avH" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
-"avI" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
+"avI" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry)
"avJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/crew_quarters/bar)
"avK" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"avL" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/landmark/start{name = "Gardener"},/turf/simulated/floor{dir = 9; icon_state = "green"},/area/hydroponics/garden)
@@ -1991,7 +1991,7 @@
"aMo" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aMp" = (/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aMq" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness)
-"aMr" = (/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
+"aMr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aMs" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aMt" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aMu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/crew_quarters/fitness)
@@ -2155,7 +2155,7 @@
"aPw" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/exit)
"aPx" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry)
"aPy" = (/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry)
-"aPz" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry)
+"aPz" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aPA" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry)
"aPB" = (/turf/simulated/wall,/area/maintenance/port)
"aPC" = (/obj/machinery/cryopod/right,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo)
@@ -3200,7 +3200,7 @@
"bjB" = (/turf/simulated/wall/r_wall,/area/rnd/test_area)
"bjC" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{icon_state = "bot"},/area/bridge/meeting_room)
"bjD" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/supermatter_engine{pixel_x = -3},/turf/simulated/floor/carpet,/area/engine/break_room)
-"bjE" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair_beige (EAST)"; icon_state = "comfychair_beige"; dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room)
+"bjE" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room)
"bjF" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor,/area/engine/chiefs_office)
"bjG" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "map_injector"; id = "air_in"; on = 1},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing)
"bjH" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
@@ -3310,7 +3310,7 @@
"blH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2)
"blI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
"blJ" = (/obj/machinery/camera{c_tag = "Medbay Lounge"; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
-"blK" = (/obj/machinery/light{dir = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
+"blK" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"blL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"blM" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/tech)
"blN" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
@@ -3324,7 +3324,7 @@
"blV" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/security/checkpoint2)
"blW" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/rnd/research)
"blX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
-"blY" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 26},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (WEST)"; icon_state = "comfychair_teal"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
+"blY" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"blZ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing)
"bma" = (/obj/machinery/vending/coffee,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"bmb" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/trunk,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
@@ -3799,7 +3799,7 @@
"bvc" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central)
"bvd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor,/area/hallway/primary/central)
"bve" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2)
-"bvf" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/ward)
+"bvf" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/ward)
"bvg" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virology_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bvh" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"bvi" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
@@ -3987,7 +3987,7 @@
"byI" = (/obj/machinery/atmospherics/trinary/mixer,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
"byJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/carpet,/area/engine/break_room)
"byK" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/asmaint)
-"byL" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room)
+"byL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room)
"byM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/engine/break_room)
"byN" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"byO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
@@ -4031,7 +4031,7 @@
"bzA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi)
"bzB" = (/obj/machinery/airlock_sensor{command = "cycle_interior"; frequency = 1379; id_tag = "eng_eva_int_sensor"; master_tag = "eng_eva_airlock"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance)
"bzC" = (/turf/simulated/wall/r_wall,/area/server)
-"bzD" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/carpet,/area/engine/break_room)
+"bzD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/carpet,/area/engine/break_room)
"bzE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer)
"bzF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/engine/engine_eva_maintenance)
"bzG" = (/turf/simulated/wall,/area/medical/cmo)
@@ -7226,7 +7226,7 @@
"cIX" = (/turf/space,/area/centcom/specops)
"cIY" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops)
"cIZ" = (/obj/machinery/camera{c_tag = "Assault Armor North"; dir = 2; network = list("ERT")},/obj/mecha/combat/gygax/dark,/turf/unsimulated/floor{icon_state = "delivery"; dir = 6},/area/centcom/specops)
-"cJa" = (/obj/machinery/atmospherics/unary/freezer{dir = 8; icon_state = "freezer"; req_access_txt = "56"; set_temperature = 1},/turf/simulated/floor/plating,/area/engine/engine_room)
+"cJa" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/storage/box/syringes,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cJb" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"cJc" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cJd" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "floorscorched1"},/area/prison/solitary)
@@ -7254,7 +7254,7 @@
"cJz" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 4},/area/centcom/specops)
"cJA" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops)
"cJB" = (/turf/unsimulated/floor{icon_state = "loadingarea"; dir = 8},/area/centcom/specops)
-"cJC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 4; name = "Engine Filter Outpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room)
+"cJC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom)
"cJD" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"cJE" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
"cJF" = (/obj/structure/rack,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
@@ -7272,7 +7272,7 @@
"cJR" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT2"; name = "Launch Bay #2"; p_open = 0},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops)
"cJS" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops)
"cJT" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom/specops)
-"cJU" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/storage/box/syringes,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cJU" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flash,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cJV" = (/obj/structure/rack,/obj/item/weapon/gun/grenadelauncher,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cJW" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "platingdmg3"},/area/prison/solitary)
"cJX" = (/turf/unsimulated/floor{icon_state = "platingdmg1"},/area/prison/solitary)
@@ -7328,8 +7328,8 @@
"cKV" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cKW" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom)
"cKX" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom)
-"cKY" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom)
-"cKZ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flash,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cKY" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cKZ" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cLa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops)
"cLb" = (/turf/unsimulated/floor{icon_state = "asteroid6"; name = "sand"},/area/centcom/specops)
"cLc" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
@@ -7348,9 +7348,9 @@
"cLp" = (/obj/machinery/camera{c_tag = "Assault Armor South"; dir = 1; network = list("ERT")},/turf/unsimulated/floor{icon_state = "loadingarea"; dir = 8},/area/centcom/specops)
"cLq" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/weapon/rcd,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cLr" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom)
-"cLs" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cLs" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cLt" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops)
-"cLu" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cLu" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cLv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
"cLw" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
"cLx" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
@@ -7387,8 +7387,8 @@
"cMc" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
"cMd" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
"cMe" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"cMf" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cMg" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cMf" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cMg" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"cMh" = (/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
"cMi" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
"cMj" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
@@ -7442,13 +7442,13 @@
"cNf" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/evac)
"cNg" = (/obj/structure/table,/obj/machinery/processor{pixel_x = 0; pixel_y = 10},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/evac)
"cNh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control)
-"cNi" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cNj" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
-"cNk" = (/obj/effect/landmark{name = "Response Team"},/obj/effect/landmark{name = "Commando"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cNl" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/commander,/obj/item/clothing/suit/space/rig/ert/commander,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom)
-"cNm" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/device/aicard,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "blue"},/area/centcom)
-"cNn" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cNo" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
+"cNi" = (/obj/effect/landmark{name = "Response Team"},/obj/effect/landmark{name = "Commando"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cNj" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/commander,/obj/item/clothing/suit/space/rig/ert/commander,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom)
+"cNk" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/device/aicard,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "blue"},/area/centcom)
+"cNl" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cNm" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
+"cNn" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom)
+"cNo" = (/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom_officer,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
"cNp" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
"cNq" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
"cNr" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
@@ -7459,18 +7459,18 @@
"cNw" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"cNx" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
"cNy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control)
-"cNz" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom)
+"cNz" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"cNA" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 0; name = "Station Intercom (General)"; pixel_x = -28},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
"cNB" = (/obj/structure/closet/secure_closet/injection,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control)
"cNC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control)
-"cND" = (/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom_officer,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
-"cNE" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cNF" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
-"cNG" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cNH" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cNI" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cNJ" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"cNK" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cND" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
+"cNE" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cNF" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cNG" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cNH" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cNI" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cNJ" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"cNK" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "103"; tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
"cNL" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
"cNM" = (/obj/machinery/bodyscanner,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
"cNN" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control)
@@ -8276,7 +8276,7 @@
"ddh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access_txt = "61"},/turf/simulated/floor,/area/turret_protected/tcomfoyer)
"ddi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/entrance)
"ddj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"ddk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance)
+"ddk" = (/obj/structure/rack,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"ddl" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/research)
"ddm" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership)
"ddn" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
@@ -8285,8 +8285,8 @@
"ddq" = (/turf/simulated/floor,/area/tcommsat/entrance)
"ddr" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/turret_protected/tcomsat)
"dds" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/tcommsat/entrance)
-"ddt" = (/obj/machinery/power/smes/magical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/tcommsat/entrance)
-"ddu" = (/obj/machinery/power/smes/magical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/tcommsat/entrance)
+"ddt" = (/obj/structure/rack,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"ddu" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
"ddv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/camera{c_tag = "Power Room West"; dir = 1; network = list("Tcomsat")},/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/tcommsat/entrance)
"ddw" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat)
"ddx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/tcommsat/entrance)
@@ -8581,8 +8581,8 @@
"dja" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_fore_hatch"; locked = 1; name = "Forward Docking Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/plating,/area/shuttle/specops/centcom)
"djb" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_fore"; name = "forward docking hatch controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "0"; tag_door = "specops_shuttle_fore_hatch"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"djc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_shuttle"; pixel_x = 8; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"; tag_door = "escape_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"djd" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"dje" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "103"; tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom)
+"djd" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom)
+"dje" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/tcommsat/entrance)
"djf" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_port_hatch"; locked = 1; name = "Port Docking Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"djg" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northwest_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station)
"djh" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northeast_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station)
@@ -9115,8 +9115,8 @@
"dto" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/tcommsat/entrance)
"dtp" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/tcommsat/entrance)
"dtq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor,/area/tcommsat/entrance)
-"dtr" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance)
-"dts" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor,/area/tcommsat/entrance)
+"dtr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/tcommsat/entrance)
+"dts" = (/obj/machinery/power/smes/magical,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/entrance)
"dtt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcommsat/entrance)
"dtu" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/monitor{name = "telecoms power monitoring"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "bot"},/area/tcommsat/entrance)
"dtv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer)
@@ -10982,7 +10982,7 @@
"edj" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weedkiller/triclopyr,/obj/item/weapon/reagent_containers/glass/fertilizer/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1)
"edk" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/wrench,/obj/item/device/flashlight,/obj/machinery/cell_charger,/turf/simulated/floor,/area/engine/workshop)
"edl" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/meter,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room)
-"edm" = (/obj/structure/rack,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
+"edm" = (/obj/machinery/atmospherics/unary/freezer{dir = 8; icon_state = "freezer"; req_access_txt = "56"; set_temperature = 1},/turf/simulated/floor/plating,/area/engine/engine_room)
"edn" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/engine/engine_waste)
"edo" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room)
"edp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room)
@@ -11078,9 +11078,9 @@
"efb" = (/obj/structure/cable,/obj/machinery/power/solar{id = "construction_solar"; name = "Construction Solar Array"},/turf/simulated/floor{icon_state = "solarpanel"},/area/djstation)
"efc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/djstation)
"efd" = (/obj/machinery/telecomms/relay/preset/ruskie,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/djstation)
-"efe" = (/obj/structure/rack,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"eff" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom)
-"efg" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom)
+"efe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 4; name = "Engine Filter Outpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room)
+"eff" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor,/area/tcommsat/entrance)
+"efg" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -11195,11 +11195,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKbwPblyaEKaELaEMaENaAKbjZbkiaYQblLbhDaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzbTxaWjaWgbTwaVIaWMaWNaWKaWLaWJaAkaaeaygaWIaWpblGaWxaWqaWsblEaWpaZdaZcaxraFnaypazlaFmaBdazoazpaBdaDOaTuaypaDQaVHaWTaFsaFtaXcbdZagjagjagjagjaVEaVFaWSaVxaVybazaVxaXfaVxaXeaVxaXgaXhbTOaFHbcKaBoaXjaXmaXXbxRbxRbxSbAiaXYaXYaXYaXYaXYbaCaXYaXYaYwaYeaXnaRdaRdaYGaYxblNbCeaWQaWQaWQaWRaEsaEsaGeaEsaGfaGgaGhaEsaEubCvaEuaGjaXlaXkbbBaGnaGoaIbasHaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXoaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKaAKblVaYKaYPaYKaQlaQlaYJaYNaYObtjaYMaYLbCwbakbajbJcaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaZXaAkayJbmqayJaAkaAkaaaaygavOaylbmjaZIaZiaZqaZDaZEaZhbglaxraHbaypaFoaCuaAraypaAsaAraCwaZgaypaHdawGaYhaHfaHgaUnaYfalNalNalNalNalNaHjaYbazBbUMaAxazBaHmazBaHnazBaHobcvbcwbcNbczbdNbcXaYUbJUbJJbbvbdAbbwbbvbbvbbxbbzbbybbAbbybbybbybbibLVbcbbawbawbawbmxbaSbawbaxbawbaWaYIaHOaHPaHQaHRaHSaHTaEsaHUbaXaEuaHWaHXbWjaHZaGnaIaaIbasHaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaCnawzawyawxawuawuawuawzawCawDawzawAaImaInawBauKauKaAPaGOaIpaCaaIqaBOaGOaIraIsaItaIuasSaaaaOzaaaaMTavNaMTaaaaaeaaaasSavOaylaAZaBKavZaBLaBcaylaAtaAJaxrachaypazlaIFaIGazoaIHayyazraIKaILaIMawGaBeaIOaIPaAqaBhaISaaaaaaaUnaIUaIVaBsazBaIXaAxaLRaAxaCEaAxaAxaAxauOaBoaKyaBoaBoavJaBoaJcaBoaJdavHavGaJgaJhaJiaJjaJkavFaJjaJjaJjaJjaJjavDaJjaJjaJjaJjaJjaJjaJjaJjasIayRayvaAzaAiaBraBpazHbMsazIavpavlavmavnazFayNayPazDaAXasHaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatHaPRarOaPRaPRaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXazEasSaASavaaKbaKcavbaKeaKbaKbaKfasSavcaylaylazJaAbaAaayLawGaUnazGaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxrazqaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwayKaKxaIZauMavIaKBaKCaJdauyauWauXaznaKHaJjayOayQaPbayVayZaIyaJbaxDaxJayaayCayBaxBaxfaDqaJjauwauvaysaJraxdaxaaJuayqaEsaxNauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaFGazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaETaLFaLFaLFaLIazKaFraLKaLzaxtaNmaLuaLPaIOaGmaIOaLSaIzaFIaLTaLTaLTaLTaLTaLTaOraLVaOAaLXaLYaLZaMaaMbaMcaIOaIOaIOaOBaMeaMfaMeaMgaMhaLSaMjaIzaMkaEgaBoaMlaxMaOOaMoaMnaMpaxKaMraMsaMtaJdaxLaMvaMwaMwaMxaJjaDJaFTaEJaEJaEJaEJaEJaFqaBaaEOaEUaExaEJaEJaHMaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaEpaEuaytaMRaHZavTaEuaRhaymayeaIbaEyaEyaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatHaPRarOaPRaPRaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXazEasSaASavaaKbaKcavbaKeaKbaKbaKfasSavcaylaylazJaAbaAaayLawGaUnazGaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxrazqaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwayKaKxaIZauMaMraKBaKCaJdauyauWauXaznaKHaJjayOayQaPbayVayZaIyaJbaxDaxJayaayCayBaxBaxfaDqaJjauwauvaysaJraxdaxaaJuayqaEsaxNauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaFGazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaETaLFaLFaLFaLIazKaFraLKaLzaxtaNmaLuaLPaIOaGmaIOaLSaIzaFIaLTaLTaLTaLTaLTaLTaOraLVaOAaLXaLYaLZaMaaMbaMcaIOaIOaIOaOBaMeaMfaMeaMgaMhaLSaMjaIzaMkaEgaBoaMlaxMaOOaMoaMnaMpaxKaPzaMsaMtaJdaxLaMvaMwaMwaMxaJjaDJaFTaEJaEJaEJaEJaEJaFqaBaaEOaEUaExaEJaEJaHMaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaEpaEuaytaMRaHZavTaEuaRhaymayeaIbaEyaEyaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXarBaMVaAFaAFaAFaAFaMWarBawXaAHasSaCFaMXaMYaDKavSaNbaNbaNcatHaNdaLsaxAaNfaLuaxzaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaCDaxiaxuaLzaLzaLzaxpayuaLzaLzaLzaLzaxvaLzaLzaLzaxtaNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBbNwaCjaCWaCQaMpaNEaMpaMpawEaNGaMsaCoaJdawFawJawSaQLaNMaJjaDraDHaCpaCpaCpaCpaCpaCqaCTaDlaDmaCpaCpaCzaNRaJjasIarZaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuavQaEuaIbaIbasHaIbaNZaOaaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSatlaxTaMYaOhaOiaNbaNbaNcatHaOjaLsasDaNfaLuasXaLAaLzaLzaRyaChaEzaRCaLzausaOmardaOmaALatmarMaOmaOvaOwatzathauaatkatjatiatcatbatbasYaVdaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoasQasOasCasCasCaMCaAYaNGaMsaBQaJdaJdaJdaJdaJdaOUaJjatsatraSgaTAaTzaUSatQatEaCKatyatCasUasNasNasWaJjasIarZaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaEZaVbasbaIbaIbasHaIbaEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeatHaxRarBaJMayWaxTaxTayXaJMarBaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsasDatHaPRarOasnaPRaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEatHatHascaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaZHaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaTwaQwaQyaQzasfasfasfasLasMasAasfasfasfasfasaarZaQGaHPaPgaPhaHPaHPaQHaEsasBaQJaQKaEyaIbarpaPraSoaPoasgaIbaQQaQRaEyasKasJaPtaQUaQVaQWaaeaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeatHaxRarBaJMayWaxTaxTayXaJMarBaJMaPxawYaPyaxTaxRavIavIaLpavIaLqatHaPAaLsasDatHaPRarOasnaPRaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEatHatHascaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaZHaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaTwaQwaQyaQzasfasfasfasLasMasAasfasfasfasfasaarZaQGaHPaPgaPhaHPaHPaQHaEsasBaQJaQKaEyaIbarpaPraSoaPoasgaIbaQQaQRaEyasKasJaPtaQUaQVaQWaaeaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcatUaPBbupbuobziautaumaxwaRkaRlaRmaRnaRoaRpaukaRraRsaRtaujaxhaRwaxIaPKatwaPMaPMaRzaPMaugaPSaPSaRBbaHaPSaPSaPSaxyaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOauZaRRaRSatDaQoaQoaQoaQoaQoaRUatGaQoaQoaQoaQraMpaRWaRXaRYaRZatxaRXavKaSdavEasAaSnbcWavLawfawHawvawTawIasfasIarZaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaGvatZaulaulaulatNaJoaEyaEyaEyawtaSqaSraSsbeKaSuaaeaaeaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTavzavkaxTaSAaSBaueaSDatuaPBbCJbCIbeRaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtasEaSJaSKauRaPKatwaPMaSMaSNaupaFpaPSaxeaSRbdnavqaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZavCaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoatnaTjaTkaQoaTlaTmaCIatqaToaTkaQoaQraMpaTpaRXaTqaTratTaTtauxauAauDauQauUauVauYavjavyavxavwavvasfasIarZaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyarDastaSoaSoaSoasgaIbaIbaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTRaTRatHatHaTSaFuaTSaTSaTSaBgaTSaBgaPBbCJattbNuaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcasEaUdaUeaNCaPKaFkaPMaVJaUiaUjaWPaPSaNHbdsbdyaSSccoaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDatnaToaTkaQoaUEaUFaQoaFjaUHaTkaQoaQraMpaUIaRXaOtaFzaFyaUMaFxaUOaSbaTyawhawiaQTaNOavyaKTavwaTvasfasIarZaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaFwaQqaVfaEyaVgaSsaSsaSsaSQaNNaSeaPeaTiaTaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -11274,7 +11274,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacfWcfXcfYaaacfWcfXcfYaaacfWcfXcfYaaeaaeaaaaaaaaaaaaaaeaaeaaaaaaaaaaaacsLaaaaaabZUcdBcdEcfIcfQcfacftcdVcdOcdOcdTcdvbZDcdebZCbZCbZCccbcgtbZLbZjcVGcVGcVGcVGcVGcVGcVGaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacfWchecfYaaacfWchecfYaaacfWchecfYaaeaaeaaeaaeaaaaaacthaaaaaaaaaaaeaaaaaaaaaaaabZUcdBcdEcfZcfQcfacftcgacftcgbcgjcgncgmcgDcglcglcgZchCchgcgGbZjaaeaaeaaEaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaecfWchecfYaaacfWchecfYaaecfWchecfYaaeaaaaaaaaeaaectyaaaaaaaaaaaaaaaaaaaaaaaaaaabZUcdBcjjcjocjQcfacftcrvcrHcjZcrmcimcgXcfocascascascjhcjdcgYbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaabZUedsedrednctkcPDbZCedqedpedoecWecVecWecTecUedlcJCecXecYcJabZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaabZUedsedrednctkcPDbZCedqedpedoecWecVecWecTecUedlefeecXecYedmbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaEaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaeaaaaaaaaaaaaaaeaaecjMcjNcjNcjNcjNcOXcPddgDecRecRecRecPbZjbZCbZCcPVbZjbZjbZjecMcWdecQbZjbZjbZjecScRccPSbZjaaeaaabYSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaeaaaaaeaaeckAaaeaaeaaeckAaaeaaaaaeckAaaeaaaaaaaaaaaaaaackBckCckDckEckFcPBcPqdhRdgEdigdicdicdihdpKbZjcOWbZCcvGcttcvEcIGecOcOLecNcIGctscttcyVbZCecLbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaecltclucluclvclwclwclwclwclwclwclwclwclwclwclwclwclwclwcEZclydidcELcBvclCcwKclEdyKdyKdyKdyKdyMdyKdyNbZjbZCbZCcvGcttcvEcwIctpcyWcyXcwIctscttcyVbZCcyhbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -11469,23 +11469,23 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcHocGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcHfcGbcGbcGbcGbcGrcGrcIzcIAcGrcGrcGrcIzcIBcIAcGrcGXcGXcGXcGrcICcIDcIDcIDcIDcIDcIEcGrcGFcHbcIFcUQcHtcHtcHtcUycIIcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxaaacCFcFycFycFycCFaaadpBcFBcFCcFDdpPaaacCFcFycFycFycCFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGrcIJcIJcIJcIJcIJcIJcIJcIJcIJcGrcGrcIKcGrcGrcIJcIJcIJcIJcIJcIJcIJcGrcGFcHbcILcIMcINcINcINcIMcIOcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpBcFBcFCcFDdpPaaaaaaaaaaaaaaaaaaaaadpBcFBcFCcFDdpPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcFYcIPcFYcFYcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIRcIRcIRcIRcIRcIRcIRcGrcIScITcIScGrcIRcIRcIRcIRcIRcIRcIRcIRcGFcHbcHbcIUcIVcIVcIVcIWcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJbcFYcNFcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYx
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJbcFYcNDcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYx
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJxcJycJwcJwcJwcJwcJzcJxcJAcJBcJDcFYcLtcJEcJFcIQcJGcJHcIQcJGcJjcIQcJGcJHcIQcJGcJmcIQcJGcJgcIQcJGcJjcIQcJGcJicIQcJncIRcJIcJJcJJcJJcJJcGrcIScITcIScGrcJucJucJucJucJucIRaaaaaacJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcIRcIRcIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYx
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcJLcJDcFYcLtcJEcJMcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcJncIRcJIcJJcJJcJJcJJcGrcGrcIKcGrcGrcJucJucJucJucJucIRcJKcJKcJKcJKcJKcJKcJNcJOcJPcIRcJQcJQcJQcIRcJQcJQcJQcJQcJQcJQcJQcJQcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYx
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJRcJycJwcJwcJwcJwcJzcJRcJScJBcJTcNocLtcJEcJVcIQcJWcJmcIQcJfcJXcIQcJfcJHcIQcJYcJicIQcJfcJicIQcJZcJjcIQcJfcJmcIQcJncIRcKadQYdPKcKccKdcIRcKecKecKecIRcJucJucJucJucJucIRcKfcKgcKfcKhcKicJKcKjcKjcKjcKkcJQcJQcJQcKkcJQcKlcKmcKlcJQcKncKocKpcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYx
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJRcJycJwcJwcJwcJwcJzcJRcJScJBcJTcNmcLtcJEcJVcIQcJWcJmcIQcJfcJXcIQcJfcJHcIQcJYcJicIQcJfcJicIQcJZcJjcIQcJfcJmcIQcJncIRcKadQYdPKcKccKdcIRcKecKecKecIRcJucJucJucJucJucIRcKfcKgcKfcKhcKicJKcKjcKjcKjcKkcJQcJQcJQcKkcJQcKlcKmcKlcJQcKncKocKpcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYx
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKrcIQcJGcKscIQcJGcJjcIQcJGcJicIQcJGcJjcJhcJGcJjcIQcJGcJXcIQcJGcKtcIQcJncIRcKucIRcKvcKwcKxcIRcJJcJJcJJcIRcKvcKwcKycIRcKzcIRcKAcKBcKAcKBcKAcJKcIRcIRcIRcIRcJQcJQcJQcIRcKCcKDcKlcKEcKCcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYx
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcKHcJycJwcJwcJwcJwcJzcKHcKIcJBcJDcFYcLtcJEcKJcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcJncIRcJJcJJcKKcKbcKbcKbcKbcKbcKbcKbcKbcKbcKLcJJcJJcKMcKAcKAcKAcKAcKAcJKcKNcKjcJNcIRcJQcJQcJQcIRcKOcKOcKPcKOcKOcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKQcKRcKRcFYcKScKTcKUcNEcKVcFYcKWcKXcFYcNDcNDcNDcNDcNDcNDcNzcLacLbcIPcJncIRcJJcJJcLccLdcLecLecLecLecLecLecLecLfcJIcJJcJJcJKcLgcLhcLicLjcLkcJKcLlcKjcJOcIRcJQcJQcJQcIRcLmcLmcKjcLmcLmcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcLncJycJwcJwcJwcJwcJzcLncLocLpcJDcFYcLtcJEcJEcJEcJEcFYcJEcJEcJEcJEcLqcFYcKXcLrcMxcNkcNkcNkcNkcNkcNkcKYcIPcIPcIPcIPcIPcJJcJJcLccLvcLwcJJcLxcLycLzcJJcLwcLvcJIcJJcJJcJKcJKcJKcJKcJKcJKcJKcLlcKjcJOcIRcJQcJQcJQcIRcLAcLAcKjcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYx
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcFYcNjcLBcLCcLDcJEcFYcJEcLEcLEcNidiPcFYcKXcKXcIPcLHcLIcLIcLIcLJcLIcLKcIPcLLcLLcLLcIPcJJcJJcLMcLNcLOcLPcLQcLRcLScLTcLUcLNcLVcJJcJJcIRcLWcLWcLWcLWcLWcIRcIRcKkcIRcIRcIRcKkcIRcIRcKjcKjcKjcKjcKjcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYx
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKQcKRcKRcFYcKScKTcKUcNzcKVcFYcKWcKXcFYcNocNocNocNocNocNocNncLacLbcIPcJncIRcJJcJJcLccLdcLecLecLecLecLecLecLecLfcJIcJJcJJcJKcLgcLhcLicLjcLkcJKcLlcKjcJOcIRcJQcJQcJQcIRcLmcLmcKjcLmcLmcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcLncJycJwcJwcJwcJwcJzcLncLocLpcJDcFYcLtcJEcJEcJEcJEcFYcJEcJEcJEcJEcLqcFYcKXcLrcMxcNicNicNicNicNicNicJCcIPcIPcIPcIPcIPcJJcJJcLccLvcLwcJJcLxcLycLzcJJcLwcLvcJIcJJcJJcJKcJKcJKcJKcJKcJKcJKcLlcKjcJOcIRcJQcJQcJQcIRcLAcLAcKjcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYx
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcFYcMgcLBcLCcLDcJEcFYcJEcLEcLEcMfdiPcFYcKXcKXcIPcLHcLIcLIcLIcLJcLIcLKcIPcLLcLLcLLcIPcJJcJJcLMcLNcLOcLPcLQcLRcLScLTcLUcLNcLVcJJcJJcIRcLWcLWcLWcLWcLWcIRcIRcKkcIRcIRcIRcKkcIRcIRcKjcKjcKjcKjcKjcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYx
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcLXcFYcLYcFYcFYcFYcFYcFYcKXcLrcLZcMacMacMacMacMacMacMacMbcMacMacMacMbcJJcJJcJJcMccJJcJJcMdcJJcMdcJJcJJcMccJJcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYx
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNmcNlcNncFYcJEcMhcJEcMicJEcMjcJEcJEcJEcMkcIPcMlcMmcMmcMncMocMpcMqcIPcMrcMrcMrcIPcJJcJJcKKcMscMtcLPcMucJJcMvcLTcMwcMscKLcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcIRcKkcKkcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNkcNjcNlcFYcJEcMhcJEcMicJEcMjcJEcJEcJEcMkcIPcMlcMmcMmcMncMocMpcMqcIPcMrcMrcMrcIPcJJcJJcKKcMscMtcLPcMucJJcMvcLTcMwcMscKLcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcIRcKkcKkcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJEcJEcJEcMxcJEcMycJEcKXcKXcKXcMzcMzcKXcMkcIPcMAcMAcMAcMBcMCcMBcMDcIPcIPcIPcIPcIPcJJcJJcLccLNcMEcJJcMdcJJcMdcJJcMEcLNcJIcJJcJJcIRcMFcMGcMGcMGcMHcIRcIRcMIcIRcIRcIRcKkcIRcIRcIRcMJcMJcMJcIRcIRcJQcJQcJQcMKcJQcMLcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcMMcFYcJEcKXcKXcMNcMOcMOcMPcMkcIPcIPcMQcMRcMScMTcMUcMVcMQaaaaaaaaacIRcJJcJJcLccIRcIRcMWcMXcJJcMYcMZcIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNacNbcIRcKjcNccKjcKjcNdcNecNfcNfcNfcNgcIRcJQcJQcKmcKmcJQcJQcNhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJUcLscLscLucJEcFYcJEcKXcKXcMNcMOcMOcMPcLGcMfcMgcMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJUcJEcJEcJEcJEcFYcJEcJEcJEcJEcKYcKYcKXcKXcKXcKZcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNGcNGefeedmeffcFYdjddjddjddjecJEcJEcNKcNJcNIcNHcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdaQcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYefgefgcFYcFYcFYcFYcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcBUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJ
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJacKYcKYcKZcJEcFYcJEcKXcKXcMNcMOcMOcMPcLGcLscLucMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJacJEcJEcJEcJEcFYcJEcJEcJEcJEcJCcJCcKXcKXcKXcJUcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNEcNEddtddkdducFYcNJcNJcNJcNKcJEcJEcNIcNHcNGcNFcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdaQcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYdjddjdcFYcFYcFYcFYcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcBUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJ
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNVcNWcNWcNVaaaaaaaaacMQcNrcNXcNYcNZcNYcMQdRydRZdRZdRydRJdRCcJJdRzcIRcJocLVcJJcLMcOhcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcJQcJQcOccOccJQcJQcObaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOdcOecOecOecOedjfdjfcOecOecOgaaacMQcNrcNrcNrcNrcNrcMQdRydRYdRYdRydRRdRCcJJdRzcIRcJIcJJcJJcJJcLccIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdXUdXTcOFaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcOicJQcJQcJQcJQcOjcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOmdiYdiXcOpcOpcOqcOqcOecOgcMQcMQcMQcMQcMQcMQcMQdRydRydRydRydRBdRCcJJdRzcIRdRAcORdRAdRDdRAcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdaCdiZdROdaFcOFaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -11733,8 +11733,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYZcYYcYZcZAdtLdtMdtMdtMdtMdufdtNdtPdtQdcQdMPduqduldupdtMdsMdtMdtMdugcZFcYZcYYdcWcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWdcXcYYcYZcYZdaydaydcYdaydaydcAdcZddadtwdcQddcdddddedcAdaydaydaydaydaycYZcYZcYYcYZcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYZcYYcYZcYZcYZcYZcYYcYZddfdcAdcAdcAdtvddhdcAdcAdcAdcAddfcYZcYZcYZcYZcYZcYZcYYcYZcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYYcYYcYYcYYcYYcYYcYYcYYddiddudtrddpdtsdttdMGddpddqdtuddscYYcYYcYYcYYcYYcYYcYYcYYcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalaalcYWcYYcYZcYZcYZcYZcYZcYWddfddtddkddvdtqddxddyddzddyddAddfcYWcYZcYZcYZcYZcYZcYYcYWaalaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYYcYYcYYcYYcYYcYYcYYcYYddidtsefgddpeffdttdMGddpddqdtuddscYYcYYcYYcYYcYYcYYcYYcYYcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalaalcYWcYYcYZcYZcYZcYZcYZcYWddfdtrdjeddvdtqddxddyddzddyddAddfcYWcYZcYZcYZcYZcYZcYYcYWaalaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZaalaalcYWcYWcYWcYWcYWcYWcYWddfddfddfddfdtpddCddDddfddfddfddfcYWcYWcYWcYWcYWcYWcYWaalaalclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZaalaalaalaalaalaalaalaalaalaalaalddfdtoddFddGddfaalaalaalaalaalaalaalaalaalaalaalclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZclZclZclZclZclZclZclZclZclZddfddfdtnddIddJddfddfclZclZclZclZclZclZclZclZclZclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/sound/music/halloween/ghosts.ogg b/sound/music/halloween/ghosts.ogg
deleted file mode 100644
index 26c40917a58..00000000000
Binary files a/sound/music/halloween/ghosts.ogg and /dev/null differ
diff --git a/sound/music/halloween/halloween.ogg b/sound/music/halloween/halloween.ogg
deleted file mode 100644
index c739941be33..00000000000
Binary files a/sound/music/halloween/halloween.ogg and /dev/null differ
diff --git a/sound/music/halloween/skeletons.ogg b/sound/music/halloween/skeletons.ogg
deleted file mode 100644
index 2b0b6878bf4..00000000000
Binary files a/sound/music/halloween/skeletons.ogg and /dev/null differ
diff --git a/sound/vox/,.wav b/sound/vox/,.wav
deleted file mode 100644
index 31a47dca600..00000000000
Binary files a/sound/vox/,.wav and /dev/null differ
diff --git a/sound/vox/..wav b/sound/vox/..wav
deleted file mode 100644
index 7eeb1eb9bc5..00000000000
Binary files a/sound/vox/..wav and /dev/null differ
diff --git a/sound/vox/a.wav b/sound/vox/a.wav
deleted file mode 100644
index c6981d29026..00000000000
Binary files a/sound/vox/a.wav and /dev/null differ
diff --git a/sound/vox/accelerating.wav b/sound/vox/accelerating.wav
deleted file mode 100644
index e86b18a04b1..00000000000
Binary files a/sound/vox/accelerating.wav and /dev/null differ
diff --git a/sound/vox/accelerator.wav b/sound/vox/accelerator.wav
deleted file mode 100644
index be097b6caaa..00000000000
Binary files a/sound/vox/accelerator.wav and /dev/null differ
diff --git a/sound/vox/accepted.wav b/sound/vox/accepted.wav
deleted file mode 100644
index 59160849e24..00000000000
Binary files a/sound/vox/accepted.wav and /dev/null differ
diff --git a/sound/vox/access.wav b/sound/vox/access.wav
deleted file mode 100644
index 25fd0988830..00000000000
Binary files a/sound/vox/access.wav and /dev/null differ
diff --git a/sound/vox/acknowledge.wav b/sound/vox/acknowledge.wav
deleted file mode 100644
index 14946cccf88..00000000000
Binary files a/sound/vox/acknowledge.wav and /dev/null differ
diff --git a/sound/vox/acknowledged.wav b/sound/vox/acknowledged.wav
deleted file mode 100644
index 232d9c3bf7a..00000000000
Binary files a/sound/vox/acknowledged.wav and /dev/null differ
diff --git a/sound/vox/acquired.wav b/sound/vox/acquired.wav
deleted file mode 100644
index 7eecdf91409..00000000000
Binary files a/sound/vox/acquired.wav and /dev/null differ
diff --git a/sound/vox/acquisition.wav b/sound/vox/acquisition.wav
deleted file mode 100644
index 11be7dc475d..00000000000
Binary files a/sound/vox/acquisition.wav and /dev/null differ
diff --git a/sound/vox/across.wav b/sound/vox/across.wav
deleted file mode 100644
index 1591e897001..00000000000
Binary files a/sound/vox/across.wav and /dev/null differ
diff --git a/sound/vox/activate.wav b/sound/vox/activate.wav
deleted file mode 100644
index 32a45cbf229..00000000000
Binary files a/sound/vox/activate.wav and /dev/null differ
diff --git a/sound/vox/activated.wav b/sound/vox/activated.wav
deleted file mode 100644
index 154e0389e83..00000000000
Binary files a/sound/vox/activated.wav and /dev/null differ
diff --git a/sound/vox/activity.wav b/sound/vox/activity.wav
deleted file mode 100644
index 5920e6dd387..00000000000
Binary files a/sound/vox/activity.wav and /dev/null differ
diff --git a/sound/vox/adios.wav b/sound/vox/adios.wav
deleted file mode 100644
index 86e268ca1f1..00000000000
Binary files a/sound/vox/adios.wav and /dev/null differ
diff --git a/sound/vox/administration.wav b/sound/vox/administration.wav
deleted file mode 100644
index d85d67eabff..00000000000
Binary files a/sound/vox/administration.wav and /dev/null differ
diff --git a/sound/vox/advanced.wav b/sound/vox/advanced.wav
deleted file mode 100644
index 987cd05b2a2..00000000000
Binary files a/sound/vox/advanced.wav and /dev/null differ
diff --git a/sound/vox/after.wav b/sound/vox/after.wav
deleted file mode 100644
index f63abdff558..00000000000
Binary files a/sound/vox/after.wav and /dev/null differ
diff --git a/sound/vox/agent.wav b/sound/vox/agent.wav
deleted file mode 100644
index 594932971e3..00000000000
Binary files a/sound/vox/agent.wav and /dev/null differ
diff --git a/sound/vox/alarm.wav b/sound/vox/alarm.wav
deleted file mode 100644
index 296ca773d66..00000000000
Binary files a/sound/vox/alarm.wav and /dev/null differ
diff --git a/sound/vox/alert.wav b/sound/vox/alert.wav
deleted file mode 100644
index 1a749b7c74b..00000000000
Binary files a/sound/vox/alert.wav and /dev/null differ
diff --git a/sound/vox/alien.wav b/sound/vox/alien.wav
deleted file mode 100644
index 58909559957..00000000000
Binary files a/sound/vox/alien.wav and /dev/null differ
diff --git a/sound/vox/aligned.wav b/sound/vox/aligned.wav
deleted file mode 100644
index 20bbe5bfa72..00000000000
Binary files a/sound/vox/aligned.wav and /dev/null differ
diff --git a/sound/vox/all.wav b/sound/vox/all.wav
deleted file mode 100644
index 5bfc4dee60e..00000000000
Binary files a/sound/vox/all.wav and /dev/null differ
diff --git a/sound/vox/alpha.wav b/sound/vox/alpha.wav
deleted file mode 100644
index d64239ec881..00000000000
Binary files a/sound/vox/alpha.wav and /dev/null differ
diff --git a/sound/vox/am.wav b/sound/vox/am.wav
deleted file mode 100644
index c273e5231d0..00000000000
Binary files a/sound/vox/am.wav and /dev/null differ
diff --git a/sound/vox/amigo.wav b/sound/vox/amigo.wav
deleted file mode 100644
index 03ec617c294..00000000000
Binary files a/sound/vox/amigo.wav and /dev/null differ
diff --git a/sound/vox/ammunition.wav b/sound/vox/ammunition.wav
deleted file mode 100644
index 148605c2ca0..00000000000
Binary files a/sound/vox/ammunition.wav and /dev/null differ
diff --git a/sound/vox/an.wav b/sound/vox/an.wav
deleted file mode 100644
index 5755607e36d..00000000000
Binary files a/sound/vox/an.wav and /dev/null differ
diff --git a/sound/vox/and.wav b/sound/vox/and.wav
deleted file mode 100644
index 6e155c09d97..00000000000
Binary files a/sound/vox/and.wav and /dev/null differ
diff --git a/sound/vox/announcement.wav b/sound/vox/announcement.wav
deleted file mode 100644
index 9d185ead91e..00000000000
Binary files a/sound/vox/announcement.wav and /dev/null differ
diff --git a/sound/vox/anomalous.wav b/sound/vox/anomalous.wav
deleted file mode 100644
index 1db9a4fa09a..00000000000
Binary files a/sound/vox/anomalous.wav and /dev/null differ
diff --git a/sound/vox/antenna.wav b/sound/vox/antenna.wav
deleted file mode 100644
index fa82d58cb9c..00000000000
Binary files a/sound/vox/antenna.wav and /dev/null differ
diff --git a/sound/vox/any.wav b/sound/vox/any.wav
deleted file mode 100644
index 73bed24661c..00000000000
Binary files a/sound/vox/any.wav and /dev/null differ
diff --git a/sound/vox/apprehend.wav b/sound/vox/apprehend.wav
deleted file mode 100644
index 874ef839637..00000000000
Binary files a/sound/vox/apprehend.wav and /dev/null differ
diff --git a/sound/vox/approach.wav b/sound/vox/approach.wav
deleted file mode 100644
index 5c5e1995df8..00000000000
Binary files a/sound/vox/approach.wav and /dev/null differ
diff --git a/sound/vox/are.wav b/sound/vox/are.wav
deleted file mode 100644
index bacdb31e2a3..00000000000
Binary files a/sound/vox/are.wav and /dev/null differ
diff --git a/sound/vox/area.wav b/sound/vox/area.wav
deleted file mode 100644
index f2ac3dd05af..00000000000
Binary files a/sound/vox/area.wav and /dev/null differ
diff --git a/sound/vox/arm.wav b/sound/vox/arm.wav
deleted file mode 100644
index 225abed39ec..00000000000
Binary files a/sound/vox/arm.wav and /dev/null differ
diff --git a/sound/vox/armed.wav b/sound/vox/armed.wav
deleted file mode 100644
index 55e4a67c667..00000000000
Binary files a/sound/vox/armed.wav and /dev/null differ
diff --git a/sound/vox/armor.wav b/sound/vox/armor.wav
deleted file mode 100644
index 2ca51709d4d..00000000000
Binary files a/sound/vox/armor.wav and /dev/null differ
diff --git a/sound/vox/armory.wav b/sound/vox/armory.wav
deleted file mode 100644
index 63fff9e39e3..00000000000
Binary files a/sound/vox/armory.wav and /dev/null differ
diff --git a/sound/vox/arrest.wav b/sound/vox/arrest.wav
deleted file mode 100644
index cdc24ec627d..00000000000
Binary files a/sound/vox/arrest.wav and /dev/null differ
diff --git a/sound/vox/ass.wav b/sound/vox/ass.wav
deleted file mode 100644
index 2b6698aa668..00000000000
Binary files a/sound/vox/ass.wav and /dev/null differ
diff --git a/sound/vox/at.wav b/sound/vox/at.wav
deleted file mode 100644
index 0b1b9396e58..00000000000
Binary files a/sound/vox/at.wav and /dev/null differ
diff --git a/sound/vox/atomic.wav b/sound/vox/atomic.wav
deleted file mode 100644
index 6a00304807f..00000000000
Binary files a/sound/vox/atomic.wav and /dev/null differ
diff --git a/sound/vox/attention.wav b/sound/vox/attention.wav
deleted file mode 100644
index e9078e6d9e0..00000000000
Binary files a/sound/vox/attention.wav and /dev/null differ
diff --git a/sound/vox/authorize.wav b/sound/vox/authorize.wav
deleted file mode 100644
index 3dcff1208b9..00000000000
Binary files a/sound/vox/authorize.wav and /dev/null differ
diff --git a/sound/vox/authorized.wav b/sound/vox/authorized.wav
deleted file mode 100644
index 67672abf35b..00000000000
Binary files a/sound/vox/authorized.wav and /dev/null differ
diff --git a/sound/vox/automatic.wav b/sound/vox/automatic.wav
deleted file mode 100644
index 8e676b08277..00000000000
Binary files a/sound/vox/automatic.wav and /dev/null differ
diff --git a/sound/vox/away.wav b/sound/vox/away.wav
deleted file mode 100644
index e1a3bee4d8c..00000000000
Binary files a/sound/vox/away.wav and /dev/null differ
diff --git a/sound/vox/b.wav b/sound/vox/b.wav
deleted file mode 100644
index 751c7b7b1ac..00000000000
Binary files a/sound/vox/b.wav and /dev/null differ
diff --git a/sound/vox/back.wav b/sound/vox/back.wav
deleted file mode 100644
index b2f4e56e40a..00000000000
Binary files a/sound/vox/back.wav and /dev/null differ
diff --git a/sound/vox/backman.wav b/sound/vox/backman.wav
deleted file mode 100644
index 60e149eaeec..00000000000
Binary files a/sound/vox/backman.wav and /dev/null differ
diff --git a/sound/vox/bad.wav b/sound/vox/bad.wav
deleted file mode 100644
index b59100564fe..00000000000
Binary files a/sound/vox/bad.wav and /dev/null differ
diff --git a/sound/vox/bag.wav b/sound/vox/bag.wav
deleted file mode 100644
index ccbf3f851ef..00000000000
Binary files a/sound/vox/bag.wav and /dev/null differ
diff --git a/sound/vox/bailey.wav b/sound/vox/bailey.wav
deleted file mode 100644
index deca97dc6b0..00000000000
Binary files a/sound/vox/bailey.wav and /dev/null differ
diff --git a/sound/vox/barracks.wav b/sound/vox/barracks.wav
deleted file mode 100644
index c7cc651cedb..00000000000
Binary files a/sound/vox/barracks.wav and /dev/null differ
diff --git a/sound/vox/base.wav b/sound/vox/base.wav
deleted file mode 100644
index a4c6c829e59..00000000000
Binary files a/sound/vox/base.wav and /dev/null differ
diff --git a/sound/vox/bay.wav b/sound/vox/bay.wav
deleted file mode 100644
index 769dfc38c28..00000000000
Binary files a/sound/vox/bay.wav and /dev/null differ
diff --git a/sound/vox/be.wav b/sound/vox/be.wav
deleted file mode 100644
index 38074711b49..00000000000
Binary files a/sound/vox/be.wav and /dev/null differ
diff --git a/sound/vox/been.wav b/sound/vox/been.wav
deleted file mode 100644
index 959f08ebf5a..00000000000
Binary files a/sound/vox/been.wav and /dev/null differ
diff --git a/sound/vox/before.wav b/sound/vox/before.wav
deleted file mode 100644
index a7c2cdd5b2a..00000000000
Binary files a/sound/vox/before.wav and /dev/null differ
diff --git a/sound/vox/beyond.wav b/sound/vox/beyond.wav
deleted file mode 100644
index d0641c009b8..00000000000
Binary files a/sound/vox/beyond.wav and /dev/null differ
diff --git a/sound/vox/biohazard.wav b/sound/vox/biohazard.wav
deleted file mode 100644
index 6ee3aca426f..00000000000
Binary files a/sound/vox/biohazard.wav and /dev/null differ
diff --git a/sound/vox/biological.wav b/sound/vox/biological.wav
deleted file mode 100644
index fef86450b14..00000000000
Binary files a/sound/vox/biological.wav and /dev/null differ
diff --git a/sound/vox/birdwell.wav b/sound/vox/birdwell.wav
deleted file mode 100644
index 6436f724f03..00000000000
Binary files a/sound/vox/birdwell.wav and /dev/null differ
diff --git a/sound/vox/bizwarn.wav b/sound/vox/bizwarn.wav
deleted file mode 100644
index ff392b491a0..00000000000
Binary files a/sound/vox/bizwarn.wav and /dev/null differ
diff --git a/sound/vox/black.wav b/sound/vox/black.wav
deleted file mode 100644
index 52dd0881aee..00000000000
Binary files a/sound/vox/black.wav and /dev/null differ
diff --git a/sound/vox/blast.wav b/sound/vox/blast.wav
deleted file mode 100644
index fa8d79fbb45..00000000000
Binary files a/sound/vox/blast.wav and /dev/null differ
diff --git a/sound/vox/blocked.wav b/sound/vox/blocked.wav
deleted file mode 100644
index 5e086f4bce3..00000000000
Binary files a/sound/vox/blocked.wav and /dev/null differ
diff --git a/sound/vox/bloop.wav b/sound/vox/bloop.wav
deleted file mode 100644
index 49cf90c5230..00000000000
Binary files a/sound/vox/bloop.wav and /dev/null differ
diff --git a/sound/vox/blue.wav b/sound/vox/blue.wav
deleted file mode 100644
index 83a6e7c3ebe..00000000000
Binary files a/sound/vox/blue.wav and /dev/null differ
diff --git a/sound/vox/bottom.wav b/sound/vox/bottom.wav
deleted file mode 100644
index 2330a74b285..00000000000
Binary files a/sound/vox/bottom.wav and /dev/null differ
diff --git a/sound/vox/bravo.wav b/sound/vox/bravo.wav
deleted file mode 100644
index 560af14f2c8..00000000000
Binary files a/sound/vox/bravo.wav and /dev/null differ
diff --git a/sound/vox/breach.wav b/sound/vox/breach.wav
deleted file mode 100644
index 89a61783346..00000000000
Binary files a/sound/vox/breach.wav and /dev/null differ
diff --git a/sound/vox/breached.wav b/sound/vox/breached.wav
deleted file mode 100644
index f4028d18a8c..00000000000
Binary files a/sound/vox/breached.wav and /dev/null differ
diff --git a/sound/vox/break.wav b/sound/vox/break.wav
deleted file mode 100644
index 124720295b9..00000000000
Binary files a/sound/vox/break.wav and /dev/null differ
diff --git a/sound/vox/bridge.wav b/sound/vox/bridge.wav
deleted file mode 100644
index cbb0cb461d7..00000000000
Binary files a/sound/vox/bridge.wav and /dev/null differ
diff --git a/sound/vox/bust.wav b/sound/vox/bust.wav
deleted file mode 100644
index 6af0f12c80f..00000000000
Binary files a/sound/vox/bust.wav and /dev/null differ
diff --git a/sound/vox/but.wav b/sound/vox/but.wav
deleted file mode 100644
index 0728ed3e1ee..00000000000
Binary files a/sound/vox/but.wav and /dev/null differ
diff --git a/sound/vox/button.wav b/sound/vox/button.wav
deleted file mode 100644
index bc583238cab..00000000000
Binary files a/sound/vox/button.wav and /dev/null differ
diff --git a/sound/vox/buzwarn.wav b/sound/vox/buzwarn.wav
deleted file mode 100644
index 82ddd2cdb37..00000000000
Binary files a/sound/vox/buzwarn.wav and /dev/null differ
diff --git a/sound/vox/bypass.wav b/sound/vox/bypass.wav
deleted file mode 100644
index b5155d37ff5..00000000000
Binary files a/sound/vox/bypass.wav and /dev/null differ
diff --git a/sound/vox/c.wav b/sound/vox/c.wav
deleted file mode 100644
index 9fcfc5e7453..00000000000
Binary files a/sound/vox/c.wav and /dev/null differ
diff --git a/sound/vox/cable.wav b/sound/vox/cable.wav
deleted file mode 100644
index d7610926510..00000000000
Binary files a/sound/vox/cable.wav and /dev/null differ
diff --git a/sound/vox/call.wav b/sound/vox/call.wav
deleted file mode 100644
index aa06767b949..00000000000
Binary files a/sound/vox/call.wav and /dev/null differ
diff --git a/sound/vox/called.wav b/sound/vox/called.wav
deleted file mode 100644
index f0c2897c8d1..00000000000
Binary files a/sound/vox/called.wav and /dev/null differ
diff --git a/sound/vox/canal.wav b/sound/vox/canal.wav
deleted file mode 100644
index b426a8f6a9a..00000000000
Binary files a/sound/vox/canal.wav and /dev/null differ
diff --git a/sound/vox/cap.wav b/sound/vox/cap.wav
deleted file mode 100644
index 998505184ba..00000000000
Binary files a/sound/vox/cap.wav and /dev/null differ
diff --git a/sound/vox/captain.wav b/sound/vox/captain.wav
deleted file mode 100644
index 61222de5324..00000000000
Binary files a/sound/vox/captain.wav and /dev/null differ
diff --git a/sound/vox/capture.wav b/sound/vox/capture.wav
deleted file mode 100644
index c7bfaad64f3..00000000000
Binary files a/sound/vox/capture.wav and /dev/null differ
diff --git a/sound/vox/ceiling.wav b/sound/vox/ceiling.wav
deleted file mode 100644
index 381db754cae..00000000000
Binary files a/sound/vox/ceiling.wav and /dev/null differ
diff --git a/sound/vox/celsius.wav b/sound/vox/celsius.wav
deleted file mode 100644
index ac59448a461..00000000000
Binary files a/sound/vox/celsius.wav and /dev/null differ
diff --git a/sound/vox/center.wav b/sound/vox/center.wav
deleted file mode 100644
index 35bdcb52248..00000000000
Binary files a/sound/vox/center.wav and /dev/null differ
diff --git a/sound/vox/centi.wav b/sound/vox/centi.wav
deleted file mode 100644
index efccef07e7b..00000000000
Binary files a/sound/vox/centi.wav and /dev/null differ
diff --git a/sound/vox/central.wav b/sound/vox/central.wav
deleted file mode 100644
index 1c9c58be571..00000000000
Binary files a/sound/vox/central.wav and /dev/null differ
diff --git a/sound/vox/chamber.wav b/sound/vox/chamber.wav
deleted file mode 100644
index 38dbf9ffa7b..00000000000
Binary files a/sound/vox/chamber.wav and /dev/null differ
diff --git a/sound/vox/charlie.wav b/sound/vox/charlie.wav
deleted file mode 100644
index 353ce195f3d..00000000000
Binary files a/sound/vox/charlie.wav and /dev/null differ
diff --git a/sound/vox/check.wav b/sound/vox/check.wav
deleted file mode 100644
index 709f9a6555f..00000000000
Binary files a/sound/vox/check.wav and /dev/null differ
diff --git a/sound/vox/checkpoint.wav b/sound/vox/checkpoint.wav
deleted file mode 100644
index 15aa5e4cc9b..00000000000
Binary files a/sound/vox/checkpoint.wav and /dev/null differ
diff --git a/sound/vox/chemical.wav b/sound/vox/chemical.wav
deleted file mode 100644
index eeb32be3850..00000000000
Binary files a/sound/vox/chemical.wav and /dev/null differ
diff --git a/sound/vox/cleanup.wav b/sound/vox/cleanup.wav
deleted file mode 100644
index a47ddb233a0..00000000000
Binary files a/sound/vox/cleanup.wav and /dev/null differ
diff --git a/sound/vox/clear.wav b/sound/vox/clear.wav
deleted file mode 100644
index a23cfc5e2bd..00000000000
Binary files a/sound/vox/clear.wav and /dev/null differ
diff --git a/sound/vox/clearance.wav b/sound/vox/clearance.wav
deleted file mode 100644
index a35e0699b87..00000000000
Binary files a/sound/vox/clearance.wav and /dev/null differ
diff --git a/sound/vox/close.wav b/sound/vox/close.wav
deleted file mode 100644
index 6a46d7fb063..00000000000
Binary files a/sound/vox/close.wav and /dev/null differ
diff --git a/sound/vox/code.wav b/sound/vox/code.wav
deleted file mode 100644
index 63bdfbe883a..00000000000
Binary files a/sound/vox/code.wav and /dev/null differ
diff --git a/sound/vox/coded.wav b/sound/vox/coded.wav
deleted file mode 100644
index ec876b297fd..00000000000
Binary files a/sound/vox/coded.wav and /dev/null differ
diff --git a/sound/vox/collider.wav b/sound/vox/collider.wav
deleted file mode 100644
index a26ff0a317b..00000000000
Binary files a/sound/vox/collider.wav and /dev/null differ
diff --git a/sound/vox/command.wav b/sound/vox/command.wav
deleted file mode 100644
index ba0c7e852b8..00000000000
Binary files a/sound/vox/command.wav and /dev/null differ
diff --git a/sound/vox/communication.wav b/sound/vox/communication.wav
deleted file mode 100644
index 35165357e69..00000000000
Binary files a/sound/vox/communication.wav and /dev/null differ
diff --git a/sound/vox/complex.wav b/sound/vox/complex.wav
deleted file mode 100644
index d2c01ccd57d..00000000000
Binary files a/sound/vox/complex.wav and /dev/null differ
diff --git a/sound/vox/computer.wav b/sound/vox/computer.wav
deleted file mode 100644
index 89808c20d7b..00000000000
Binary files a/sound/vox/computer.wav and /dev/null differ
diff --git a/sound/vox/condition.wav b/sound/vox/condition.wav
deleted file mode 100644
index b32c83668eb..00000000000
Binary files a/sound/vox/condition.wav and /dev/null differ
diff --git a/sound/vox/containment.wav b/sound/vox/containment.wav
deleted file mode 100644
index 563cb4e15a0..00000000000
Binary files a/sound/vox/containment.wav and /dev/null differ
diff --git a/sound/vox/contamination.wav b/sound/vox/contamination.wav
deleted file mode 100644
index d597267cdde..00000000000
Binary files a/sound/vox/contamination.wav and /dev/null differ
diff --git a/sound/vox/control.wav b/sound/vox/control.wav
deleted file mode 100644
index e7bf57bbd8a..00000000000
Binary files a/sound/vox/control.wav and /dev/null differ
diff --git a/sound/vox/coolant.wav b/sound/vox/coolant.wav
deleted file mode 100644
index d4474b9d9df..00000000000
Binary files a/sound/vox/coolant.wav and /dev/null differ
diff --git a/sound/vox/coomer.wav b/sound/vox/coomer.wav
deleted file mode 100644
index 1e4b37929ff..00000000000
Binary files a/sound/vox/coomer.wav and /dev/null differ
diff --git a/sound/vox/core.wav b/sound/vox/core.wav
deleted file mode 100644
index da6874b2e7e..00000000000
Binary files a/sound/vox/core.wav and /dev/null differ
diff --git a/sound/vox/correct.wav b/sound/vox/correct.wav
deleted file mode 100644
index cde927b7477..00000000000
Binary files a/sound/vox/correct.wav and /dev/null differ
diff --git a/sound/vox/corridor.wav b/sound/vox/corridor.wav
deleted file mode 100644
index defdcda2d10..00000000000
Binary files a/sound/vox/corridor.wav and /dev/null differ
diff --git a/sound/vox/crew.wav b/sound/vox/crew.wav
deleted file mode 100644
index 4f48a08cb11..00000000000
Binary files a/sound/vox/crew.wav and /dev/null differ
diff --git a/sound/vox/cross.wav b/sound/vox/cross.wav
deleted file mode 100644
index c393dffbf15..00000000000
Binary files a/sound/vox/cross.wav and /dev/null differ
diff --git a/sound/vox/cryogenic.wav b/sound/vox/cryogenic.wav
deleted file mode 100644
index eb1a62ae38f..00000000000
Binary files a/sound/vox/cryogenic.wav and /dev/null differ
diff --git a/sound/vox/d.wav b/sound/vox/d.wav
deleted file mode 100644
index f977a495055..00000000000
Binary files a/sound/vox/d.wav and /dev/null differ
diff --git a/sound/vox/dadeda.wav b/sound/vox/dadeda.wav
deleted file mode 100644
index 2ac0ff589af..00000000000
Binary files a/sound/vox/dadeda.wav and /dev/null differ
diff --git a/sound/vox/damage.wav b/sound/vox/damage.wav
deleted file mode 100644
index 83fce3dcf0e..00000000000
Binary files a/sound/vox/damage.wav and /dev/null differ
diff --git a/sound/vox/damaged.wav b/sound/vox/damaged.wav
deleted file mode 100644
index e9f2ff5dbb7..00000000000
Binary files a/sound/vox/damaged.wav and /dev/null differ
diff --git a/sound/vox/danger.wav b/sound/vox/danger.wav
deleted file mode 100644
index 40ff8b8db98..00000000000
Binary files a/sound/vox/danger.wav and /dev/null differ
diff --git a/sound/vox/day.wav b/sound/vox/day.wav
deleted file mode 100644
index 92e3fe81da7..00000000000
Binary files a/sound/vox/day.wav and /dev/null differ
diff --git a/sound/vox/deactivated.wav b/sound/vox/deactivated.wav
deleted file mode 100644
index f587f266dd7..00000000000
Binary files a/sound/vox/deactivated.wav and /dev/null differ
diff --git a/sound/vox/decompression.wav b/sound/vox/decompression.wav
deleted file mode 100644
index a758f1bbd76..00000000000
Binary files a/sound/vox/decompression.wav and /dev/null differ
diff --git a/sound/vox/decontamination.wav b/sound/vox/decontamination.wav
deleted file mode 100644
index 9794de0a23b..00000000000
Binary files a/sound/vox/decontamination.wav and /dev/null differ
diff --git a/sound/vox/deeoo.wav b/sound/vox/deeoo.wav
deleted file mode 100644
index 4f82a18b2a5..00000000000
Binary files a/sound/vox/deeoo.wav and /dev/null differ
diff --git a/sound/vox/defense.wav b/sound/vox/defense.wav
deleted file mode 100644
index 9da8de137f5..00000000000
Binary files a/sound/vox/defense.wav and /dev/null differ
diff --git a/sound/vox/degrees.wav b/sound/vox/degrees.wav
deleted file mode 100644
index 7e77561c14d..00000000000
Binary files a/sound/vox/degrees.wav and /dev/null differ
diff --git a/sound/vox/delta.wav b/sound/vox/delta.wav
deleted file mode 100644
index 86052809f4a..00000000000
Binary files a/sound/vox/delta.wav and /dev/null differ
diff --git a/sound/vox/denied.wav b/sound/vox/denied.wav
deleted file mode 100644
index 6b1167d41d5..00000000000
Binary files a/sound/vox/denied.wav and /dev/null differ
diff --git a/sound/vox/deploy.wav b/sound/vox/deploy.wav
deleted file mode 100644
index 2f9aacd3506..00000000000
Binary files a/sound/vox/deploy.wav and /dev/null differ
diff --git a/sound/vox/deployed.wav b/sound/vox/deployed.wav
deleted file mode 100644
index a85a076b18b..00000000000
Binary files a/sound/vox/deployed.wav and /dev/null differ
diff --git a/sound/vox/destroy.wav b/sound/vox/destroy.wav
deleted file mode 100644
index 56cf437c66c..00000000000
Binary files a/sound/vox/destroy.wav and /dev/null differ
diff --git a/sound/vox/destroyed.wav b/sound/vox/destroyed.wav
deleted file mode 100644
index 20308df2df5..00000000000
Binary files a/sound/vox/destroyed.wav and /dev/null differ
diff --git a/sound/vox/detain.wav b/sound/vox/detain.wav
deleted file mode 100644
index 7d5f4e06f43..00000000000
Binary files a/sound/vox/detain.wav and /dev/null differ
diff --git a/sound/vox/detected.wav b/sound/vox/detected.wav
deleted file mode 100644
index 101429a6140..00000000000
Binary files a/sound/vox/detected.wav and /dev/null differ
diff --git a/sound/vox/detonation.wav b/sound/vox/detonation.wav
deleted file mode 100644
index a696e97976a..00000000000
Binary files a/sound/vox/detonation.wav and /dev/null differ
diff --git a/sound/vox/device.wav b/sound/vox/device.wav
deleted file mode 100644
index d5ecd2f67b3..00000000000
Binary files a/sound/vox/device.wav and /dev/null differ
diff --git a/sound/vox/did.wav b/sound/vox/did.wav
deleted file mode 100644
index 0c52e31b728..00000000000
Binary files a/sound/vox/did.wav and /dev/null differ
diff --git a/sound/vox/die.wav b/sound/vox/die.wav
deleted file mode 100644
index b47622cfc70..00000000000
Binary files a/sound/vox/die.wav and /dev/null differ
diff --git a/sound/vox/dimensional.wav b/sound/vox/dimensional.wav
deleted file mode 100644
index f67956ddc7f..00000000000
Binary files a/sound/vox/dimensional.wav and /dev/null differ
diff --git a/sound/vox/dirt.wav b/sound/vox/dirt.wav
deleted file mode 100644
index 08990c47d89..00000000000
Binary files a/sound/vox/dirt.wav and /dev/null differ
diff --git a/sound/vox/disengaged.wav b/sound/vox/disengaged.wav
deleted file mode 100644
index aa84ed27a6e..00000000000
Binary files a/sound/vox/disengaged.wav and /dev/null differ
diff --git a/sound/vox/dish.wav b/sound/vox/dish.wav
deleted file mode 100644
index aeff92d2052..00000000000
Binary files a/sound/vox/dish.wav and /dev/null differ
diff --git a/sound/vox/disposal.wav b/sound/vox/disposal.wav
deleted file mode 100644
index bfe38f6098f..00000000000
Binary files a/sound/vox/disposal.wav and /dev/null differ
diff --git a/sound/vox/distance.wav b/sound/vox/distance.wav
deleted file mode 100644
index 670eacaabe1..00000000000
Binary files a/sound/vox/distance.wav and /dev/null differ
diff --git a/sound/vox/distortion.wav b/sound/vox/distortion.wav
deleted file mode 100644
index 7fae33e2446..00000000000
Binary files a/sound/vox/distortion.wav and /dev/null differ
diff --git a/sound/vox/do.wav b/sound/vox/do.wav
deleted file mode 100644
index d82a9ab1074..00000000000
Binary files a/sound/vox/do.wav and /dev/null differ
diff --git a/sound/vox/doctor.wav b/sound/vox/doctor.wav
deleted file mode 100644
index f9cdc53805d..00000000000
Binary files a/sound/vox/doctor.wav and /dev/null differ
diff --git a/sound/vox/doop.wav b/sound/vox/doop.wav
deleted file mode 100644
index 14bce15cea0..00000000000
Binary files a/sound/vox/doop.wav and /dev/null differ
diff --git a/sound/vox/door.wav b/sound/vox/door.wav
deleted file mode 100644
index 629dee38e77..00000000000
Binary files a/sound/vox/door.wav and /dev/null differ
diff --git a/sound/vox/down.wav b/sound/vox/down.wav
deleted file mode 100644
index b677e031daa..00000000000
Binary files a/sound/vox/down.wav and /dev/null differ
diff --git a/sound/vox/dual.wav b/sound/vox/dual.wav
deleted file mode 100644
index 4693b31d42a..00000000000
Binary files a/sound/vox/dual.wav and /dev/null differ
diff --git a/sound/vox/duct.wav b/sound/vox/duct.wav
deleted file mode 100644
index d0e937fd80e..00000000000
Binary files a/sound/vox/duct.wav and /dev/null differ
diff --git a/sound/vox/e.wav b/sound/vox/e.wav
deleted file mode 100644
index 6f991d0fcc7..00000000000
Binary files a/sound/vox/e.wav and /dev/null differ
diff --git a/sound/vox/east.wav b/sound/vox/east.wav
deleted file mode 100644
index 296ce53d412..00000000000
Binary files a/sound/vox/east.wav and /dev/null differ
diff --git a/sound/vox/echo.wav b/sound/vox/echo.wav
deleted file mode 100644
index 3087ecbd9c6..00000000000
Binary files a/sound/vox/echo.wav and /dev/null differ
diff --git a/sound/vox/ed.wav b/sound/vox/ed.wav
deleted file mode 100644
index 71303ffe0a7..00000000000
Binary files a/sound/vox/ed.wav and /dev/null differ
diff --git a/sound/vox/effect.wav b/sound/vox/effect.wav
deleted file mode 100644
index a0128cf6984..00000000000
Binary files a/sound/vox/effect.wav and /dev/null differ
diff --git a/sound/vox/egress.wav b/sound/vox/egress.wav
deleted file mode 100644
index 47fa437ce81..00000000000
Binary files a/sound/vox/egress.wav and /dev/null differ
diff --git a/sound/vox/eight.wav b/sound/vox/eight.wav
deleted file mode 100644
index 4fef5c2eb70..00000000000
Binary files a/sound/vox/eight.wav and /dev/null differ
diff --git a/sound/vox/eighteen.wav b/sound/vox/eighteen.wav
deleted file mode 100644
index 1aff299ad27..00000000000
Binary files a/sound/vox/eighteen.wav and /dev/null differ
diff --git a/sound/vox/eighty.wav b/sound/vox/eighty.wav
deleted file mode 100644
index a1f54835dbb..00000000000
Binary files a/sound/vox/eighty.wav and /dev/null differ
diff --git a/sound/vox/electric.wav b/sound/vox/electric.wav
deleted file mode 100644
index 48c4fe01768..00000000000
Binary files a/sound/vox/electric.wav and /dev/null differ
diff --git a/sound/vox/electromagnetic.wav b/sound/vox/electromagnetic.wav
deleted file mode 100644
index 886c76ef6b7..00000000000
Binary files a/sound/vox/electromagnetic.wav and /dev/null differ
diff --git a/sound/vox/elevator.wav b/sound/vox/elevator.wav
deleted file mode 100644
index a4d41448492..00000000000
Binary files a/sound/vox/elevator.wav and /dev/null differ
diff --git a/sound/vox/eleven.wav b/sound/vox/eleven.wav
deleted file mode 100644
index 5473a254117..00000000000
Binary files a/sound/vox/eleven.wav and /dev/null differ
diff --git a/sound/vox/eliminate.wav b/sound/vox/eliminate.wav
deleted file mode 100644
index d4e51affb30..00000000000
Binary files a/sound/vox/eliminate.wav and /dev/null differ
diff --git a/sound/vox/emergency.wav b/sound/vox/emergency.wav
deleted file mode 100644
index 62bb34ef412..00000000000
Binary files a/sound/vox/emergency.wav and /dev/null differ
diff --git a/sound/vox/energy.wav b/sound/vox/energy.wav
deleted file mode 100644
index b66ed4db108..00000000000
Binary files a/sound/vox/energy.wav and /dev/null differ
diff --git a/sound/vox/engage.wav b/sound/vox/engage.wav
deleted file mode 100644
index 11a43c40a75..00000000000
Binary files a/sound/vox/engage.wav and /dev/null differ
diff --git a/sound/vox/engaged.wav b/sound/vox/engaged.wav
deleted file mode 100644
index a47cbb59772..00000000000
Binary files a/sound/vox/engaged.wav and /dev/null differ
diff --git a/sound/vox/engine.wav b/sound/vox/engine.wav
deleted file mode 100644
index f6ab907c5b3..00000000000
Binary files a/sound/vox/engine.wav and /dev/null differ
diff --git a/sound/vox/enter.wav b/sound/vox/enter.wav
deleted file mode 100644
index f3f53ea8211..00000000000
Binary files a/sound/vox/enter.wav and /dev/null differ
diff --git a/sound/vox/entry.wav b/sound/vox/entry.wav
deleted file mode 100644
index a027e1a7e54..00000000000
Binary files a/sound/vox/entry.wav and /dev/null differ
diff --git a/sound/vox/environment.wav b/sound/vox/environment.wav
deleted file mode 100644
index 6ab7d940cc4..00000000000
Binary files a/sound/vox/environment.wav and /dev/null differ
diff --git a/sound/vox/error.wav b/sound/vox/error.wav
deleted file mode 100644
index 05b2bebf60b..00000000000
Binary files a/sound/vox/error.wav and /dev/null differ
diff --git a/sound/vox/escape.wav b/sound/vox/escape.wav
deleted file mode 100644
index dbf3c954f57..00000000000
Binary files a/sound/vox/escape.wav and /dev/null differ
diff --git a/sound/vox/evacuate.wav b/sound/vox/evacuate.wav
deleted file mode 100644
index 2766662cd26..00000000000
Binary files a/sound/vox/evacuate.wav and /dev/null differ
diff --git a/sound/vox/exchange.wav b/sound/vox/exchange.wav
deleted file mode 100644
index 73426aea013..00000000000
Binary files a/sound/vox/exchange.wav and /dev/null differ
diff --git a/sound/vox/exit.wav b/sound/vox/exit.wav
deleted file mode 100644
index 85680b3212a..00000000000
Binary files a/sound/vox/exit.wav and /dev/null differ
diff --git a/sound/vox/expect.wav b/sound/vox/expect.wav
deleted file mode 100644
index a562e53a9a8..00000000000
Binary files a/sound/vox/expect.wav and /dev/null differ
diff --git a/sound/vox/experiment.wav b/sound/vox/experiment.wav
deleted file mode 100644
index 3f60c2181be..00000000000
Binary files a/sound/vox/experiment.wav and /dev/null differ
diff --git a/sound/vox/experimental.wav b/sound/vox/experimental.wav
deleted file mode 100644
index fbf75a59d30..00000000000
Binary files a/sound/vox/experimental.wav and /dev/null differ
diff --git a/sound/vox/explode.wav b/sound/vox/explode.wav
deleted file mode 100644
index 847e64562c0..00000000000
Binary files a/sound/vox/explode.wav and /dev/null differ
diff --git a/sound/vox/explosion.wav b/sound/vox/explosion.wav
deleted file mode 100644
index a2e442ec2f7..00000000000
Binary files a/sound/vox/explosion.wav and /dev/null differ
diff --git a/sound/vox/exposure.wav b/sound/vox/exposure.wav
deleted file mode 100644
index 37a933ca62e..00000000000
Binary files a/sound/vox/exposure.wav and /dev/null differ
diff --git a/sound/vox/exterminate.wav b/sound/vox/exterminate.wav
deleted file mode 100644
index f1c3c233d68..00000000000
Binary files a/sound/vox/exterminate.wav and /dev/null differ
diff --git a/sound/vox/extinguish.wav b/sound/vox/extinguish.wav
deleted file mode 100644
index 1fc83d9e7ec..00000000000
Binary files a/sound/vox/extinguish.wav and /dev/null differ
diff --git a/sound/vox/extinguisher.wav b/sound/vox/extinguisher.wav
deleted file mode 100644
index eed3164bfc7..00000000000
Binary files a/sound/vox/extinguisher.wav and /dev/null differ
diff --git a/sound/vox/extreme.wav b/sound/vox/extreme.wav
deleted file mode 100644
index 0fc3adfb50e..00000000000
Binary files a/sound/vox/extreme.wav and /dev/null differ
diff --git a/sound/vox/f.wav b/sound/vox/f.wav
deleted file mode 100644
index 0f06b338867..00000000000
Binary files a/sound/vox/f.wav and /dev/null differ
diff --git a/sound/vox/facility.wav b/sound/vox/facility.wav
deleted file mode 100644
index 812445e3dd7..00000000000
Binary files a/sound/vox/facility.wav and /dev/null differ
diff --git a/sound/vox/fahrenheit.wav b/sound/vox/fahrenheit.wav
deleted file mode 100644
index 96411aabdce..00000000000
Binary files a/sound/vox/fahrenheit.wav and /dev/null differ
diff --git a/sound/vox/failed.wav b/sound/vox/failed.wav
deleted file mode 100644
index f717b053758..00000000000
Binary files a/sound/vox/failed.wav and /dev/null differ
diff --git a/sound/vox/failure.wav b/sound/vox/failure.wav
deleted file mode 100644
index dd662fc5a66..00000000000
Binary files a/sound/vox/failure.wav and /dev/null differ
diff --git a/sound/vox/farthest.wav b/sound/vox/farthest.wav
deleted file mode 100644
index fcca7a432ec..00000000000
Binary files a/sound/vox/farthest.wav and /dev/null differ
diff --git a/sound/vox/fast.wav b/sound/vox/fast.wav
deleted file mode 100644
index 821885a739f..00000000000
Binary files a/sound/vox/fast.wav and /dev/null differ
diff --git a/sound/vox/feet.wav b/sound/vox/feet.wav
deleted file mode 100644
index 5adc5dbd62f..00000000000
Binary files a/sound/vox/feet.wav and /dev/null differ
diff --git a/sound/vox/field.wav b/sound/vox/field.wav
deleted file mode 100644
index 6cc1ab42f83..00000000000
Binary files a/sound/vox/field.wav and /dev/null differ
diff --git a/sound/vox/fifteen.wav b/sound/vox/fifteen.wav
deleted file mode 100644
index 63ca382128d..00000000000
Binary files a/sound/vox/fifteen.wav and /dev/null differ
diff --git a/sound/vox/fifth.wav b/sound/vox/fifth.wav
deleted file mode 100644
index 3886e043bfb..00000000000
Binary files a/sound/vox/fifth.wav and /dev/null differ
diff --git a/sound/vox/fifty.wav b/sound/vox/fifty.wav
deleted file mode 100644
index 80f7b111037..00000000000
Binary files a/sound/vox/fifty.wav and /dev/null differ
diff --git a/sound/vox/final.wav b/sound/vox/final.wav
deleted file mode 100644
index d4c807af6ed..00000000000
Binary files a/sound/vox/final.wav and /dev/null differ
diff --git a/sound/vox/fine.wav b/sound/vox/fine.wav
deleted file mode 100644
index f74d8fbfaa2..00000000000
Binary files a/sound/vox/fine.wav and /dev/null differ
diff --git a/sound/vox/fire.wav b/sound/vox/fire.wav
deleted file mode 100644
index ce0a45d9c62..00000000000
Binary files a/sound/vox/fire.wav and /dev/null differ
diff --git a/sound/vox/first.wav b/sound/vox/first.wav
deleted file mode 100644
index 18a7fdf7afd..00000000000
Binary files a/sound/vox/first.wav and /dev/null differ
diff --git a/sound/vox/five.wav b/sound/vox/five.wav
deleted file mode 100644
index aa23cbe9cf1..00000000000
Binary files a/sound/vox/five.wav and /dev/null differ
diff --git a/sound/vox/flooding.wav b/sound/vox/flooding.wav
deleted file mode 100644
index 7b9f5bcc696..00000000000
Binary files a/sound/vox/flooding.wav and /dev/null differ
diff --git a/sound/vox/floor.wav b/sound/vox/floor.wav
deleted file mode 100644
index b0865491647..00000000000
Binary files a/sound/vox/floor.wav and /dev/null differ
diff --git a/sound/vox/fool.wav b/sound/vox/fool.wav
deleted file mode 100644
index 327b3f5b598..00000000000
Binary files a/sound/vox/fool.wav and /dev/null differ
diff --git a/sound/vox/for.wav b/sound/vox/for.wav
deleted file mode 100644
index 84f793decec..00000000000
Binary files a/sound/vox/for.wav and /dev/null differ
diff --git a/sound/vox/forbidden.wav b/sound/vox/forbidden.wav
deleted file mode 100644
index f4d742505e2..00000000000
Binary files a/sound/vox/forbidden.wav and /dev/null differ
diff --git a/sound/vox/force.wav b/sound/vox/force.wav
deleted file mode 100644
index 3745c71418d..00000000000
Binary files a/sound/vox/force.wav and /dev/null differ
diff --git a/sound/vox/forms.wav b/sound/vox/forms.wav
deleted file mode 100644
index 642e201abc6..00000000000
Binary files a/sound/vox/forms.wav and /dev/null differ
diff --git a/sound/vox/found.wav b/sound/vox/found.wav
deleted file mode 100644
index 59da4031fcd..00000000000
Binary files a/sound/vox/found.wav and /dev/null differ
diff --git a/sound/vox/four.wav b/sound/vox/four.wav
deleted file mode 100644
index a614cbcdc5f..00000000000
Binary files a/sound/vox/four.wav and /dev/null differ
diff --git a/sound/vox/fourteen.wav b/sound/vox/fourteen.wav
deleted file mode 100644
index aa0846855bf..00000000000
Binary files a/sound/vox/fourteen.wav and /dev/null differ
diff --git a/sound/vox/fourth.wav b/sound/vox/fourth.wav
deleted file mode 100644
index 5c9071d292d..00000000000
Binary files a/sound/vox/fourth.wav and /dev/null differ
diff --git a/sound/vox/fourty.wav b/sound/vox/fourty.wav
deleted file mode 100644
index 6bb8fb3e126..00000000000
Binary files a/sound/vox/fourty.wav and /dev/null differ
diff --git a/sound/vox/foxtrot.wav b/sound/vox/foxtrot.wav
deleted file mode 100644
index ece21be942f..00000000000
Binary files a/sound/vox/foxtrot.wav and /dev/null differ
diff --git a/sound/vox/freeman.wav b/sound/vox/freeman.wav
deleted file mode 100644
index 26a9ae229bb..00000000000
Binary files a/sound/vox/freeman.wav and /dev/null differ
diff --git a/sound/vox/freezer.wav b/sound/vox/freezer.wav
deleted file mode 100644
index 32da8615481..00000000000
Binary files a/sound/vox/freezer.wav and /dev/null differ
diff --git a/sound/vox/from.wav b/sound/vox/from.wav
deleted file mode 100644
index 46541abe658..00000000000
Binary files a/sound/vox/from.wav and /dev/null differ
diff --git a/sound/vox/front.wav b/sound/vox/front.wav
deleted file mode 100644
index 46d600144d3..00000000000
Binary files a/sound/vox/front.wav and /dev/null differ
diff --git a/sound/vox/fuel.wav b/sound/vox/fuel.wav
deleted file mode 100644
index 1b2256b006f..00000000000
Binary files a/sound/vox/fuel.wav and /dev/null differ
diff --git a/sound/vox/g.wav b/sound/vox/g.wav
deleted file mode 100644
index 37f5ce80100..00000000000
Binary files a/sound/vox/g.wav and /dev/null differ
diff --git a/sound/vox/get.wav b/sound/vox/get.wav
deleted file mode 100644
index 9dd512d512d..00000000000
Binary files a/sound/vox/get.wav and /dev/null differ
diff --git a/sound/vox/go.wav b/sound/vox/go.wav
deleted file mode 100644
index 665989a94f9..00000000000
Binary files a/sound/vox/go.wav and /dev/null differ
diff --git a/sound/vox/going.wav b/sound/vox/going.wav
deleted file mode 100644
index 308b1b68903..00000000000
Binary files a/sound/vox/going.wav and /dev/null differ
diff --git a/sound/vox/good.wav b/sound/vox/good.wav
deleted file mode 100644
index bf15c9c2b43..00000000000
Binary files a/sound/vox/good.wav and /dev/null differ
diff --git a/sound/vox/goodbye.wav b/sound/vox/goodbye.wav
deleted file mode 100644
index 2599ca560cc..00000000000
Binary files a/sound/vox/goodbye.wav and /dev/null differ
diff --git a/sound/vox/gordon.wav b/sound/vox/gordon.wav
deleted file mode 100644
index 51c7195091b..00000000000
Binary files a/sound/vox/gordon.wav and /dev/null differ
diff --git a/sound/vox/got.wav b/sound/vox/got.wav
deleted file mode 100644
index b2b47c9d2e7..00000000000
Binary files a/sound/vox/got.wav and /dev/null differ
diff --git a/sound/vox/government.wav b/sound/vox/government.wav
deleted file mode 100644
index 17e7fa8fbfc..00000000000
Binary files a/sound/vox/government.wav and /dev/null differ
diff --git a/sound/vox/granted.wav b/sound/vox/granted.wav
deleted file mode 100644
index 661bf0506fd..00000000000
Binary files a/sound/vox/granted.wav and /dev/null differ
diff --git a/sound/vox/great.wav b/sound/vox/great.wav
deleted file mode 100644
index 8640b88fb61..00000000000
Binary files a/sound/vox/great.wav and /dev/null differ
diff --git a/sound/vox/green.wav b/sound/vox/green.wav
deleted file mode 100644
index 0eb5558231d..00000000000
Binary files a/sound/vox/green.wav and /dev/null differ
diff --git a/sound/vox/grenade.wav b/sound/vox/grenade.wav
deleted file mode 100644
index 7b2d80ed6d6..00000000000
Binary files a/sound/vox/grenade.wav and /dev/null differ
diff --git a/sound/vox/guard.wav b/sound/vox/guard.wav
deleted file mode 100644
index e715dc641c0..00000000000
Binary files a/sound/vox/guard.wav and /dev/null differ
diff --git a/sound/vox/gulf.wav b/sound/vox/gulf.wav
deleted file mode 100644
index 95b3e9fc4f9..00000000000
Binary files a/sound/vox/gulf.wav and /dev/null differ
diff --git a/sound/vox/gun.wav b/sound/vox/gun.wav
deleted file mode 100644
index 86e3ac1cbb5..00000000000
Binary files a/sound/vox/gun.wav and /dev/null differ
diff --git a/sound/vox/guthrie.wav b/sound/vox/guthrie.wav
deleted file mode 100644
index 362ab46d60c..00000000000
Binary files a/sound/vox/guthrie.wav and /dev/null differ
diff --git a/sound/vox/handling.wav b/sound/vox/handling.wav
deleted file mode 100644
index b9c7c5f581d..00000000000
Binary files a/sound/vox/handling.wav and /dev/null differ
diff --git a/sound/vox/hangar.wav b/sound/vox/hangar.wav
deleted file mode 100644
index e937054af9b..00000000000
Binary files a/sound/vox/hangar.wav and /dev/null differ
diff --git a/sound/vox/has.wav b/sound/vox/has.wav
deleted file mode 100644
index 625a110f07f..00000000000
Binary files a/sound/vox/has.wav and /dev/null differ
diff --git a/sound/vox/have.wav b/sound/vox/have.wav
deleted file mode 100644
index c5f0794a1f4..00000000000
Binary files a/sound/vox/have.wav and /dev/null differ
diff --git a/sound/vox/hazard.wav b/sound/vox/hazard.wav
deleted file mode 100644
index b311552c766..00000000000
Binary files a/sound/vox/hazard.wav and /dev/null differ
diff --git a/sound/vox/head.wav b/sound/vox/head.wav
deleted file mode 100644
index ed8e9d88c64..00000000000
Binary files a/sound/vox/head.wav and /dev/null differ
diff --git a/sound/vox/health.wav b/sound/vox/health.wav
deleted file mode 100644
index e3158318f41..00000000000
Binary files a/sound/vox/health.wav and /dev/null differ
diff --git a/sound/vox/heat.wav b/sound/vox/heat.wav
deleted file mode 100644
index ca0b3452255..00000000000
Binary files a/sound/vox/heat.wav and /dev/null differ
diff --git a/sound/vox/helicopter.wav b/sound/vox/helicopter.wav
deleted file mode 100644
index 22e54494437..00000000000
Binary files a/sound/vox/helicopter.wav and /dev/null differ
diff --git a/sound/vox/helium.wav b/sound/vox/helium.wav
deleted file mode 100644
index fbb8197cb06..00000000000
Binary files a/sound/vox/helium.wav and /dev/null differ
diff --git a/sound/vox/hello.wav b/sound/vox/hello.wav
deleted file mode 100644
index 7e61fec55ef..00000000000
Binary files a/sound/vox/hello.wav and /dev/null differ
diff --git a/sound/vox/help.wav b/sound/vox/help.wav
deleted file mode 100644
index 5bef919ee9a..00000000000
Binary files a/sound/vox/help.wav and /dev/null differ
diff --git a/sound/vox/here.wav b/sound/vox/here.wav
deleted file mode 100644
index e6d74f47f75..00000000000
Binary files a/sound/vox/here.wav and /dev/null differ
diff --git a/sound/vox/hide.wav b/sound/vox/hide.wav
deleted file mode 100644
index f7bb32b2830..00000000000
Binary files a/sound/vox/hide.wav and /dev/null differ
diff --git a/sound/vox/high.wav b/sound/vox/high.wav
deleted file mode 100644
index 832bf160408..00000000000
Binary files a/sound/vox/high.wav and /dev/null differ
diff --git a/sound/vox/highest.wav b/sound/vox/highest.wav
deleted file mode 100644
index ef4b2caf39f..00000000000
Binary files a/sound/vox/highest.wav and /dev/null differ
diff --git a/sound/vox/hit.wav b/sound/vox/hit.wav
deleted file mode 100644
index d70619a3f56..00000000000
Binary files a/sound/vox/hit.wav and /dev/null differ
diff --git a/sound/vox/hole.wav b/sound/vox/hole.wav
deleted file mode 100644
index afb46f59adc..00000000000
Binary files a/sound/vox/hole.wav and /dev/null differ
diff --git a/sound/vox/hostile.wav b/sound/vox/hostile.wav
deleted file mode 100644
index 4dc88f26c63..00000000000
Binary files a/sound/vox/hostile.wav and /dev/null differ
diff --git a/sound/vox/hot.wav b/sound/vox/hot.wav
deleted file mode 100644
index 7ced07279b9..00000000000
Binary files a/sound/vox/hot.wav and /dev/null differ
diff --git a/sound/vox/hotel.wav b/sound/vox/hotel.wav
deleted file mode 100644
index dde78cf2a18..00000000000
Binary files a/sound/vox/hotel.wav and /dev/null differ
diff --git a/sound/vox/hour.wav b/sound/vox/hour.wav
deleted file mode 100644
index d428bd779e1..00000000000
Binary files a/sound/vox/hour.wav and /dev/null differ
diff --git a/sound/vox/hours.wav b/sound/vox/hours.wav
deleted file mode 100644
index 63a24704270..00000000000
Binary files a/sound/vox/hours.wav and /dev/null differ
diff --git a/sound/vox/hundred.wav b/sound/vox/hundred.wav
deleted file mode 100644
index 8d3a8a0b4a5..00000000000
Binary files a/sound/vox/hundred.wav and /dev/null differ
diff --git a/sound/vox/hydro.wav b/sound/vox/hydro.wav
deleted file mode 100644
index 9653b7bf73a..00000000000
Binary files a/sound/vox/hydro.wav and /dev/null differ
diff --git a/sound/vox/i.wav b/sound/vox/i.wav
deleted file mode 100644
index b98a48fd294..00000000000
Binary files a/sound/vox/i.wav and /dev/null differ
diff --git a/sound/vox/idiot.wav b/sound/vox/idiot.wav
deleted file mode 100644
index 8c19f9d7a42..00000000000
Binary files a/sound/vox/idiot.wav and /dev/null differ
diff --git a/sound/vox/illegal.wav b/sound/vox/illegal.wav
deleted file mode 100644
index 6087e6ba7d2..00000000000
Binary files a/sound/vox/illegal.wav and /dev/null differ
diff --git a/sound/vox/immediate.wav b/sound/vox/immediate.wav
deleted file mode 100644
index 19fab3c842d..00000000000
Binary files a/sound/vox/immediate.wav and /dev/null differ
diff --git a/sound/vox/immediately.wav b/sound/vox/immediately.wav
deleted file mode 100644
index f2716edf0e0..00000000000
Binary files a/sound/vox/immediately.wav and /dev/null differ
diff --git a/sound/vox/in.wav b/sound/vox/in.wav
deleted file mode 100644
index e15bb9a6d5b..00000000000
Binary files a/sound/vox/in.wav and /dev/null differ
diff --git a/sound/vox/inches.wav b/sound/vox/inches.wav
deleted file mode 100644
index fc8e89ce7b9..00000000000
Binary files a/sound/vox/inches.wav and /dev/null differ
diff --git a/sound/vox/india.wav b/sound/vox/india.wav
deleted file mode 100644
index 991f9af5e02..00000000000
Binary files a/sound/vox/india.wav and /dev/null differ
diff --git a/sound/vox/ing.wav b/sound/vox/ing.wav
deleted file mode 100644
index 0728905c349..00000000000
Binary files a/sound/vox/ing.wav and /dev/null differ
diff --git a/sound/vox/inoperative.wav b/sound/vox/inoperative.wav
deleted file mode 100644
index 6822cc5fc37..00000000000
Binary files a/sound/vox/inoperative.wav and /dev/null differ
diff --git a/sound/vox/inside.wav b/sound/vox/inside.wav
deleted file mode 100644
index 03cb903c24a..00000000000
Binary files a/sound/vox/inside.wav and /dev/null differ
diff --git a/sound/vox/inspection.wav b/sound/vox/inspection.wav
deleted file mode 100644
index 3aecb746262..00000000000
Binary files a/sound/vox/inspection.wav and /dev/null differ
diff --git a/sound/vox/inspector.wav b/sound/vox/inspector.wav
deleted file mode 100644
index 06a54a36700..00000000000
Binary files a/sound/vox/inspector.wav and /dev/null differ
diff --git a/sound/vox/interchange.wav b/sound/vox/interchange.wav
deleted file mode 100644
index c7814162b42..00000000000
Binary files a/sound/vox/interchange.wav and /dev/null differ
diff --git a/sound/vox/intruder.wav b/sound/vox/intruder.wav
deleted file mode 100644
index a32958f0be6..00000000000
Binary files a/sound/vox/intruder.wav and /dev/null differ
diff --git a/sound/vox/invallid.wav b/sound/vox/invallid.wav
deleted file mode 100644
index fbf3b4e5245..00000000000
Binary files a/sound/vox/invallid.wav and /dev/null differ
diff --git a/sound/vox/invasion.wav b/sound/vox/invasion.wav
deleted file mode 100644
index 0024f331d4b..00000000000
Binary files a/sound/vox/invasion.wav and /dev/null differ
diff --git a/sound/vox/is.wav b/sound/vox/is.wav
deleted file mode 100644
index 0eecb1a7b7a..00000000000
Binary files a/sound/vox/is.wav and /dev/null differ
diff --git a/sound/vox/it.wav b/sound/vox/it.wav
deleted file mode 100644
index 1e96daf6bba..00000000000
Binary files a/sound/vox/it.wav and /dev/null differ
diff --git a/sound/vox/johnson.wav b/sound/vox/johnson.wav
deleted file mode 100644
index 1cef742cf67..00000000000
Binary files a/sound/vox/johnson.wav and /dev/null differ
diff --git a/sound/vox/juliet.wav b/sound/vox/juliet.wav
deleted file mode 100644
index 88a78517ca8..00000000000
Binary files a/sound/vox/juliet.wav and /dev/null differ
diff --git a/sound/vox/key.wav b/sound/vox/key.wav
deleted file mode 100644
index ba42b393db3..00000000000
Binary files a/sound/vox/key.wav and /dev/null differ
diff --git a/sound/vox/kill.wav b/sound/vox/kill.wav
deleted file mode 100644
index 9ae66ac5f6d..00000000000
Binary files a/sound/vox/kill.wav and /dev/null differ
diff --git a/sound/vox/kilo.wav b/sound/vox/kilo.wav
deleted file mode 100644
index e30904cafbe..00000000000
Binary files a/sound/vox/kilo.wav and /dev/null differ
diff --git a/sound/vox/kit.wav b/sound/vox/kit.wav
deleted file mode 100644
index b6cf53a5477..00000000000
Binary files a/sound/vox/kit.wav and /dev/null differ
diff --git a/sound/vox/lab.wav b/sound/vox/lab.wav
deleted file mode 100644
index 8b2518fe570..00000000000
Binary files a/sound/vox/lab.wav and /dev/null differ
diff --git a/sound/vox/lambda.wav b/sound/vox/lambda.wav
deleted file mode 100644
index a238ac9d964..00000000000
Binary files a/sound/vox/lambda.wav and /dev/null differ
diff --git a/sound/vox/laser.wav b/sound/vox/laser.wav
deleted file mode 100644
index 7617aa65d7a..00000000000
Binary files a/sound/vox/laser.wav and /dev/null differ
diff --git a/sound/vox/last.wav b/sound/vox/last.wav
deleted file mode 100644
index 458d13af62c..00000000000
Binary files a/sound/vox/last.wav and /dev/null differ
diff --git a/sound/vox/launch.wav b/sound/vox/launch.wav
deleted file mode 100644
index 66fd2224cee..00000000000
Binary files a/sound/vox/launch.wav and /dev/null differ
diff --git a/sound/vox/leak.wav b/sound/vox/leak.wav
deleted file mode 100644
index 0ec0fc786d9..00000000000
Binary files a/sound/vox/leak.wav and /dev/null differ
diff --git a/sound/vox/leave.wav b/sound/vox/leave.wav
deleted file mode 100644
index ce45698813a..00000000000
Binary files a/sound/vox/leave.wav and /dev/null differ
diff --git a/sound/vox/left.wav b/sound/vox/left.wav
deleted file mode 100644
index 2621d07fbdb..00000000000
Binary files a/sound/vox/left.wav and /dev/null differ
diff --git a/sound/vox/legal.wav b/sound/vox/legal.wav
deleted file mode 100644
index 928033759d2..00000000000
Binary files a/sound/vox/legal.wav and /dev/null differ
diff --git a/sound/vox/level.wav b/sound/vox/level.wav
deleted file mode 100644
index 1f01010dd01..00000000000
Binary files a/sound/vox/level.wav and /dev/null differ
diff --git a/sound/vox/lever.wav b/sound/vox/lever.wav
deleted file mode 100644
index a863fdc77a0..00000000000
Binary files a/sound/vox/lever.wav and /dev/null differ
diff --git a/sound/vox/lie.wav b/sound/vox/lie.wav
deleted file mode 100644
index 01b8749a0c8..00000000000
Binary files a/sound/vox/lie.wav and /dev/null differ
diff --git a/sound/vox/lieutenant.wav b/sound/vox/lieutenant.wav
deleted file mode 100644
index f749f2782a5..00000000000
Binary files a/sound/vox/lieutenant.wav and /dev/null differ
diff --git a/sound/vox/life.wav b/sound/vox/life.wav
deleted file mode 100644
index fd739b4593d..00000000000
Binary files a/sound/vox/life.wav and /dev/null differ
diff --git a/sound/vox/light.wav b/sound/vox/light.wav
deleted file mode 100644
index 69be0499552..00000000000
Binary files a/sound/vox/light.wav and /dev/null differ
diff --git a/sound/vox/lima.wav b/sound/vox/lima.wav
deleted file mode 100644
index d0cf4d05812..00000000000
Binary files a/sound/vox/lima.wav and /dev/null differ
diff --git a/sound/vox/liquid.wav b/sound/vox/liquid.wav
deleted file mode 100644
index 9f77a868e7f..00000000000
Binary files a/sound/vox/liquid.wav and /dev/null differ
diff --git a/sound/vox/loading.wav b/sound/vox/loading.wav
deleted file mode 100644
index f5404ef81b8..00000000000
Binary files a/sound/vox/loading.wav and /dev/null differ
diff --git a/sound/vox/locate.wav b/sound/vox/locate.wav
deleted file mode 100644
index 6b605a8d2df..00000000000
Binary files a/sound/vox/locate.wav and /dev/null differ
diff --git a/sound/vox/located.wav b/sound/vox/located.wav
deleted file mode 100644
index 19fb575525d..00000000000
Binary files a/sound/vox/located.wav and /dev/null differ
diff --git a/sound/vox/location.wav b/sound/vox/location.wav
deleted file mode 100644
index 149b0ec0270..00000000000
Binary files a/sound/vox/location.wav and /dev/null differ
diff --git a/sound/vox/lock.wav b/sound/vox/lock.wav
deleted file mode 100644
index a62efba6b9b..00000000000
Binary files a/sound/vox/lock.wav and /dev/null differ
diff --git a/sound/vox/locked.wav b/sound/vox/locked.wav
deleted file mode 100644
index 8d197f25023..00000000000
Binary files a/sound/vox/locked.wav and /dev/null differ
diff --git a/sound/vox/locker.wav b/sound/vox/locker.wav
deleted file mode 100644
index e6f9dfe2993..00000000000
Binary files a/sound/vox/locker.wav and /dev/null differ
diff --git a/sound/vox/lockout.wav b/sound/vox/lockout.wav
deleted file mode 100644
index b2cd0fb64d3..00000000000
Binary files a/sound/vox/lockout.wav and /dev/null differ
diff --git a/sound/vox/lower.wav b/sound/vox/lower.wav
deleted file mode 100644
index a654c1d4249..00000000000
Binary files a/sound/vox/lower.wav and /dev/null differ
diff --git a/sound/vox/lowest.wav b/sound/vox/lowest.wav
deleted file mode 100644
index 63fdaf93f03..00000000000
Binary files a/sound/vox/lowest.wav and /dev/null differ
diff --git a/sound/vox/magnetic.wav b/sound/vox/magnetic.wav
deleted file mode 100644
index 68deeeae9cd..00000000000
Binary files a/sound/vox/magnetic.wav and /dev/null differ
diff --git a/sound/vox/main.wav b/sound/vox/main.wav
deleted file mode 100644
index 46572749123..00000000000
Binary files a/sound/vox/main.wav and /dev/null differ
diff --git a/sound/vox/maintenance.wav b/sound/vox/maintenance.wav
deleted file mode 100644
index ebca04c9d6d..00000000000
Binary files a/sound/vox/maintenance.wav and /dev/null differ
diff --git a/sound/vox/malfunction.wav b/sound/vox/malfunction.wav
deleted file mode 100644
index 51d999b41fb..00000000000
Binary files a/sound/vox/malfunction.wav and /dev/null differ
diff --git a/sound/vox/man.wav b/sound/vox/man.wav
deleted file mode 100644
index 64525a4f23d..00000000000
Binary files a/sound/vox/man.wav and /dev/null differ
diff --git a/sound/vox/mass.wav b/sound/vox/mass.wav
deleted file mode 100644
index c7825984aa0..00000000000
Binary files a/sound/vox/mass.wav and /dev/null differ
diff --git a/sound/vox/materials.wav b/sound/vox/materials.wav
deleted file mode 100644
index c983ae71a87..00000000000
Binary files a/sound/vox/materials.wav and /dev/null differ
diff --git a/sound/vox/maximum.wav b/sound/vox/maximum.wav
deleted file mode 100644
index f1dbc8062d6..00000000000
Binary files a/sound/vox/maximum.wav and /dev/null differ
diff --git a/sound/vox/may.wav b/sound/vox/may.wav
deleted file mode 100644
index a2387387030..00000000000
Binary files a/sound/vox/may.wav and /dev/null differ
diff --git a/sound/vox/medical.wav b/sound/vox/medical.wav
deleted file mode 100644
index ece7f0c4c5f..00000000000
Binary files a/sound/vox/medical.wav and /dev/null differ
diff --git a/sound/vox/men.wav b/sound/vox/men.wav
deleted file mode 100644
index 594523da0ae..00000000000
Binary files a/sound/vox/men.wav and /dev/null differ
diff --git a/sound/vox/mercy.wav b/sound/vox/mercy.wav
deleted file mode 100644
index 8416b25dae4..00000000000
Binary files a/sound/vox/mercy.wav and /dev/null differ
diff --git a/sound/vox/mesa.wav b/sound/vox/mesa.wav
deleted file mode 100644
index fcb1d9843c0..00000000000
Binary files a/sound/vox/mesa.wav and /dev/null differ
diff --git a/sound/vox/message.wav b/sound/vox/message.wav
deleted file mode 100644
index b0b769db726..00000000000
Binary files a/sound/vox/message.wav and /dev/null differ
diff --git a/sound/vox/meter.wav b/sound/vox/meter.wav
deleted file mode 100644
index ca063bddad7..00000000000
Binary files a/sound/vox/meter.wav and /dev/null differ
diff --git a/sound/vox/micro.wav b/sound/vox/micro.wav
deleted file mode 100644
index 7869b97cecb..00000000000
Binary files a/sound/vox/micro.wav and /dev/null differ
diff --git a/sound/vox/middle.wav b/sound/vox/middle.wav
deleted file mode 100644
index b58a5878a9c..00000000000
Binary files a/sound/vox/middle.wav and /dev/null differ
diff --git a/sound/vox/mike.wav b/sound/vox/mike.wav
deleted file mode 100644
index a008bdefed9..00000000000
Binary files a/sound/vox/mike.wav and /dev/null differ
diff --git a/sound/vox/miles.wav b/sound/vox/miles.wav
deleted file mode 100644
index 9b04a790ea4..00000000000
Binary files a/sound/vox/miles.wav and /dev/null differ
diff --git a/sound/vox/military.wav b/sound/vox/military.wav
deleted file mode 100644
index 8387dc3b6c8..00000000000
Binary files a/sound/vox/military.wav and /dev/null differ
diff --git a/sound/vox/milli.wav b/sound/vox/milli.wav
deleted file mode 100644
index cc0b3e4c97e..00000000000
Binary files a/sound/vox/milli.wav and /dev/null differ
diff --git a/sound/vox/million.wav b/sound/vox/million.wav
deleted file mode 100644
index 6409eb0760a..00000000000
Binary files a/sound/vox/million.wav and /dev/null differ
diff --git a/sound/vox/minefield.wav b/sound/vox/minefield.wav
deleted file mode 100644
index 2af1c213671..00000000000
Binary files a/sound/vox/minefield.wav and /dev/null differ
diff --git a/sound/vox/minimum.wav b/sound/vox/minimum.wav
deleted file mode 100644
index ee184ce4fcb..00000000000
Binary files a/sound/vox/minimum.wav and /dev/null differ
diff --git a/sound/vox/minutes.wav b/sound/vox/minutes.wav
deleted file mode 100644
index 2e9fb914edd..00000000000
Binary files a/sound/vox/minutes.wav and /dev/null differ
diff --git a/sound/vox/mister.wav b/sound/vox/mister.wav
deleted file mode 100644
index 27507cfb09c..00000000000
Binary files a/sound/vox/mister.wav and /dev/null differ
diff --git a/sound/vox/mode.wav b/sound/vox/mode.wav
deleted file mode 100644
index e1060e9661b..00000000000
Binary files a/sound/vox/mode.wav and /dev/null differ
diff --git a/sound/vox/motor.wav b/sound/vox/motor.wav
deleted file mode 100644
index 7d1dbaeba46..00000000000
Binary files a/sound/vox/motor.wav and /dev/null differ
diff --git a/sound/vox/motorpool.wav b/sound/vox/motorpool.wav
deleted file mode 100644
index ae5a6af0d6f..00000000000
Binary files a/sound/vox/motorpool.wav and /dev/null differ
diff --git a/sound/vox/move.wav b/sound/vox/move.wav
deleted file mode 100644
index 1bc2172297f..00000000000
Binary files a/sound/vox/move.wav and /dev/null differ
diff --git a/sound/vox/must.wav b/sound/vox/must.wav
deleted file mode 100644
index 3e6e965bec1..00000000000
Binary files a/sound/vox/must.wav and /dev/null differ
diff --git a/sound/vox/nearest.wav b/sound/vox/nearest.wav
deleted file mode 100644
index 3f84ee72413..00000000000
Binary files a/sound/vox/nearest.wav and /dev/null differ
diff --git a/sound/vox/nice.wav b/sound/vox/nice.wav
deleted file mode 100644
index 8bd140649f6..00000000000
Binary files a/sound/vox/nice.wav and /dev/null differ
diff --git a/sound/vox/nine.wav b/sound/vox/nine.wav
deleted file mode 100644
index b85745edf9c..00000000000
Binary files a/sound/vox/nine.wav and /dev/null differ
diff --git a/sound/vox/nineteen.wav b/sound/vox/nineteen.wav
deleted file mode 100644
index c6da48310b2..00000000000
Binary files a/sound/vox/nineteen.wav and /dev/null differ
diff --git a/sound/vox/ninety.wav b/sound/vox/ninety.wav
deleted file mode 100644
index 74e2e02d412..00000000000
Binary files a/sound/vox/ninety.wav and /dev/null differ
diff --git a/sound/vox/no.wav b/sound/vox/no.wav
deleted file mode 100644
index ced1b6617cf..00000000000
Binary files a/sound/vox/no.wav and /dev/null differ
diff --git a/sound/vox/nominal.wav b/sound/vox/nominal.wav
deleted file mode 100644
index f0656302d1d..00000000000
Binary files a/sound/vox/nominal.wav and /dev/null differ
diff --git a/sound/vox/north.wav b/sound/vox/north.wav
deleted file mode 100644
index 4867fdc7bc5..00000000000
Binary files a/sound/vox/north.wav and /dev/null differ
diff --git a/sound/vox/not.wav b/sound/vox/not.wav
deleted file mode 100644
index 626cd177744..00000000000
Binary files a/sound/vox/not.wav and /dev/null differ
diff --git a/sound/vox/november.wav b/sound/vox/november.wav
deleted file mode 100644
index 212efe5f9a6..00000000000
Binary files a/sound/vox/november.wav and /dev/null differ
diff --git a/sound/vox/now.wav b/sound/vox/now.wav
deleted file mode 100644
index 0619087d594..00000000000
Binary files a/sound/vox/now.wav and /dev/null differ
diff --git a/sound/vox/number.wav b/sound/vox/number.wav
deleted file mode 100644
index cfec10a75e6..00000000000
Binary files a/sound/vox/number.wav and /dev/null differ
diff --git a/sound/vox/objective.wav b/sound/vox/objective.wav
deleted file mode 100644
index 14ea571aa68..00000000000
Binary files a/sound/vox/objective.wav and /dev/null differ
diff --git a/sound/vox/observation.wav b/sound/vox/observation.wav
deleted file mode 100644
index 9141789671a..00000000000
Binary files a/sound/vox/observation.wav and /dev/null differ
diff --git a/sound/vox/of.wav b/sound/vox/of.wav
deleted file mode 100644
index 7cf5427dfb1..00000000000
Binary files a/sound/vox/of.wav and /dev/null differ
diff --git a/sound/vox/officer.wav b/sound/vox/officer.wav
deleted file mode 100644
index 9017915aef2..00000000000
Binary files a/sound/vox/officer.wav and /dev/null differ
diff --git a/sound/vox/ok.wav b/sound/vox/ok.wav
deleted file mode 100644
index 66011aed6d4..00000000000
Binary files a/sound/vox/ok.wav and /dev/null differ
diff --git a/sound/vox/on.wav b/sound/vox/on.wav
deleted file mode 100644
index 2b97a1fd46a..00000000000
Binary files a/sound/vox/on.wav and /dev/null differ
diff --git a/sound/vox/one.wav b/sound/vox/one.wav
deleted file mode 100644
index 57f2b3f14de..00000000000
Binary files a/sound/vox/one.wav and /dev/null differ
diff --git a/sound/vox/open.wav b/sound/vox/open.wav
deleted file mode 100644
index be98260bb92..00000000000
Binary files a/sound/vox/open.wav and /dev/null differ
diff --git a/sound/vox/operating.wav b/sound/vox/operating.wav
deleted file mode 100644
index b2180694205..00000000000
Binary files a/sound/vox/operating.wav and /dev/null differ
diff --git a/sound/vox/operations.wav b/sound/vox/operations.wav
deleted file mode 100644
index 37c9d75e0eb..00000000000
Binary files a/sound/vox/operations.wav and /dev/null differ
diff --git a/sound/vox/operative.wav b/sound/vox/operative.wav
deleted file mode 100644
index 70f99029cd2..00000000000
Binary files a/sound/vox/operative.wav and /dev/null differ
diff --git a/sound/vox/option.wav b/sound/vox/option.wav
deleted file mode 100644
index a5199b71de6..00000000000
Binary files a/sound/vox/option.wav and /dev/null differ
diff --git a/sound/vox/order.wav b/sound/vox/order.wav
deleted file mode 100644
index c5a25483401..00000000000
Binary files a/sound/vox/order.wav and /dev/null differ
diff --git a/sound/vox/organic.wav b/sound/vox/organic.wav
deleted file mode 100644
index 78dc879d7c0..00000000000
Binary files a/sound/vox/organic.wav and /dev/null differ
diff --git a/sound/vox/oscar.wav b/sound/vox/oscar.wav
deleted file mode 100644
index 32db2392d58..00000000000
Binary files a/sound/vox/oscar.wav and /dev/null differ
diff --git a/sound/vox/out.wav b/sound/vox/out.wav
deleted file mode 100644
index 4aca4d70705..00000000000
Binary files a/sound/vox/out.wav and /dev/null differ
diff --git a/sound/vox/outside.wav b/sound/vox/outside.wav
deleted file mode 100644
index 62993ea5e45..00000000000
Binary files a/sound/vox/outside.wav and /dev/null differ
diff --git a/sound/vox/over.wav b/sound/vox/over.wav
deleted file mode 100644
index 8068c74f732..00000000000
Binary files a/sound/vox/over.wav and /dev/null differ
diff --git a/sound/vox/overload.wav b/sound/vox/overload.wav
deleted file mode 100644
index d932cb3dedf..00000000000
Binary files a/sound/vox/overload.wav and /dev/null differ
diff --git a/sound/vox/override.wav b/sound/vox/override.wav
deleted file mode 100644
index 132667e7eae..00000000000
Binary files a/sound/vox/override.wav and /dev/null differ
diff --git a/sound/vox/pacify.wav b/sound/vox/pacify.wav
deleted file mode 100644
index 6a596197d75..00000000000
Binary files a/sound/vox/pacify.wav and /dev/null differ
diff --git a/sound/vox/pain.wav b/sound/vox/pain.wav
deleted file mode 100644
index bdb30dded8b..00000000000
Binary files a/sound/vox/pain.wav and /dev/null differ
diff --git a/sound/vox/pal.wav b/sound/vox/pal.wav
deleted file mode 100644
index 28eb17ce99a..00000000000
Binary files a/sound/vox/pal.wav and /dev/null differ
diff --git a/sound/vox/panel.wav b/sound/vox/panel.wav
deleted file mode 100644
index ce1f22fd234..00000000000
Binary files a/sound/vox/panel.wav and /dev/null differ
diff --git a/sound/vox/percent.wav b/sound/vox/percent.wav
deleted file mode 100644
index 9e775863ae4..00000000000
Binary files a/sound/vox/percent.wav and /dev/null differ
diff --git a/sound/vox/perimeter.wav b/sound/vox/perimeter.wav
deleted file mode 100644
index 91a8d95d910..00000000000
Binary files a/sound/vox/perimeter.wav and /dev/null differ
diff --git a/sound/vox/permitted.wav b/sound/vox/permitted.wav
deleted file mode 100644
index 015d10eaa87..00000000000
Binary files a/sound/vox/permitted.wav and /dev/null differ
diff --git a/sound/vox/personnel.wav b/sound/vox/personnel.wav
deleted file mode 100644
index 665a3215c9c..00000000000
Binary files a/sound/vox/personnel.wav and /dev/null differ
diff --git a/sound/vox/pipe.wav b/sound/vox/pipe.wav
deleted file mode 100644
index 53abe7db8bb..00000000000
Binary files a/sound/vox/pipe.wav and /dev/null differ
diff --git a/sound/vox/plant.wav b/sound/vox/plant.wav
deleted file mode 100644
index 8fc84c60ac4..00000000000
Binary files a/sound/vox/plant.wav and /dev/null differ
diff --git a/sound/vox/platform.wav b/sound/vox/platform.wav
deleted file mode 100644
index 72ca2c179ff..00000000000
Binary files a/sound/vox/platform.wav and /dev/null differ
diff --git a/sound/vox/please.wav b/sound/vox/please.wav
deleted file mode 100644
index 4dc346e3e02..00000000000
Binary files a/sound/vox/please.wav and /dev/null differ
diff --git a/sound/vox/point.wav b/sound/vox/point.wav
deleted file mode 100644
index 26e4ca508bf..00000000000
Binary files a/sound/vox/point.wav and /dev/null differ
diff --git a/sound/vox/portal.wav b/sound/vox/portal.wav
deleted file mode 100644
index 2f093e99244..00000000000
Binary files a/sound/vox/portal.wav and /dev/null differ
diff --git a/sound/vox/power.wav b/sound/vox/power.wav
deleted file mode 100644
index 3256e3ee995..00000000000
Binary files a/sound/vox/power.wav and /dev/null differ
diff --git a/sound/vox/presence.wav b/sound/vox/presence.wav
deleted file mode 100644
index c7a3b8f1e00..00000000000
Binary files a/sound/vox/presence.wav and /dev/null differ
diff --git a/sound/vox/press.wav b/sound/vox/press.wav
deleted file mode 100644
index 138ef0f2eb8..00000000000
Binary files a/sound/vox/press.wav and /dev/null differ
diff --git a/sound/vox/primary.wav b/sound/vox/primary.wav
deleted file mode 100644
index ed107abdd11..00000000000
Binary files a/sound/vox/primary.wav and /dev/null differ
diff --git a/sound/vox/proceed.wav b/sound/vox/proceed.wav
deleted file mode 100644
index ec5ba2f4380..00000000000
Binary files a/sound/vox/proceed.wav and /dev/null differ
diff --git a/sound/vox/processing.wav b/sound/vox/processing.wav
deleted file mode 100644
index 3470d8eb07b..00000000000
Binary files a/sound/vox/processing.wav and /dev/null differ
diff --git a/sound/vox/progress.wav b/sound/vox/progress.wav
deleted file mode 100644
index ab2ef1914ff..00000000000
Binary files a/sound/vox/progress.wav and /dev/null differ
diff --git a/sound/vox/proper.wav b/sound/vox/proper.wav
deleted file mode 100644
index fb799ae0670..00000000000
Binary files a/sound/vox/proper.wav and /dev/null differ
diff --git a/sound/vox/propulsion.wav b/sound/vox/propulsion.wav
deleted file mode 100644
index cc60270a56d..00000000000
Binary files a/sound/vox/propulsion.wav and /dev/null differ
diff --git a/sound/vox/prosecute.wav b/sound/vox/prosecute.wav
deleted file mode 100644
index 9d76be850b8..00000000000
Binary files a/sound/vox/prosecute.wav and /dev/null differ
diff --git a/sound/vox/protective.wav b/sound/vox/protective.wav
deleted file mode 100644
index be17714e62f..00000000000
Binary files a/sound/vox/protective.wav and /dev/null differ
diff --git a/sound/vox/push.wav b/sound/vox/push.wav
deleted file mode 100644
index db91cb1229f..00000000000
Binary files a/sound/vox/push.wav and /dev/null differ
diff --git a/sound/vox/quantum.wav b/sound/vox/quantum.wav
deleted file mode 100644
index 3e5ee45d7b3..00000000000
Binary files a/sound/vox/quantum.wav and /dev/null differ
diff --git a/sound/vox/quebec.wav b/sound/vox/quebec.wav
deleted file mode 100644
index 6323a992cb2..00000000000
Binary files a/sound/vox/quebec.wav and /dev/null differ
diff --git a/sound/vox/question.wav b/sound/vox/question.wav
deleted file mode 100644
index cf6de8dd526..00000000000
Binary files a/sound/vox/question.wav and /dev/null differ
diff --git a/sound/vox/questioning.wav b/sound/vox/questioning.wav
deleted file mode 100644
index 51f08488dc9..00000000000
Binary files a/sound/vox/questioning.wav and /dev/null differ
diff --git a/sound/vox/quick.wav b/sound/vox/quick.wav
deleted file mode 100644
index 82c6c493d70..00000000000
Binary files a/sound/vox/quick.wav and /dev/null differ
diff --git a/sound/vox/quit.wav b/sound/vox/quit.wav
deleted file mode 100644
index 1ee00b87a1c..00000000000
Binary files a/sound/vox/quit.wav and /dev/null differ
diff --git a/sound/vox/radiation.wav b/sound/vox/radiation.wav
deleted file mode 100644
index 5551f24b44f..00000000000
Binary files a/sound/vox/radiation.wav and /dev/null differ
diff --git a/sound/vox/radioactive.wav b/sound/vox/radioactive.wav
deleted file mode 100644
index 84b3b4a180e..00000000000
Binary files a/sound/vox/radioactive.wav and /dev/null differ
diff --git a/sound/vox/rads.wav b/sound/vox/rads.wav
deleted file mode 100644
index 13802ea3020..00000000000
Binary files a/sound/vox/rads.wav and /dev/null differ
diff --git a/sound/vox/rapid.wav b/sound/vox/rapid.wav
deleted file mode 100644
index fdfdd10faa7..00000000000
Binary files a/sound/vox/rapid.wav and /dev/null differ
diff --git a/sound/vox/reach.wav b/sound/vox/reach.wav
deleted file mode 100644
index 5b2ec24bd4f..00000000000
Binary files a/sound/vox/reach.wav and /dev/null differ
diff --git a/sound/vox/reached.wav b/sound/vox/reached.wav
deleted file mode 100644
index 22bd766019d..00000000000
Binary files a/sound/vox/reached.wav and /dev/null differ
diff --git a/sound/vox/reactor.wav b/sound/vox/reactor.wav
deleted file mode 100644
index c8fb909be07..00000000000
Binary files a/sound/vox/reactor.wav and /dev/null differ
diff --git a/sound/vox/red.wav b/sound/vox/red.wav
deleted file mode 100644
index 777e5466485..00000000000
Binary files a/sound/vox/red.wav and /dev/null differ
diff --git a/sound/vox/relay.wav b/sound/vox/relay.wav
deleted file mode 100644
index bef9fb09272..00000000000
Binary files a/sound/vox/relay.wav and /dev/null differ
diff --git a/sound/vox/released.wav b/sound/vox/released.wav
deleted file mode 100644
index ba56d6d9555..00000000000
Binary files a/sound/vox/released.wav and /dev/null differ
diff --git a/sound/vox/remaining.wav b/sound/vox/remaining.wav
deleted file mode 100644
index 0c393ee9d10..00000000000
Binary files a/sound/vox/remaining.wav and /dev/null differ
diff --git a/sound/vox/renegade.wav b/sound/vox/renegade.wav
deleted file mode 100644
index 0dc4518edc6..00000000000
Binary files a/sound/vox/renegade.wav and /dev/null differ
diff --git a/sound/vox/repair.wav b/sound/vox/repair.wav
deleted file mode 100644
index be2fe5418e6..00000000000
Binary files a/sound/vox/repair.wav and /dev/null differ
diff --git a/sound/vox/report.wav b/sound/vox/report.wav
deleted file mode 100644
index 685c3878945..00000000000
Binary files a/sound/vox/report.wav and /dev/null differ
diff --git a/sound/vox/reports.wav b/sound/vox/reports.wav
deleted file mode 100644
index 19e8f0478b3..00000000000
Binary files a/sound/vox/reports.wav and /dev/null differ
diff --git a/sound/vox/required.wav b/sound/vox/required.wav
deleted file mode 100644
index c5bbf850b48..00000000000
Binary files a/sound/vox/required.wav and /dev/null differ
diff --git a/sound/vox/research.wav b/sound/vox/research.wav
deleted file mode 100644
index d7385867da7..00000000000
Binary files a/sound/vox/research.wav and /dev/null differ
diff --git a/sound/vox/resevoir.wav b/sound/vox/resevoir.wav
deleted file mode 100644
index 7b67635b929..00000000000
Binary files a/sound/vox/resevoir.wav and /dev/null differ
diff --git a/sound/vox/resistance.wav b/sound/vox/resistance.wav
deleted file mode 100644
index 1f3f90b0f92..00000000000
Binary files a/sound/vox/resistance.wav and /dev/null differ
diff --git a/sound/vox/right.wav b/sound/vox/right.wav
deleted file mode 100644
index 0c920c843db..00000000000
Binary files a/sound/vox/right.wav and /dev/null differ
diff --git a/sound/vox/rocket.wav b/sound/vox/rocket.wav
deleted file mode 100644
index 57d7e6a8e07..00000000000
Binary files a/sound/vox/rocket.wav and /dev/null differ
diff --git a/sound/vox/roger.wav b/sound/vox/roger.wav
deleted file mode 100644
index 426014be23b..00000000000
Binary files a/sound/vox/roger.wav and /dev/null differ
diff --git a/sound/vox/romeo.wav b/sound/vox/romeo.wav
deleted file mode 100644
index 42590922e46..00000000000
Binary files a/sound/vox/romeo.wav and /dev/null differ
diff --git a/sound/vox/room.wav b/sound/vox/room.wav
deleted file mode 100644
index da12c55feab..00000000000
Binary files a/sound/vox/room.wav and /dev/null differ
diff --git a/sound/vox/round.wav b/sound/vox/round.wav
deleted file mode 100644
index 76d30382eb3..00000000000
Binary files a/sound/vox/round.wav and /dev/null differ
diff --git a/sound/vox/run.wav b/sound/vox/run.wav
deleted file mode 100644
index f2baec69b1b..00000000000
Binary files a/sound/vox/run.wav and /dev/null differ
diff --git a/sound/vox/safe.wav b/sound/vox/safe.wav
deleted file mode 100644
index 65d52fbcdcd..00000000000
Binary files a/sound/vox/safe.wav and /dev/null differ
diff --git a/sound/vox/safety.wav b/sound/vox/safety.wav
deleted file mode 100644
index b24e8951b20..00000000000
Binary files a/sound/vox/safety.wav and /dev/null differ
diff --git a/sound/vox/sargeant.wav b/sound/vox/sargeant.wav
deleted file mode 100644
index e26c6a301e0..00000000000
Binary files a/sound/vox/sargeant.wav and /dev/null differ
diff --git a/sound/vox/satellite.wav b/sound/vox/satellite.wav
deleted file mode 100644
index 45187b819b0..00000000000
Binary files a/sound/vox/satellite.wav and /dev/null differ
diff --git a/sound/vox/save.wav b/sound/vox/save.wav
deleted file mode 100644
index db09e275396..00000000000
Binary files a/sound/vox/save.wav and /dev/null differ
diff --git a/sound/vox/science.wav b/sound/vox/science.wav
deleted file mode 100644
index cb1f2d7236d..00000000000
Binary files a/sound/vox/science.wav and /dev/null differ
diff --git a/sound/vox/scream.wav b/sound/vox/scream.wav
deleted file mode 100644
index 66afd0983d7..00000000000
Binary files a/sound/vox/scream.wav and /dev/null differ
diff --git a/sound/vox/screen.wav b/sound/vox/screen.wav
deleted file mode 100644
index bb375266bb7..00000000000
Binary files a/sound/vox/screen.wav and /dev/null differ
diff --git a/sound/vox/search.wav b/sound/vox/search.wav
deleted file mode 100644
index 023072d9897..00000000000
Binary files a/sound/vox/search.wav and /dev/null differ
diff --git a/sound/vox/second.wav b/sound/vox/second.wav
deleted file mode 100644
index dbed0caa0ae..00000000000
Binary files a/sound/vox/second.wav and /dev/null differ
diff --git a/sound/vox/secondary.wav b/sound/vox/secondary.wav
deleted file mode 100644
index af29ac286ce..00000000000
Binary files a/sound/vox/secondary.wav and /dev/null differ
diff --git a/sound/vox/seconds.wav b/sound/vox/seconds.wav
deleted file mode 100644
index a631ea1db04..00000000000
Binary files a/sound/vox/seconds.wav and /dev/null differ
diff --git a/sound/vox/sector.wav b/sound/vox/sector.wav
deleted file mode 100644
index 2318ccf631a..00000000000
Binary files a/sound/vox/sector.wav and /dev/null differ
diff --git a/sound/vox/secure.wav b/sound/vox/secure.wav
deleted file mode 100644
index 17fe6225ff5..00000000000
Binary files a/sound/vox/secure.wav and /dev/null differ
diff --git a/sound/vox/secured.wav b/sound/vox/secured.wav
deleted file mode 100644
index 8007a48c0d9..00000000000
Binary files a/sound/vox/secured.wav and /dev/null differ
diff --git a/sound/vox/security.wav b/sound/vox/security.wav
deleted file mode 100644
index 16435fdf515..00000000000
Binary files a/sound/vox/security.wav and /dev/null differ
diff --git a/sound/vox/select.wav b/sound/vox/select.wav
deleted file mode 100644
index 9b89d52bb0c..00000000000
Binary files a/sound/vox/select.wav and /dev/null differ
diff --git a/sound/vox/selected.wav b/sound/vox/selected.wav
deleted file mode 100644
index d4124f579a1..00000000000
Binary files a/sound/vox/selected.wav and /dev/null differ
diff --git a/sound/vox/service.wav b/sound/vox/service.wav
deleted file mode 100644
index 3f6957d2e00..00000000000
Binary files a/sound/vox/service.wav and /dev/null differ
diff --git a/sound/vox/seven.wav b/sound/vox/seven.wav
deleted file mode 100644
index eca99c196a0..00000000000
Binary files a/sound/vox/seven.wav and /dev/null differ
diff --git a/sound/vox/seventeen.wav b/sound/vox/seventeen.wav
deleted file mode 100644
index 9526b8a4e3c..00000000000
Binary files a/sound/vox/seventeen.wav and /dev/null differ
diff --git a/sound/vox/seventy.wav b/sound/vox/seventy.wav
deleted file mode 100644
index 1b45ce6afe3..00000000000
Binary files a/sound/vox/seventy.wav and /dev/null differ
diff --git a/sound/vox/severe.wav b/sound/vox/severe.wav
deleted file mode 100644
index fed84eea850..00000000000
Binary files a/sound/vox/severe.wav and /dev/null differ
diff --git a/sound/vox/sewage.wav b/sound/vox/sewage.wav
deleted file mode 100644
index 60978963e2c..00000000000
Binary files a/sound/vox/sewage.wav and /dev/null differ
diff --git a/sound/vox/sewer.wav b/sound/vox/sewer.wav
deleted file mode 100644
index 5071a1d64a8..00000000000
Binary files a/sound/vox/sewer.wav and /dev/null differ
diff --git a/sound/vox/shield.wav b/sound/vox/shield.wav
deleted file mode 100644
index 0ab01e0a6a5..00000000000
Binary files a/sound/vox/shield.wav and /dev/null differ
diff --git a/sound/vox/shipment.wav b/sound/vox/shipment.wav
deleted file mode 100644
index 9b9014c51df..00000000000
Binary files a/sound/vox/shipment.wav and /dev/null differ
diff --git a/sound/vox/shock.wav b/sound/vox/shock.wav
deleted file mode 100644
index d4451bdf3c4..00000000000
Binary files a/sound/vox/shock.wav and /dev/null differ
diff --git a/sound/vox/shoot.wav b/sound/vox/shoot.wav
deleted file mode 100644
index 5661ceb9c9b..00000000000
Binary files a/sound/vox/shoot.wav and /dev/null differ
diff --git a/sound/vox/shower.wav b/sound/vox/shower.wav
deleted file mode 100644
index c32a9e42e08..00000000000
Binary files a/sound/vox/shower.wav and /dev/null differ
diff --git a/sound/vox/shut.wav b/sound/vox/shut.wav
deleted file mode 100644
index 6f68340502d..00000000000
Binary files a/sound/vox/shut.wav and /dev/null differ
diff --git a/sound/vox/side.wav b/sound/vox/side.wav
deleted file mode 100644
index 4f4091a4e53..00000000000
Binary files a/sound/vox/side.wav and /dev/null differ
diff --git a/sound/vox/sierra.wav b/sound/vox/sierra.wav
deleted file mode 100644
index 0e52a6ec56a..00000000000
Binary files a/sound/vox/sierra.wav and /dev/null differ
diff --git a/sound/vox/sight.wav b/sound/vox/sight.wav
deleted file mode 100644
index 5d479cab759..00000000000
Binary files a/sound/vox/sight.wav and /dev/null differ
diff --git a/sound/vox/silo.wav b/sound/vox/silo.wav
deleted file mode 100644
index daf9f28be1e..00000000000
Binary files a/sound/vox/silo.wav and /dev/null differ
diff --git a/sound/vox/six.wav b/sound/vox/six.wav
deleted file mode 100644
index aa6bb638e34..00000000000
Binary files a/sound/vox/six.wav and /dev/null differ
diff --git a/sound/vox/sixteen.wav b/sound/vox/sixteen.wav
deleted file mode 100644
index 6f2db2ad9d4..00000000000
Binary files a/sound/vox/sixteen.wav and /dev/null differ
diff --git a/sound/vox/sixty.wav b/sound/vox/sixty.wav
deleted file mode 100644
index 19610c7f796..00000000000
Binary files a/sound/vox/sixty.wav and /dev/null differ
diff --git a/sound/vox/slime.wav b/sound/vox/slime.wav
deleted file mode 100644
index 4d1d3cf6a4d..00000000000
Binary files a/sound/vox/slime.wav and /dev/null differ
diff --git a/sound/vox/slow.wav b/sound/vox/slow.wav
deleted file mode 100644
index 75101b7de4e..00000000000
Binary files a/sound/vox/slow.wav and /dev/null differ
diff --git a/sound/vox/soldier.wav b/sound/vox/soldier.wav
deleted file mode 100644
index c84ce201788..00000000000
Binary files a/sound/vox/soldier.wav and /dev/null differ
diff --git a/sound/vox/some.wav b/sound/vox/some.wav
deleted file mode 100644
index c4ba34efff8..00000000000
Binary files a/sound/vox/some.wav and /dev/null differ
diff --git a/sound/vox/someone.wav b/sound/vox/someone.wav
deleted file mode 100644
index 6f6183e1f7d..00000000000
Binary files a/sound/vox/someone.wav and /dev/null differ
diff --git a/sound/vox/something.wav b/sound/vox/something.wav
deleted file mode 100644
index 46011400955..00000000000
Binary files a/sound/vox/something.wav and /dev/null differ
diff --git a/sound/vox/son.wav b/sound/vox/son.wav
deleted file mode 100644
index f23495127e6..00000000000
Binary files a/sound/vox/son.wav and /dev/null differ
diff --git a/sound/vox/sorry.wav b/sound/vox/sorry.wav
deleted file mode 100644
index 4c0725b938d..00000000000
Binary files a/sound/vox/sorry.wav and /dev/null differ
diff --git a/sound/vox/south.wav b/sound/vox/south.wav
deleted file mode 100644
index 3a5ba004105..00000000000
Binary files a/sound/vox/south.wav and /dev/null differ
diff --git a/sound/vox/squad.wav b/sound/vox/squad.wav
deleted file mode 100644
index 71739d14980..00000000000
Binary files a/sound/vox/squad.wav and /dev/null differ
diff --git a/sound/vox/square.wav b/sound/vox/square.wav
deleted file mode 100644
index f08f73a5f4b..00000000000
Binary files a/sound/vox/square.wav and /dev/null differ
diff --git a/sound/vox/stairway.wav b/sound/vox/stairway.wav
deleted file mode 100644
index ab84571c82b..00000000000
Binary files a/sound/vox/stairway.wav and /dev/null differ
diff --git a/sound/vox/status.wav b/sound/vox/status.wav
deleted file mode 100644
index 42fe8b7822d..00000000000
Binary files a/sound/vox/status.wav and /dev/null differ
diff --git a/sound/vox/sterile.wav b/sound/vox/sterile.wav
deleted file mode 100644
index d95753222b9..00000000000
Binary files a/sound/vox/sterile.wav and /dev/null differ
diff --git a/sound/vox/sterilization.wav b/sound/vox/sterilization.wav
deleted file mode 100644
index f53240310cf..00000000000
Binary files a/sound/vox/sterilization.wav and /dev/null differ
diff --git a/sound/vox/storage.wav b/sound/vox/storage.wav
deleted file mode 100644
index 18954a4f79d..00000000000
Binary files a/sound/vox/storage.wav and /dev/null differ
diff --git a/sound/vox/sub.wav b/sound/vox/sub.wav
deleted file mode 100644
index d25510d3c07..00000000000
Binary files a/sound/vox/sub.wav and /dev/null differ
diff --git a/sound/vox/subsurface.wav b/sound/vox/subsurface.wav
deleted file mode 100644
index cb19be3a883..00000000000
Binary files a/sound/vox/subsurface.wav and /dev/null differ
diff --git a/sound/vox/sudden.wav b/sound/vox/sudden.wav
deleted file mode 100644
index b5eb4088ac9..00000000000
Binary files a/sound/vox/sudden.wav and /dev/null differ
diff --git a/sound/vox/suit.wav b/sound/vox/suit.wav
deleted file mode 100644
index d099c958439..00000000000
Binary files a/sound/vox/suit.wav and /dev/null differ
diff --git a/sound/vox/superconducting.wav b/sound/vox/superconducting.wav
deleted file mode 100644
index ad4fcc8f9d7..00000000000
Binary files a/sound/vox/superconducting.wav and /dev/null differ
diff --git a/sound/vox/supercooled.wav b/sound/vox/supercooled.wav
deleted file mode 100644
index 936562ed4f4..00000000000
Binary files a/sound/vox/supercooled.wav and /dev/null differ
diff --git a/sound/vox/supply.wav b/sound/vox/supply.wav
deleted file mode 100644
index 4b33c8e9b7b..00000000000
Binary files a/sound/vox/supply.wav and /dev/null differ
diff --git a/sound/vox/surface.wav b/sound/vox/surface.wav
deleted file mode 100644
index 0b02d732a9c..00000000000
Binary files a/sound/vox/surface.wav and /dev/null differ
diff --git a/sound/vox/surrender.wav b/sound/vox/surrender.wav
deleted file mode 100644
index f0a17b395ae..00000000000
Binary files a/sound/vox/surrender.wav and /dev/null differ
diff --git a/sound/vox/surround.wav b/sound/vox/surround.wav
deleted file mode 100644
index c9afd86f9cb..00000000000
Binary files a/sound/vox/surround.wav and /dev/null differ
diff --git a/sound/vox/surrounded.wav b/sound/vox/surrounded.wav
deleted file mode 100644
index 3cbf5134811..00000000000
Binary files a/sound/vox/surrounded.wav and /dev/null differ
diff --git a/sound/vox/switch.wav b/sound/vox/switch.wav
deleted file mode 100644
index f5ffcc7a6b3..00000000000
Binary files a/sound/vox/switch.wav and /dev/null differ
diff --git a/sound/vox/system.wav b/sound/vox/system.wav
deleted file mode 100644
index 078727a081b..00000000000
Binary files a/sound/vox/system.wav and /dev/null differ
diff --git a/sound/vox/systems.wav b/sound/vox/systems.wav
deleted file mode 100644
index c8802508301..00000000000
Binary files a/sound/vox/systems.wav and /dev/null differ
diff --git a/sound/vox/tactical.wav b/sound/vox/tactical.wav
deleted file mode 100644
index 6b1aca650be..00000000000
Binary files a/sound/vox/tactical.wav and /dev/null differ
diff --git a/sound/vox/take.wav b/sound/vox/take.wav
deleted file mode 100644
index 70644f52205..00000000000
Binary files a/sound/vox/take.wav and /dev/null differ
diff --git a/sound/vox/talk.wav b/sound/vox/talk.wav
deleted file mode 100644
index 3ff83c48c93..00000000000
Binary files a/sound/vox/talk.wav and /dev/null differ
diff --git a/sound/vox/tango.wav b/sound/vox/tango.wav
deleted file mode 100644
index 37b6f4fe198..00000000000
Binary files a/sound/vox/tango.wav and /dev/null differ
diff --git a/sound/vox/tank.wav b/sound/vox/tank.wav
deleted file mode 100644
index 9608b0d7492..00000000000
Binary files a/sound/vox/tank.wav and /dev/null differ
diff --git a/sound/vox/target.wav b/sound/vox/target.wav
deleted file mode 100644
index bd004147bf6..00000000000
Binary files a/sound/vox/target.wav and /dev/null differ
diff --git a/sound/vox/team.wav b/sound/vox/team.wav
deleted file mode 100644
index d0e47d4e101..00000000000
Binary files a/sound/vox/team.wav and /dev/null differ
diff --git a/sound/vox/temperature.wav b/sound/vox/temperature.wav
deleted file mode 100644
index e9b51dada78..00000000000
Binary files a/sound/vox/temperature.wav and /dev/null differ
diff --git a/sound/vox/temporal.wav b/sound/vox/temporal.wav
deleted file mode 100644
index d0398a0f8ce..00000000000
Binary files a/sound/vox/temporal.wav and /dev/null differ
diff --git a/sound/vox/ten.wav b/sound/vox/ten.wav
deleted file mode 100644
index fd0f353f6bb..00000000000
Binary files a/sound/vox/ten.wav and /dev/null differ
diff --git a/sound/vox/terminal.wav b/sound/vox/terminal.wav
deleted file mode 100644
index 5ffe39101e4..00000000000
Binary files a/sound/vox/terminal.wav and /dev/null differ
diff --git a/sound/vox/terminated.wav b/sound/vox/terminated.wav
deleted file mode 100644
index 1c972f092c1..00000000000
Binary files a/sound/vox/terminated.wav and /dev/null differ
diff --git a/sound/vox/termination.wav b/sound/vox/termination.wav
deleted file mode 100644
index f093cd31a11..00000000000
Binary files a/sound/vox/termination.wav and /dev/null differ
diff --git a/sound/vox/test.wav b/sound/vox/test.wav
deleted file mode 100644
index f7c9b461fc4..00000000000
Binary files a/sound/vox/test.wav and /dev/null differ
diff --git a/sound/vox/that.wav b/sound/vox/that.wav
deleted file mode 100644
index f9e8c928735..00000000000
Binary files a/sound/vox/that.wav and /dev/null differ
diff --git a/sound/vox/the.wav b/sound/vox/the.wav
deleted file mode 100644
index 3a07ea3be81..00000000000
Binary files a/sound/vox/the.wav and /dev/null differ
diff --git a/sound/vox/then.wav b/sound/vox/then.wav
deleted file mode 100644
index 1c2ec53386d..00000000000
Binary files a/sound/vox/then.wav and /dev/null differ
diff --git a/sound/vox/there.wav b/sound/vox/there.wav
deleted file mode 100644
index 0e25880076e..00000000000
Binary files a/sound/vox/there.wav and /dev/null differ
diff --git a/sound/vox/third.wav b/sound/vox/third.wav
deleted file mode 100644
index 962f2f96974..00000000000
Binary files a/sound/vox/third.wav and /dev/null differ
diff --git a/sound/vox/thirteen.wav b/sound/vox/thirteen.wav
deleted file mode 100644
index 1c392cfa3e0..00000000000
Binary files a/sound/vox/thirteen.wav and /dev/null differ
diff --git a/sound/vox/thirty.wav b/sound/vox/thirty.wav
deleted file mode 100644
index d7a34d4351a..00000000000
Binary files a/sound/vox/thirty.wav and /dev/null differ
diff --git a/sound/vox/this.wav b/sound/vox/this.wav
deleted file mode 100644
index b8f51ea1511..00000000000
Binary files a/sound/vox/this.wav and /dev/null differ
diff --git a/sound/vox/those.wav b/sound/vox/those.wav
deleted file mode 100644
index ef7db907219..00000000000
Binary files a/sound/vox/those.wav and /dev/null differ
diff --git a/sound/vox/thousand.wav b/sound/vox/thousand.wav
deleted file mode 100644
index b1f9df6edd1..00000000000
Binary files a/sound/vox/thousand.wav and /dev/null differ
diff --git a/sound/vox/threat.wav b/sound/vox/threat.wav
deleted file mode 100644
index 75cefae1879..00000000000
Binary files a/sound/vox/threat.wav and /dev/null differ
diff --git a/sound/vox/three.wav b/sound/vox/three.wav
deleted file mode 100644
index 097504d605b..00000000000
Binary files a/sound/vox/three.wav and /dev/null differ
diff --git a/sound/vox/through.wav b/sound/vox/through.wav
deleted file mode 100644
index 78053bdf90f..00000000000
Binary files a/sound/vox/through.wav and /dev/null differ
diff --git a/sound/vox/time.wav b/sound/vox/time.wav
deleted file mode 100644
index 856529d6a44..00000000000
Binary files a/sound/vox/time.wav and /dev/null differ
diff --git a/sound/vox/to.wav b/sound/vox/to.wav
deleted file mode 100644
index 5189cf2d580..00000000000
Binary files a/sound/vox/to.wav and /dev/null differ
diff --git a/sound/vox/top.wav b/sound/vox/top.wav
deleted file mode 100644
index 0747e8965aa..00000000000
Binary files a/sound/vox/top.wav and /dev/null differ
diff --git a/sound/vox/topside.wav b/sound/vox/topside.wav
deleted file mode 100644
index 6f6f54b973c..00000000000
Binary files a/sound/vox/topside.wav and /dev/null differ
diff --git a/sound/vox/touch.wav b/sound/vox/touch.wav
deleted file mode 100644
index 6712dc18a30..00000000000
Binary files a/sound/vox/touch.wav and /dev/null differ
diff --git a/sound/vox/towards.wav b/sound/vox/towards.wav
deleted file mode 100644
index ff04147f15c..00000000000
Binary files a/sound/vox/towards.wav and /dev/null differ
diff --git a/sound/vox/track.wav b/sound/vox/track.wav
deleted file mode 100644
index 5247acabd09..00000000000
Binary files a/sound/vox/track.wav and /dev/null differ
diff --git a/sound/vox/train.wav b/sound/vox/train.wav
deleted file mode 100644
index ced1a9850cc..00000000000
Binary files a/sound/vox/train.wav and /dev/null differ
diff --git a/sound/vox/transportation.wav b/sound/vox/transportation.wav
deleted file mode 100644
index 302241aeb00..00000000000
Binary files a/sound/vox/transportation.wav and /dev/null differ
diff --git a/sound/vox/truck.wav b/sound/vox/truck.wav
deleted file mode 100644
index 1692a9c7dd5..00000000000
Binary files a/sound/vox/truck.wav and /dev/null differ
diff --git a/sound/vox/tunnel.wav b/sound/vox/tunnel.wav
deleted file mode 100644
index f158042a9d1..00000000000
Binary files a/sound/vox/tunnel.wav and /dev/null differ
diff --git a/sound/vox/turn.wav b/sound/vox/turn.wav
deleted file mode 100644
index 407d2cdbe84..00000000000
Binary files a/sound/vox/turn.wav and /dev/null differ
diff --git a/sound/vox/turret.wav b/sound/vox/turret.wav
deleted file mode 100644
index ec42293ebb6..00000000000
Binary files a/sound/vox/turret.wav and /dev/null differ
diff --git a/sound/vox/twelve.wav b/sound/vox/twelve.wav
deleted file mode 100644
index d9fbcc25580..00000000000
Binary files a/sound/vox/twelve.wav and /dev/null differ
diff --git a/sound/vox/twenty.wav b/sound/vox/twenty.wav
deleted file mode 100644
index e6d7d8092d1..00000000000
Binary files a/sound/vox/twenty.wav and /dev/null differ
diff --git a/sound/vox/two.wav b/sound/vox/two.wav
deleted file mode 100644
index 14f432fd5c8..00000000000
Binary files a/sound/vox/two.wav and /dev/null differ
diff --git a/sound/vox/unauthorized.wav b/sound/vox/unauthorized.wav
deleted file mode 100644
index 7d3236f4913..00000000000
Binary files a/sound/vox/unauthorized.wav and /dev/null differ
diff --git a/sound/vox/under.wav b/sound/vox/under.wav
deleted file mode 100644
index dc30e4711c5..00000000000
Binary files a/sound/vox/under.wav and /dev/null differ
diff --git a/sound/vox/uniform.wav b/sound/vox/uniform.wav
deleted file mode 100644
index 899c7f029af..00000000000
Binary files a/sound/vox/uniform.wav and /dev/null differ
diff --git a/sound/vox/unlocked.wav b/sound/vox/unlocked.wav
deleted file mode 100644
index 0e48489db52..00000000000
Binary files a/sound/vox/unlocked.wav and /dev/null differ
diff --git a/sound/vox/until.wav b/sound/vox/until.wav
deleted file mode 100644
index 68f5ea47e4a..00000000000
Binary files a/sound/vox/until.wav and /dev/null differ
diff --git a/sound/vox/up.wav b/sound/vox/up.wav
deleted file mode 100644
index 18165467021..00000000000
Binary files a/sound/vox/up.wav and /dev/null differ
diff --git a/sound/vox/upper.wav b/sound/vox/upper.wav
deleted file mode 100644
index 8b591566511..00000000000
Binary files a/sound/vox/upper.wav and /dev/null differ
diff --git a/sound/vox/uranium.wav b/sound/vox/uranium.wav
deleted file mode 100644
index 2ab47d60858..00000000000
Binary files a/sound/vox/uranium.wav and /dev/null differ
diff --git a/sound/vox/us.wav b/sound/vox/us.wav
deleted file mode 100644
index 23b56e93576..00000000000
Binary files a/sound/vox/us.wav and /dev/null differ
diff --git a/sound/vox/usa.wav b/sound/vox/usa.wav
deleted file mode 100644
index 591233e6244..00000000000
Binary files a/sound/vox/usa.wav and /dev/null differ
diff --git a/sound/vox/use.wav b/sound/vox/use.wav
deleted file mode 100644
index 35be6177756..00000000000
Binary files a/sound/vox/use.wav and /dev/null differ
diff --git a/sound/vox/used.wav b/sound/vox/used.wav
deleted file mode 100644
index 3385240fd9e..00000000000
Binary files a/sound/vox/used.wav and /dev/null differ
diff --git a/sound/vox/user.wav b/sound/vox/user.wav
deleted file mode 100644
index 91ccb15af68..00000000000
Binary files a/sound/vox/user.wav and /dev/null differ
diff --git a/sound/vox/vacate.wav b/sound/vox/vacate.wav
deleted file mode 100644
index bed5d702e43..00000000000
Binary files a/sound/vox/vacate.wav and /dev/null differ
diff --git a/sound/vox/valid.wav b/sound/vox/valid.wav
deleted file mode 100644
index 40c3f1e4f65..00000000000
Binary files a/sound/vox/valid.wav and /dev/null differ
diff --git a/sound/vox/vapor.wav b/sound/vox/vapor.wav
deleted file mode 100644
index d067f698270..00000000000
Binary files a/sound/vox/vapor.wav and /dev/null differ
diff --git a/sound/vox/vent.wav b/sound/vox/vent.wav
deleted file mode 100644
index b4efa86991b..00000000000
Binary files a/sound/vox/vent.wav and /dev/null differ
diff --git a/sound/vox/ventillation.wav b/sound/vox/ventillation.wav
deleted file mode 100644
index d56679dda12..00000000000
Binary files a/sound/vox/ventillation.wav and /dev/null differ
diff --git a/sound/vox/victor.wav b/sound/vox/victor.wav
deleted file mode 100644
index 8245a2abf4c..00000000000
Binary files a/sound/vox/victor.wav and /dev/null differ
diff --git a/sound/vox/violated.wav b/sound/vox/violated.wav
deleted file mode 100644
index c597d1dfe29..00000000000
Binary files a/sound/vox/violated.wav and /dev/null differ
diff --git a/sound/vox/violation.wav b/sound/vox/violation.wav
deleted file mode 100644
index 98ed5dd0b9b..00000000000
Binary files a/sound/vox/violation.wav and /dev/null differ
diff --git a/sound/vox/voltage.wav b/sound/vox/voltage.wav
deleted file mode 100644
index 140e1dd6a20..00000000000
Binary files a/sound/vox/voltage.wav and /dev/null differ
diff --git a/sound/vox/vox_login.wav b/sound/vox/vox_login.wav
deleted file mode 100644
index 5679acfce81..00000000000
Binary files a/sound/vox/vox_login.wav and /dev/null differ
diff --git a/sound/vox/walk.wav b/sound/vox/walk.wav
deleted file mode 100644
index fd8d85f84d4..00000000000
Binary files a/sound/vox/walk.wav and /dev/null differ
diff --git a/sound/vox/wall.wav b/sound/vox/wall.wav
deleted file mode 100644
index e8e9a5fb4af..00000000000
Binary files a/sound/vox/wall.wav and /dev/null differ
diff --git a/sound/vox/want.wav b/sound/vox/want.wav
deleted file mode 100644
index 3d130ce8fe6..00000000000
Binary files a/sound/vox/want.wav and /dev/null differ
diff --git a/sound/vox/wanted.wav b/sound/vox/wanted.wav
deleted file mode 100644
index a292d2d33b7..00000000000
Binary files a/sound/vox/wanted.wav and /dev/null differ
diff --git a/sound/vox/warm.wav b/sound/vox/warm.wav
deleted file mode 100644
index 518f2905f42..00000000000
Binary files a/sound/vox/warm.wav and /dev/null differ
diff --git a/sound/vox/warn.wav b/sound/vox/warn.wav
deleted file mode 100644
index 75801460052..00000000000
Binary files a/sound/vox/warn.wav and /dev/null differ
diff --git a/sound/vox/warning.wav b/sound/vox/warning.wav
deleted file mode 100644
index 87db6c164b2..00000000000
Binary files a/sound/vox/warning.wav and /dev/null differ
diff --git a/sound/vox/waste.wav b/sound/vox/waste.wav
deleted file mode 100644
index 245c44d6820..00000000000
Binary files a/sound/vox/waste.wav and /dev/null differ
diff --git a/sound/vox/water.wav b/sound/vox/water.wav
deleted file mode 100644
index c29d7acf55c..00000000000
Binary files a/sound/vox/water.wav and /dev/null differ
diff --git a/sound/vox/we.wav b/sound/vox/we.wav
deleted file mode 100644
index d7ba93484d1..00000000000
Binary files a/sound/vox/we.wav and /dev/null differ
diff --git a/sound/vox/weapon.wav b/sound/vox/weapon.wav
deleted file mode 100644
index 3e95e9efc4a..00000000000
Binary files a/sound/vox/weapon.wav and /dev/null differ
diff --git a/sound/vox/west.wav b/sound/vox/west.wav
deleted file mode 100644
index 09f58088c95..00000000000
Binary files a/sound/vox/west.wav and /dev/null differ
diff --git a/sound/vox/whiskey.wav b/sound/vox/whiskey.wav
deleted file mode 100644
index 11ef7b3aa09..00000000000
Binary files a/sound/vox/whiskey.wav and /dev/null differ
diff --git a/sound/vox/white.wav b/sound/vox/white.wav
deleted file mode 100644
index 6d4ec3e138c..00000000000
Binary files a/sound/vox/white.wav and /dev/null differ
diff --git a/sound/vox/wilco.wav b/sound/vox/wilco.wav
deleted file mode 100644
index 862aa8d97d9..00000000000
Binary files a/sound/vox/wilco.wav and /dev/null differ
diff --git a/sound/vox/will.wav b/sound/vox/will.wav
deleted file mode 100644
index 327d81c9d0f..00000000000
Binary files a/sound/vox/will.wav and /dev/null differ
diff --git a/sound/vox/with.wav b/sound/vox/with.wav
deleted file mode 100644
index f1db548cd76..00000000000
Binary files a/sound/vox/with.wav and /dev/null differ
diff --git a/sound/vox/without.wav b/sound/vox/without.wav
deleted file mode 100644
index 7f3096df12b..00000000000
Binary files a/sound/vox/without.wav and /dev/null differ
diff --git a/sound/vox/woop.wav b/sound/vox/woop.wav
deleted file mode 100644
index 62fa99cb3b7..00000000000
Binary files a/sound/vox/woop.wav and /dev/null differ
diff --git a/sound/vox/xeno.wav b/sound/vox/xeno.wav
deleted file mode 100644
index 6b77a20b7a6..00000000000
Binary files a/sound/vox/xeno.wav and /dev/null differ
diff --git a/sound/vox/yankee.wav b/sound/vox/yankee.wav
deleted file mode 100644
index 62bf15a40b3..00000000000
Binary files a/sound/vox/yankee.wav and /dev/null differ
diff --git a/sound/vox/yards.wav b/sound/vox/yards.wav
deleted file mode 100644
index 33c3c4c3e3f..00000000000
Binary files a/sound/vox/yards.wav and /dev/null differ
diff --git a/sound/vox/year.wav b/sound/vox/year.wav
deleted file mode 100644
index 12dca8e86bc..00000000000
Binary files a/sound/vox/year.wav and /dev/null differ
diff --git a/sound/vox/yellow.wav b/sound/vox/yellow.wav
deleted file mode 100644
index bed92f5f9f9..00000000000
Binary files a/sound/vox/yellow.wav and /dev/null differ
diff --git a/sound/vox/yes.wav b/sound/vox/yes.wav
deleted file mode 100644
index 799bb2b775e..00000000000
Binary files a/sound/vox/yes.wav and /dev/null differ
diff --git a/sound/vox/you.wav b/sound/vox/you.wav
deleted file mode 100644
index 7ba9be75a87..00000000000
Binary files a/sound/vox/you.wav and /dev/null differ
diff --git a/sound/vox/your.wav b/sound/vox/your.wav
deleted file mode 100644
index 9e29c2418b1..00000000000
Binary files a/sound/vox/your.wav and /dev/null differ
diff --git a/sound/vox/yourself.wav b/sound/vox/yourself.wav
deleted file mode 100644
index 582c3b7ed6b..00000000000
Binary files a/sound/vox/yourself.wav and /dev/null differ
diff --git a/sound/vox/zero.wav b/sound/vox/zero.wav
deleted file mode 100644
index 9b6c39722d1..00000000000
Binary files a/sound/vox/zero.wav and /dev/null differ
diff --git a/sound/vox/zone.wav b/sound/vox/zone.wav
deleted file mode 100644
index 68f9b8952cb..00000000000
Binary files a/sound/vox/zone.wav and /dev/null differ
diff --git a/sound/vox/zulu.wav b/sound/vox/zulu.wav
deleted file mode 100644
index 32d66052181..00000000000
Binary files a/sound/vox/zulu.wav and /dev/null differ