diff --git a/baystation12.dme b/baystation12.dme
index 7d61c875d2..361118cb4b 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 b0a9f87b23..18899745c9 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 2d89b336f8..b3ef9398ba 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 0fad61af82..52d996827b 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 d29bb84bc9..a48f759de1 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 c6078c10ac..6522aae611 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 7d6628b573..2fc7d0c8ee 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 771b43caa5..4ddfbffb48 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 fd774975d0..8737b296d3 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 0c0928dbc1..7d7651a362 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 bed29b858e..3a0118e9b8 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 50b17ddc33..fe569e2364 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 9cd7b58894..c85599cf6a 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 32ed0d1f3c..3b1700df78 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 46f7538afd..3901591720 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 b8975feaeb..421ad9a9bb 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 98af795ca8..5ad0ecae56 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 ac3b09ff6a..15e243559d 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 f25f835c69..8d60a48a9b 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 0b8fd7a69c..6b7ef0242e 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 a1de93987f..02d11f2251 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 74374297cc..130770aa9d 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 6b86d88fe0..8ef724fcde 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 19d146b82c..6355fd26fd 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 1e7c459756..8cace9a223 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 9945c2a00a..d2825c82f7 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 843cb78246..d24c9350fa 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 f92f5b759c..19cb00b999 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 0000000000..1eeb6dff8d
--- /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 5353b6871d..061548848c 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 64d72508d3..782a5a1745 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 19bbcf36f4..b3b0404054 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 115806277c..31a1681eac 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 705351acfc..9c00ee3896 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 b3cdba6030..39c19c76fe 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 38ef31dbf1..6e078326fe 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 3f3fbbd877..615b5f085f 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 53824fc9d6..83b0616aea 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 09c0e0e4cb..91253e2ca6 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 d8fd4b7000..575996a84f 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 e10c35efa7..2a9850171e 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 54ed39584c..0080f217f9 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 fe21c7a6ae..0a12334701 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 08bd3cd97e..ce68106358 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 3ab8632e8e..2c0b3bbdb6 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 758883dfff..792ef9296f 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 f3f1b4e1c8..62a75fad24 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 33901641bd..73a6d59c15 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 dfe1a9db29..18adecccc3 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 ed66f1ae49..e0ebe671f1 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 931cb0556b..33748f056e 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 45acf2c713..42f923aa29 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 f044d849ec..9071e3193b 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 64eda75b91..05f7635bcf 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 db3dd8be7c..9d4a5364ae 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 fe2326c21b..5fff5a7f31 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 cccf903872..0edd242761 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 cc4a5b1354..0d8986fcfd 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 c141a757e7..d1f77e7ad8 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 5444845032..94772ba195 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 0261997a9d..719c29fd9a 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 34a5d1e138..c931e9fc29 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 ab16f56915..c14d065cd9 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 5b0bccbaaa..b0116585ab 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 f5b680ee3e..361cfaa66c 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 e5fe332b92..0800ac3b89 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 23d627a5f1..82d2dee3bd 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 2f1430c904..b13c0978bc 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 26c40917a5..0000000000
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 c739941be3..0000000000
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 2b0b6878bf..0000000000
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 31a47dca60..0000000000
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 7eeb1eb9bc..0000000000
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 c6981d2902..0000000000
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 e86b18a04b..0000000000
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 be097b6caa..0000000000
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 59160849e2..0000000000
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 25fd098883..0000000000
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 14946cccf8..0000000000
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 232d9c3bf7..0000000000
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 7eecdf9140..0000000000
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 11be7dc475..0000000000
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 1591e89700..0000000000
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 32a45cbf22..0000000000
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 154e0389e8..0000000000
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 5920e6dd38..0000000000
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 86e268ca1f..0000000000
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 d85d67eabf..0000000000
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 987cd05b2a..0000000000
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 f63abdff55..0000000000
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 594932971e..0000000000
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 296ca773d6..0000000000
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 1a749b7c74..0000000000
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 5890955995..0000000000
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 20bbe5bfa7..0000000000
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 5bfc4dee60..0000000000
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 d64239ec88..0000000000
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 c273e5231d..0000000000
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 03ec617c29..0000000000
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 148605c2ca..0000000000
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 5755607e36..0000000000
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 6e155c09d9..0000000000
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 9d185ead91..0000000000
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 1db9a4fa09..0000000000
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 fa82d58cb9..0000000000
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 73bed24661..0000000000
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 874ef83963..0000000000
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 5c5e1995df..0000000000
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 bacdb31e2a..0000000000
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 f2ac3dd05a..0000000000
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 225abed39e..0000000000
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 55e4a67c66..0000000000
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 2ca51709d4..0000000000
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 63fff9e39e..0000000000
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 cdc24ec627..0000000000
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 2b6698aa66..0000000000
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 0b1b9396e5..0000000000
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 6a00304807..0000000000
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 e9078e6d9e..0000000000
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 3dcff1208b..0000000000
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 67672abf35..0000000000
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 8e676b0827..0000000000
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 e1a3bee4d8..0000000000
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 751c7b7b1a..0000000000
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 b2f4e56e40..0000000000
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 60e149eaee..0000000000
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 b59100564f..0000000000
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 ccbf3f851e..0000000000
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 deca97dc6b..0000000000
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 c7cc651ced..0000000000
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 a4c6c829e5..0000000000
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 769dfc38c2..0000000000
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 38074711b4..0000000000
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 959f08ebf5..0000000000
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 a7c2cdd5b2..0000000000
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 d0641c009b..0000000000
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 6ee3aca426..0000000000
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 fef86450b1..0000000000
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 6436f724f0..0000000000
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 ff392b491a..0000000000
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 52dd0881ae..0000000000
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 fa8d79fbb4..0000000000
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 5e086f4bce..0000000000
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 49cf90c523..0000000000
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 83a6e7c3eb..0000000000
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 2330a74b28..0000000000
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 560af14f2c..0000000000
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 89a6178334..0000000000
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 f4028d18a8..0000000000
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 124720295b..0000000000
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 cbb0cb461d..0000000000
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 6af0f12c80..0000000000
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 0728ed3e1e..0000000000
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 bc583238ca..0000000000
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 82ddd2cdb3..0000000000
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 b5155d37ff..0000000000
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 9fcfc5e745..0000000000
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 d761092651..0000000000
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 aa06767b94..0000000000
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 f0c2897c8d..0000000000
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 b426a8f6a9..0000000000
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 998505184b..0000000000
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 61222de532..0000000000
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 c7bfaad64f..0000000000
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 381db754ca..0000000000
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 ac59448a46..0000000000
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 35bdcb5224..0000000000
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 efccef07e7..0000000000
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 1c9c58be57..0000000000
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 38dbf9ffa7..0000000000
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 353ce195f3..0000000000
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 709f9a6555..0000000000
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 15aa5e4cc9..0000000000
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 eeb32be385..0000000000
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 a47ddb233a..0000000000
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 a23cfc5e2b..0000000000
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 a35e0699b8..0000000000
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 6a46d7fb06..0000000000
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 63bdfbe883..0000000000
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 ec876b297f..0000000000
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 a26ff0a317..0000000000
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 ba0c7e852b..0000000000
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 35165357e6..0000000000
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 d2c01ccd57..0000000000
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 89808c20d7..0000000000
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 b32c83668e..0000000000
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 563cb4e15a..0000000000
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 d597267cdd..0000000000
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 e7bf57bbd8..0000000000
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 d4474b9d9d..0000000000
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 1e4b37929f..0000000000
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 da6874b2e7..0000000000
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 cde927b747..0000000000
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 defdcda2d1..0000000000
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 4f48a08cb1..0000000000
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 c393dffbf1..0000000000
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 eb1a62ae38..0000000000
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 f977a49505..0000000000
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 2ac0ff589a..0000000000
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 83fce3dcf0..0000000000
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 e9f2ff5dbb..0000000000
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 40ff8b8db9..0000000000
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 92e3fe81da..0000000000
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 f587f266dd..0000000000
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 a758f1bbd7..0000000000
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 9794de0a23..0000000000
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 4f82a18b2a..0000000000
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 9da8de137f..0000000000
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 7e77561c14..0000000000
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 86052809f4..0000000000
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 6b1167d41d..0000000000
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 2f9aacd350..0000000000
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 a85a076b18..0000000000
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 56cf437c66..0000000000
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 20308df2df..0000000000
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 7d5f4e06f4..0000000000
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 101429a614..0000000000
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 a696e97976..0000000000
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 d5ecd2f67b..0000000000
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 0c52e31b72..0000000000
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 b47622cfc7..0000000000
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 f67956ddc7..0000000000
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 08990c47d8..0000000000
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 aa84ed27a6..0000000000
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 aeff92d205..0000000000
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 bfe38f6098..0000000000
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 670eacaabe..0000000000
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 7fae33e244..0000000000
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 d82a9ab107..0000000000
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 f9cdc53805..0000000000
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 14bce15cea..0000000000
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 629dee38e7..0000000000
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 b677e031da..0000000000
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 4693b31d42..0000000000
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 d0e937fd80..0000000000
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 6f991d0fcc..0000000000
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 296ce53d41..0000000000
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 3087ecbd9c..0000000000
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 71303ffe0a..0000000000
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 a0128cf698..0000000000
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 47fa437ce8..0000000000
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 4fef5c2eb7..0000000000
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 1aff299ad2..0000000000
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 a1f54835db..0000000000
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 48c4fe0176..0000000000
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 886c76ef6b..0000000000
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 a4d4144849..0000000000
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 5473a25411..0000000000
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 d4e51affb3..0000000000
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 62bb34ef41..0000000000
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 b66ed4db10..0000000000
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 11a43c40a7..0000000000
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 a47cbb5977..0000000000
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 f6ab907c5b..0000000000
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 f3f53ea821..0000000000
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 a027e1a7e5..0000000000
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 6ab7d940cc..0000000000
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 05b2bebf60..0000000000
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 dbf3c954f5..0000000000
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 2766662cd2..0000000000
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 73426aea01..0000000000
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 85680b3212..0000000000
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 a562e53a9a..0000000000
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 3f60c2181b..0000000000
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 fbf75a59d3..0000000000
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 847e64562c..0000000000
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 a2e442ec2f..0000000000
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 37a933ca62..0000000000
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 f1c3c233d6..0000000000
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 1fc83d9e7e..0000000000
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 eed3164bfc..0000000000
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 0fc3adfb50..0000000000
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 0f06b33886..0000000000
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 812445e3dd..0000000000
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 96411aabdc..0000000000
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 f717b05375..0000000000
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 dd662fc5a6..0000000000
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 fcca7a432e..0000000000
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 821885a739..0000000000
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 5adc5dbd62..0000000000
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 6cc1ab42f8..0000000000
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 63ca382128..0000000000
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 3886e043bf..0000000000
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 80f7b11103..0000000000
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 d4c807af6e..0000000000
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 f74d8fbfaa..0000000000
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 ce0a45d9c6..0000000000
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 18a7fdf7af..0000000000
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 aa23cbe9cf..0000000000
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 7b9f5bcc69..0000000000
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 b086549164..0000000000
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 327b3f5b59..0000000000
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 84f793dece..0000000000
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 f4d742505e..0000000000
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 3745c71418..0000000000
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 642e201abc..0000000000
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 59da4031fc..0000000000
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 a614cbcdc5..0000000000
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 aa0846855b..0000000000
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 5c9071d292..0000000000
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 6bb8fb3e12..0000000000
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 ece21be942..0000000000
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 26a9ae229b..0000000000
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 32da861548..0000000000
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 46541abe65..0000000000
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 46d600144d..0000000000
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 1b2256b006..0000000000
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 37f5ce8010..0000000000
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 9dd512d512..0000000000
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 665989a94f..0000000000
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 308b1b6890..0000000000
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 bf15c9c2b4..0000000000
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 2599ca560c..0000000000
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 51c7195091..0000000000
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 b2b47c9d2e..0000000000
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 17e7fa8fbf..0000000000
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 661bf0506f..0000000000
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 8640b88fb6..0000000000
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 0eb5558231..0000000000
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 7b2d80ed6d..0000000000
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 e715dc641c..0000000000
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 95b3e9fc4f..0000000000
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 86e3ac1cbb..0000000000
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 362ab46d60..0000000000
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 b9c7c5f581..0000000000
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 e937054af9..0000000000
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 625a110f07..0000000000
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 c5f0794a1f..0000000000
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 b311552c76..0000000000
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 ed8e9d88c6..0000000000
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 e3158318f4..0000000000
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 ca0b345225..0000000000
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 22e5449443..0000000000
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 fbb8197cb0..0000000000
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 7e61fec55e..0000000000
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 5bef919ee9..0000000000
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 e6d74f47f7..0000000000
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 f7bb32b283..0000000000
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 832bf16040..0000000000
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 ef4b2caf39..0000000000
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 d70619a3f5..0000000000
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 afb46f59ad..0000000000
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 4dc88f26c6..0000000000
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 7ced07279b..0000000000
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 dde78cf2a1..0000000000
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 d428bd779e..0000000000
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 63a2470427..0000000000
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 8d3a8a0b4a..0000000000
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 9653b7bf73..0000000000
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 b98a48fd29..0000000000
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 8c19f9d7a4..0000000000
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 6087e6ba7d..0000000000
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 19fab3c842..0000000000
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 f2716edf0e..0000000000
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 e15bb9a6d5..0000000000
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 fc8e89ce7b..0000000000
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 991f9af5e0..0000000000
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 0728905c34..0000000000
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 6822cc5fc3..0000000000
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 03cb903c24..0000000000
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 3aecb74626..0000000000
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 06a54a3670..0000000000
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 c7814162b4..0000000000
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 a32958f0be..0000000000
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 fbf3b4e524..0000000000
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 0024f331d4..0000000000
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 0eecb1a7b7..0000000000
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 1e96daf6bb..0000000000
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 1cef742cf6..0000000000
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 88a78517ca..0000000000
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 ba42b393db..0000000000
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 9ae66ac5f6..0000000000
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 e30904cafb..0000000000
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 b6cf53a547..0000000000
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 8b2518fe57..0000000000
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 a238ac9d96..0000000000
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 7617aa65d7..0000000000
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 458d13af62..0000000000
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 66fd2224ce..0000000000
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 0ec0fc786d..0000000000
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 ce45698813..0000000000
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 2621d07fbd..0000000000
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 928033759d..0000000000
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 1f01010dd0..0000000000
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 a863fdc77a..0000000000
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 01b8749a0c..0000000000
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 f749f2782a..0000000000
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 fd739b4593..0000000000
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 69be049955..0000000000
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 d0cf4d0581..0000000000
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 9f77a868e7..0000000000
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 f5404ef81b..0000000000
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 6b605a8d2d..0000000000
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 19fb575525..0000000000
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 149b0ec027..0000000000
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 a62efba6b9..0000000000
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 8d197f2502..0000000000
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 e6f9dfe299..0000000000
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 b2cd0fb64d..0000000000
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 a654c1d424..0000000000
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 63fdaf93f0..0000000000
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 68deeeae9c..0000000000
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 4657274912..0000000000
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 ebca04c9d6..0000000000
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 51d999b41f..0000000000
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 64525a4f23..0000000000
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 c7825984aa..0000000000
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 c983ae71a8..0000000000
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 f1dbc8062d..0000000000
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 a238738703..0000000000
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 ece7f0c4c5..0000000000
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 594523da0a..0000000000
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 8416b25dae..0000000000
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 fcb1d9843c..0000000000
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 b0b769db72..0000000000
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 ca063bddad..0000000000
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 7869b97cec..0000000000
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 b58a5878a9..0000000000
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 a008bdefed..0000000000
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 9b04a790ea..0000000000
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 8387dc3b6c..0000000000
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 cc0b3e4c97..0000000000
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 6409eb0760..0000000000
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 2af1c21367..0000000000
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 ee184ce4fc..0000000000
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 2e9fb914ed..0000000000
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 27507cfb09..0000000000
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 e1060e9661..0000000000
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 7d1dbaeba4..0000000000
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 ae5a6af0d6..0000000000
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 1bc2172297..0000000000
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 3e6e965bec..0000000000
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 3f84ee7241..0000000000
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 8bd140649f..0000000000
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 b85745edf9..0000000000
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 c6da48310b..0000000000
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 74e2e02d41..0000000000
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 ced1b6617c..0000000000
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 f0656302d1..0000000000
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 4867fdc7bc..0000000000
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 626cd17774..0000000000
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 212efe5f9a..0000000000
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 0619087d59..0000000000
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 cfec10a75e..0000000000
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 14ea571aa6..0000000000
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 9141789671..0000000000
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 7cf5427dfb..0000000000
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 9017915aef..0000000000
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 66011aed6d..0000000000
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 2b97a1fd46..0000000000
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 57f2b3f14d..0000000000
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 be98260bb9..0000000000
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 b218069420..0000000000
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 37c9d75e0e..0000000000
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 70f99029cd..0000000000
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 a5199b71de..0000000000
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 c5a2548340..0000000000
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 78dc879d7c..0000000000
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 32db2392d5..0000000000
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 4aca4d7070..0000000000
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 62993ea5e4..0000000000
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 8068c74f73..0000000000
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 d932cb3ded..0000000000
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 132667e7ea..0000000000
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 6a596197d7..0000000000
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 bdb30dded8..0000000000
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 28eb17ce99..0000000000
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 ce1f22fd23..0000000000
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 9e775863ae..0000000000
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 91a8d95d91..0000000000
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 015d10eaa8..0000000000
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 665a3215c9..0000000000
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 53abe7db8b..0000000000
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 8fc84c60ac..0000000000
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 72ca2c179f..0000000000
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 4dc346e3e0..0000000000
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 26e4ca508b..0000000000
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 2f093e9924..0000000000
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 3256e3ee99..0000000000
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 c7a3b8f1e0..0000000000
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 138ef0f2eb..0000000000
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 ed107abdd1..0000000000
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 ec5ba2f438..0000000000
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 3470d8eb07..0000000000
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 ab2ef1914f..0000000000
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 fb799ae067..0000000000
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 cc60270a56..0000000000
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 9d76be850b..0000000000
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 be17714e62..0000000000
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 db91cb1229..0000000000
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 3e5ee45d7b..0000000000
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 6323a992cb..0000000000
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 cf6de8dd52..0000000000
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 51f08488dc..0000000000
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 82c6c493d7..0000000000
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 1ee00b87a1..0000000000
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 5551f24b44..0000000000
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 84b3b4a180..0000000000
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 13802ea302..0000000000
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 fdfdd10faa..0000000000
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 5b2ec24bd4..0000000000
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 22bd766019..0000000000
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 c8fb909be0..0000000000
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 777e546648..0000000000
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 bef9fb0927..0000000000
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 ba56d6d955..0000000000
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 0c393ee9d1..0000000000
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 0dc4518edc..0000000000
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 be2fe5418e..0000000000
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 685c387894..0000000000
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 19e8f0478b..0000000000
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 c5bbf850b4..0000000000
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 d7385867da..0000000000
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 7b67635b92..0000000000
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 1f3f90b0f9..0000000000
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 0c920c843d..0000000000
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 57d7e6a8e0..0000000000
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 426014be23..0000000000
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 42590922e4..0000000000
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 da12c55fea..0000000000
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 76d30382eb..0000000000
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 f2baec69b1..0000000000
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 65d52fbcdc..0000000000
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 b24e8951b2..0000000000
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 e26c6a301e..0000000000
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 45187b819b..0000000000
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 db09e27539..0000000000
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 cb1f2d7236..0000000000
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 66afd0983d..0000000000
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 bb375266bb..0000000000
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 023072d989..0000000000
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 dbed0caa0a..0000000000
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 af29ac286c..0000000000
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 a631ea1db0..0000000000
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 2318ccf631..0000000000
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 17fe6225ff..0000000000
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 8007a48c0d..0000000000
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 16435fdf51..0000000000
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 9b89d52bb0..0000000000
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 d4124f579a..0000000000
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 3f6957d2e0..0000000000
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 eca99c196a..0000000000
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 9526b8a4e3..0000000000
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 1b45ce6afe..0000000000
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 fed84eea85..0000000000
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 60978963e2..0000000000
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 5071a1d64a..0000000000
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 0ab01e0a6a..0000000000
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 9b9014c51d..0000000000
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 d4451bdf3c..0000000000
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 5661ceb9c9..0000000000
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 c32a9e42e0..0000000000
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 6f68340502..0000000000
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 4f4091a4e5..0000000000
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 0e52a6ec56..0000000000
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 5d479cab75..0000000000
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 daf9f28be1..0000000000
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 aa6bb638e3..0000000000
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 6f2db2ad9d..0000000000
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 19610c7f79..0000000000
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 4d1d3cf6a4..0000000000
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 75101b7de4..0000000000
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 c84ce20178..0000000000
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 c4ba34efff..0000000000
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 6f6183e1f7..0000000000
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 4601140095..0000000000
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 f23495127e..0000000000
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 4c0725b938..0000000000
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 3a5ba00410..0000000000
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 71739d1498..0000000000
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 f08f73a5f4..0000000000
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 ab84571c82..0000000000
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 42fe8b7822..0000000000
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 d95753222b..0000000000
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 f53240310c..0000000000
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 18954a4f79..0000000000
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 d25510d3c0..0000000000
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 cb19be3a88..0000000000
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 b5eb4088ac..0000000000
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 d099c95843..0000000000
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 ad4fcc8f9d..0000000000
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 936562ed4f..0000000000
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 4b33c8e9b7..0000000000
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 0b02d732a9..0000000000
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 f0a17b395a..0000000000
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 c9afd86f9c..0000000000
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 3cbf513481..0000000000
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 f5ffcc7a6b..0000000000
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 078727a081..0000000000
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 c880250830..0000000000
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 6b1aca650b..0000000000
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 70644f5220..0000000000
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 3ff83c48c9..0000000000
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 37b6f4fe19..0000000000
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 9608b0d749..0000000000
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 bd004147bf..0000000000
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 d0e47d4e10..0000000000
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 e9b51dada7..0000000000
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 d0398a0f8c..0000000000
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 fd0f353f6b..0000000000
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 5ffe39101e..0000000000
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 1c972f092c..0000000000
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 f093cd31a1..0000000000
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 f7c9b461fc..0000000000
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 f9e8c92873..0000000000
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 3a07ea3be8..0000000000
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 1c2ec53386..0000000000
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 0e25880076..0000000000
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 962f2f9697..0000000000
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 1c392cfa3e..0000000000
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 d7a34d4351..0000000000
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 b8f51ea151..0000000000
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 ef7db90721..0000000000
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 b1f9df6edd..0000000000
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 75cefae187..0000000000
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 097504d605..0000000000
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 78053bdf90..0000000000
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 856529d6a4..0000000000
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 5189cf2d58..0000000000
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 0747e8965a..0000000000
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 6f6f54b973..0000000000
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 6712dc18a3..0000000000
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 ff04147f15..0000000000
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 5247acabd0..0000000000
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 ced1a9850c..0000000000
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 302241aeb0..0000000000
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 1692a9c7dd..0000000000
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 f158042a9d..0000000000
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 407d2cdbe8..0000000000
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 ec42293ebb..0000000000
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 d9fbcc2558..0000000000
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 e6d7d8092d..0000000000
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 14f432fd5c..0000000000
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 7d3236f491..0000000000
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 dc30e4711c..0000000000
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 899c7f029a..0000000000
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 0e48489db5..0000000000
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 68f5ea47e4..0000000000
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 1816546702..0000000000
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 8b59156651..0000000000
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 2ab47d6085..0000000000
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 23b56e9357..0000000000
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 591233e624..0000000000
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 35be617775..0000000000
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 3385240fd9..0000000000
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 91ccb15af6..0000000000
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 bed5d702e4..0000000000
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 40c3f1e4f6..0000000000
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 d067f69827..0000000000
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 b4efa86991..0000000000
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 d56679dda1..0000000000
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 8245a2abf4..0000000000
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 c597d1dfe2..0000000000
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 98ed5dd0b9..0000000000
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 140e1dd6a2..0000000000
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 5679acfce8..0000000000
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 fd8d85f84d..0000000000
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 e8e9a5fb4a..0000000000
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 3d130ce8fe..0000000000
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 a292d2d33b..0000000000
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 518f2905f4..0000000000
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 7580146005..0000000000
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 87db6c164b..0000000000
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 245c44d682..0000000000
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 c29d7acf55..0000000000
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 d7ba93484d..0000000000
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 3e95e9efc4..0000000000
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 09f58088c9..0000000000
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 11ef7b3aa0..0000000000
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 6d4ec3e138..0000000000
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 862aa8d97d..0000000000
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 327d81c9d0..0000000000
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 f1db548cd7..0000000000
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 7f3096df12..0000000000
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 62fa99cb3b..0000000000
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 6b77a20b7a..0000000000
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 62bf15a40b..0000000000
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 33c3c4c3e3..0000000000
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 12dca8e86b..0000000000
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 bed92f5f9f..0000000000
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 799bb2b775..0000000000
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 7ba9be75a8..0000000000
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 9e29c2418b..0000000000
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 582c3b7ed6..0000000000
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 9b6c39722d..0000000000
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 68f9b8952c..0000000000
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 32d6605218..0000000000
Binary files a/sound/vox/zulu.wav and /dev/null differ