diff --git a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm
new file mode 100644
index 00000000000..3feac9757b9
--- /dev/null
+++ b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm
@@ -0,0 +1,11670 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"an" = (
+/mob/living/simple_animal/hostile/malf_drone,
+/turf/space,
+/area/space)
+"ao" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!";
+ name = "LETHAL TURRETS";
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/obj/machinery/porta_turret/ai_turret{
+ check_synth = 1;
+ lethal = 1;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"ax" = (
+/obj/structure/lattice,
+/obj/structure/grille/broken,
+/turf/space,
+/area/space/nearstation)
+"aN" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/sign/vacuum{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/mob/living/simple_animal/hostile/malf_drone,
+/obj/effect/spawner/random_spawners/cobweb_left_frequent,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"bb" = (
+/obj/machinery/teleport/hub,
+/obj/effect/turf_decal/delivery,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"bE" = (
+/obj/machinery/light,
+/turf/space,
+/area/ruin/space/telecomms)
+"bI" = (
+/obj/structure/window/plasmareinforced{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"bJ" = (
+/obj/effect/abstract/loot_trap,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"bO" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 1
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"bP" = (
+/obj/effect/spawner/lootdrop/telecomms_core_table,
+/obj/machinery/ai_slipper,
+/obj/structure/table/glass/reinforced/plastitanium,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"bR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"ca" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"cj" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"cz" = (
+/obj/machinery/floodlight,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"cH" = (
+/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"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"cJ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"dn" = (
+/obj/machinery/computer/nonfunctional{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"du" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"dv" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 8;
+ on = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"dB" = (
+/obj/machinery/power/smes{
+ charge = 2.5e+006;
+ input_attempt = 1;
+ input_level = 200000;
+ inputting = 1
+ },
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"dD" = (
+/obj/structure/closet/crate,
+/obj/item/multitool,
+/obj/machinery/camera{
+ c_tag = "Telecomms Entrance South";
+ dir = 1;
+ network = list("Telecomms")
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"dR" = (
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/directional/east{
+ malfhack = 1;
+ emp_proof = 1;
+ hacked_by_ruin_AI = 1
+ },
+/obj/structure/environmental_storytelling_holopad/control_room,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"eb" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/machinery/power/apc/directional/north{
+ malfhack = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"ei" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"es" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"eE" = (
+/obj/machinery/mecha_part_fabricator,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"eH" = (
+/obj/structure/sign/securearea,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/computer)
+"eJ" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!";
+ name = "LETHAL TURRETS";
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"eR" = (
+/obj/structure/filingcabinet,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"fa" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"fc" = (
+/obj/machinery/constructable_frame/machine_frame,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"fq" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"fs" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/space,
+/area/space/nearstation)
+"fv" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/unary/tank/air{
+ dir = 8
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"gg" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4;
+ initialize_directions = 11;
+ level = 1
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"gi" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"gm" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"gr" = (
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"gv" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/computer)
+"gG" = (
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/shieldwallgen/telecomms,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"gJ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms Satellite";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"gR" = (
+/obj/structure/table,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ name = "station intercom (General)";
+ pixel_x = 29;
+ pixel_y = 0
+ },
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"hq" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/turf/space,
+/area/space/nearstation)
+"hU" = (
+/obj/machinery/computer/teleporter,
+/obj/effect/turf_decal/delivery,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"ia" = (
+/obj/effect/spawner/random_spawners/telecomms_emp_loot,
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"ik" = (
+/turf/simulated/wall/r_wall,
+/area/space/nearstation)
+"il" = (
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"iy" = (
+/obj/machinery/firealarm/directional/east,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"iD" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/space/nearstation)
+"iE" = (
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"iR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/computer)
+"jo" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"kl" = (
+/obj/machinery/computer/nonfunctional{
+ dir = 1
+ },
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"kr" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/ruin/space/telecomms/powercontrol)
+"ky" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms Power Control";
+ req_access_txt = "61"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/tele)
+"kA" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 9;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/obj/effect/abstract/cheese_trap,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"kT" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"kU" = (
+/obj/structure/closet/malf/suits,
+/obj/effect/spawner/random_spawners/cobweb_left_frequent,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"kV" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"li" = (
+/obj/machinery/power/solar,
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/space/nearstation)
+"lo" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/lattice,
+/obj/machinery/light,
+/turf/space,
+/area/ruin/space/telecomms)
+"lp" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"lr" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/random_spawners/oil_often,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"lB" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"lH" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 5
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"lW" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"mb" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/glass{
+ amount = 50
+ },
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil/random,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"mc" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 12;
+ faction = "malf_drone";
+ initial_eprojectile = /obj/item/projectile/beam/laser/ai_turret/heavylaser;
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"mh" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"mD" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/bluespace_tap/organic,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"mH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"mN" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"mO" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/grille,
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"mZ" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Core Access";
+ locked = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/chamber)
+"nh" = (
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/obj/machinery/shieldwallgen/telecomms,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"np" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"nB" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"nD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"nI" = (
+/obj/machinery/computer/security{
+ dir = 4;
+ network = list("SS13","Research Outpost","Mining Outpost")
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"nL" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"nQ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/light,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"nS" = (
+/obj/structure/table,
+/obj/machinery/status_display{
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/obj/effect/spawner/lootdrop/bluespace_tap/cultural,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"ob" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/computer)
+"oe" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"ou" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"oz" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 1;
+ external_pressure_bound = 101.325;
+ on = 1;
+ pressure_checks = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"oB" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5;
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"oE" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"oG" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/effect/spawner/window/reinforced/grilled,
+/obj/machinery/door/firedoor/heavy,
+/turf/simulated/floor/plating,
+/area/ruin/space/telecomms/tele)
+"oW" = (
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/window/reinforced/grilled,
+/obj/machinery/door/firedoor/heavy,
+/turf/simulated/floor/plating,
+/area/ruin/space/telecomms/tele)
+"oY" = (
+/obj/machinery/power/solar,
+/obj/structure/cable{
+ icon_state = "0-2";
+ pixel_y = 1;
+ d2 = 2
+ },
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/space/nearstation)
+"pa" = (
+/obj/machinery/computer/borgupload,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"ph" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/environmental_storytelling_holopad/first_turret_room,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4;
+ initialize_directions = 11;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"pE" = (
+/obj/effect/spawner/random_spawners/cobweb_left_frequent,
+/obj/effect/spawner/random_spawners/cobweb_right_frequent,
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"pS" = (
+/obj/structure/lattice,
+/obj/structure/grille/broken,
+/mob/living/simple_animal/hostile/malf_drone,
+/turf/space,
+/area/space/nearstation)
+"pU" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"pV" = (
+/obj/item/paper/monitorkey,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"qe" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"qn" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 9;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"qo" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 4;
+ layer = 2.4;
+ on = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"qD" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/powercontrol)
+"qE" = (
+/obj/structure/environmental_storytelling_holopad/junk_room,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"qF" = (
+/obj/item/storage/toolbox/mechanical,
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 1;
+ external_pressure_bound = 101.325;
+ on = 1;
+ pressure_checks = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"qM" = (
+/obj/structure/table,
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"qO" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/environmental_storytelling_holopad/teleporter_room,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"qP" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"rd" = (
+/obj/item/pen/gray,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"rD" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"rL" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"rT" = (
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"sn" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"sq" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ on = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"sv" = (
+/obj/effect/mob_spawn/human/corpse/scientist,
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"sH" = (
+/obj/structure/sign/nosmoking_2{
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"sM" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 4;
+ layer = 2.4;
+ on = 1
+ },
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/structure/table,
+/obj/machinery/autolathe/trapped,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"sO" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/visible/universal,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"sT" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"tm" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"to" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 12;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/obj/effect/abstract/cheese_trap,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"tx" = (
+/obj/item/radio/intercom{
+ name = "station intercom (General)";
+ pixel_x = 29;
+ pixel_y = 0;
+ broadcasting = 1
+ },
+/obj/machinery/bluespace_beacon,
+/obj/structure/window/plasmareinforced{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"tz" = (
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/directional/north{
+ malfhack = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"tD" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 1;
+ external_pressure_bound = 140;
+ on = 1;
+ pressure_checks = 0
+ },
+/obj/structure/table,
+/obj/item/folder/yellow,
+/obj/item/folder/yellow{
+ pixel_x = 5
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/item/salvage/ruin/nanotrasen{
+ pixel_x = -5
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"tF" = (
+/obj/item/radio/intercom{
+ name = "station intercom (General)";
+ pixel_x = 29;
+ pixel_y = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"tW" = (
+/obj/machinery/r_n_d/server/upgraded,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"tY" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 9
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"uj" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"ul" = (
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"um" = (
+/obj/structure/dispenser,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"ux" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/computer)
+"uF" = (
+/obj/machinery/economy/vending/cola,
+/obj/effect/spawner/random_spawners/cobweb_right_frequent,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"uM" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/foyer)
+"uT" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/ruin/space/telecomms/powercontrol)
+"vd" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"ve" = (
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"vp" = (
+/obj/machinery/firealarm/directional/south,
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"vu" = (
+/obj/structure/window/plasmareinforced{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"vJ" = (
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"vK" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"vU" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"vZ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4;
+ initialize_directions = 11;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"wd" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"wh" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"wA" = (
+/obj/machinery/power/smes{
+ charge = 2.5e+006;
+ input_attempt = 1;
+ input_level = 200000;
+ inputting = 1
+ },
+/obj/structure/cable,
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"wH" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 4;
+ layer = 2.4;
+ on = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"wW" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/computer/message_monitor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"wX" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms)
+"wY" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/structure/sign/electricshock{
+ pixel_x = -32
+ },
+/obj/item/salvage/ruin/nanotrasen,
+/obj/item/stamp,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"xa" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"xj" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1;
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"xv" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"xF" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"xG" = (
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"xL" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms Lounge";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/computer)
+"yh" = (
+/obj/effect/spawner/window/reinforced/grilled,
+/turf/simulated/floor/plating,
+/area/ruin/space/telecomms)
+"yl" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Telecoms Storage";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms)
+"yo" = (
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"yq" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"yr" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"yB" = (
+/obj/structure/bed,
+/obj/item/bedsheet/orange,
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"yC" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/recharge_station/upgraded,
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"yD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms East Wing";
+ req_access_txt = "61"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/foyer)
+"yG" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/space/nearstation)
+"yJ" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"yN" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/door/airlock/hatch/syndicate/command/trapped,
+/obj/item/radio/intercom{
+ pixel_y = 25;
+ broadcasting = 1
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"yU" = (
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"za" = (
+/obj/structure/closet/crate,
+/obj/item/clothing/glasses/night,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"zg" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Telecomms Power Control";
+ dir = 2;
+ network = list("Telecomms")
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"zk" = (
+/obj/structure/lattice,
+/obj/effect/abstract/cheese_trap,
+/turf/space,
+/area/space/nearstation)
+"zq" = (
+/obj/structure/barricade/sandbags,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"zG" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/chamber)
+"zM" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM";
+ pixel_y = 0
+ },
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/chamber)
+"zY" = (
+/obj/structure/bed,
+/obj/item/bedsheet/green,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Ac" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/structure/telecomms_trap_tank,
+/obj/effect/abstract/cheese_trap,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Ad" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp{
+ pixel_y = 10;
+ pixel_x = -7
+ },
+/obj/effect/spawner/random_spawners/cobweb_right_rare,
+/obj/item/salvage/ruin/nanotrasen{
+ pixel_x = 5
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Af" = (
+/obj/machinery/computer/nonfunctional{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Ai" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/bluespace/trapped,
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Aj" = (
+/obj/effect/spawner/random_barrier/obstruction,
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"Ay" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9;
+ level = 1
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"Az" = (
+/obj/structure/lattice,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/grille,
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"AJ" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 6;
+ level = 1
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"AX" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/effect/abstract/bot_trap,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"AY" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Bf" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!";
+ name = "LETHAL TURRETS";
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Bn" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Bq" = (
+/obj/effect/spawner/airlock/long/square/e_to_s/telecoms,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/powercontrol)
+"BQ" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 4;
+ layer = 2.4;
+ on = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"BT" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8;
+ initialize_directions = 11;
+ level = 1
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"BW" = (
+/obj/machinery/atmospherics/unary/tank/air{
+ dir = 8
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"BZ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Ct" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 8
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"CC" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/closet/emcloset,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"CD" = (
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"CI" = (
+/obj/structure/displaycase/dvoraks_treat,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"CM" = (
+/obj/item/gps/ruin{
+ pixel_x = 32;
+ gpstag = "STAY_AWAY";
+ name = "Exterior Status Terminal";
+ desc = "A status terminal for this satellite. All it shows is a bunch of errors, and a message to stay away."
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/ruin/space/telecomms/powercontrol)
+"CU" = (
+/turf/space,
+/area/space/nearstation)
+"Dd" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"De" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/computer/monitor{
+ name = "Telecoms Power Monitoring";
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "bot"
+ },
+/area/ruin/space/telecomms/tele)
+"Dr" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Dy" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/space,
+/area/space/nearstation)
+"DT" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"DV" = (
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Ed" = (
+/turf/space,
+/area/space)
+"EF" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"EK" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/obj/effect/abstract/cheese_trap,
+/turf/space,
+/area/space/nearstation)
+"EM" = (
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"EO" = (
+/obj/structure/window/reinforced,
+/turf/space,
+/area/space/nearstation)
+"EQ" = (
+/obj/structure/window/reinforced,
+/obj/structure/lattice,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"ES" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/machinery/power/tracker,
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Ff" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"Fg" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/obj/structure/barricade/sandbags,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"FA" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM";
+ pixel_y = 0
+ },
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/chamber)
+"FC" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms)
+"FG" = (
+/obj/machinery/shieldgen/telecomms,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"FN" = (
+/obj/machinery/computer/nonfunctional{
+ dir = 4
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"FP" = (
+/obj/item/cigbutt,
+/obj/machinery/light,
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Ga" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/grille,
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"Gd" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/space,
+/area/space/nearstation)
+"Gf" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"Go" = (
+/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/catwalk/airless,
+/area/space/nearstation)
+"Gt" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Gz" = (
+/obj/machinery/blackbox_recorder,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"GE" = (
+/obj/machinery/power/solar,
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/space/nearstation)
+"GH" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"GQ" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Hc" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 6;
+ level = 1
+ },
+/obj/machinery/power/apc/directional/north{
+ malfhack = 1;
+ emp_proof = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Ho" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/space,
+/area/space/nearstation)
+"Hr" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/computer)
+"Ht" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Hu" = (
+/obj/structure/window/reinforced,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Hw" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"HK" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"HP" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/table,
+/obj/machinery/turretid/lethal{
+ check_borgs = 1;
+ faction = "malf_drone";
+ check_synth = 1;
+ locked = 0
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/tele)
+"HR" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"HV" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"HW" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/closet,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Ig" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"IE" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"IL" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms West Wing";
+ req_access_txt = "61"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/foyer)
+"IU" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Jb" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/foyer)
+"Jm" = (
+/obj/machinery/computer/sm_monitor{
+ dir = 1
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Jo" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Jz" = (
+/obj/structure/closet/malf/suits,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"JC" = (
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"JG" = (
+/obj/structure/window/reinforced,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"JO" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"JQ" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"JR" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Kb" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Kc" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Kt" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Ky" = (
+/obj/machinery/computer/nonfunctional,
+/obj/effect/spawner/random_spawners/cobweb_left_rare,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"KH" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"KQ" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/closet/emcloset,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/reagent_containers/syringe,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Lh" = (
+/obj/machinery/tcomms/relay/dvorak,
+/obj/effect/abstract/loot_trap,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Ln" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Lp" = (
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Lq" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/mob/living/silicon/decoy/telecomms,
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"LK" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"LW" = (
+/obj/machinery/atmospherics/pipe/simple/visible,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Ma" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4;
+ initialize_directions = 11;
+ level = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"Ml" = (
+/obj/structure/cable,
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Mm" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"ME" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/chamber)
+"ML" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ level = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Nb" = (
+/obj/effect/spawner/random_spawners/oil_often,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"No" = (
+/obj/effect/turf_decal/loading_area,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Nr" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Nv" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Nz" = (
+/obj/structure/rack,
+/obj/item/circuitboard/sleeper/syndicate,
+/obj/effect/spawner/random_spawners/telecomms_teleprod_maybe,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"NY" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Od" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 8;
+ on = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Oi" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"On" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/space,
+/area/space/nearstation)
+"OS" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/box/white,
+/obj/structure/telecomms_doomsday_device,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Pe" = (
+/obj/machinery/economy/vending/wallmed/directional/south,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Pl" = (
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Px" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/girder/reinforced,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"PA" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"PL" = (
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"PQ" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/tele)
+"PU" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms Satellite";
+ req_access_txt = "61"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"PZ" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/space,
+/area/space/nearstation)
+"Qa" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!";
+ name = "LETHAL TURRETS";
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/obj/machinery/porta_turret/ai_turret{
+ check_synth = 1;
+ lethal = 1;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Qf" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Qg" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/bluespace_tap/cultural,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"Qr" = (
+/obj/machinery/economy/vending/snack/trapped,
+/obj/item/radio/intercom{
+ name = "station intercom (General)";
+ pixel_x = -28;
+ pixel_y = 0;
+ broadcasting = 1
+ },
+/obj/structure/environmental_storytelling_holopad/vendor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Qx" = (
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"QN" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"QP" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/abstract/cheese_trap,
+/turf/space,
+/area/space/nearstation)
+"QR" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/recharge_station/upgraded,
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"QY" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"QZ" = (
+/obj/machinery/power/solar,
+/obj/structure/cable,
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/space/nearstation)
+"Ra" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/space,
+/area/space/nearstation)
+"Rh" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"Ri" = (
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Rt" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 8;
+ on = 1
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Rv" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Rw" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"RB" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"RD" = (
+/obj/structure/table,
+/obj/item/storage/fancy/cigarettes,
+/obj/item/storage/firstaid/ert,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"RW" = (
+/obj/structure/table,
+/obj/item/stock_parts/micro_laser,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/capacitor,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/item/stock_parts/matter_bin,
+/obj/item/stock_parts/matter_bin,
+/obj/item/stock_parts/matter_bin,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"Sm" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Sn" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8;
+ initialize_directions = 11;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Sr" = (
+/obj/machinery/telepad,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Sv" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"SA" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/powercontrol)
+"SH" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"SO" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/space,
+/area/space/nearstation)
+"Ta" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"To" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/chamber)
+"Tw" = (
+/obj/machinery/computer/telescience{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"TL" = (
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"TU" = (
+/obj/machinery/atmospherics/pipe/manifold/visible{
+ dir = 1
+ },
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"TY" = (
+/obj/structure/lattice,
+/turf/space,
+/area/space)
+"Uw" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"UD" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ level = 1
+ },
+/obj/structure/telecomms_trap_tank,
+/obj/effect/abstract/cheese_trap,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"UE" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"UF" = (
+/obj/structure/sign/securearea,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/tele)
+"UH" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"Vb" = (
+/obj/structure/sign/nosmoking_2{
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Vm" = (
+/obj/machinery/light/small,
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Vn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/simulated/wall/r_wall,
+/area/space/nearstation)
+"Vp" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/space,
+/area/space)
+"VB" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"VO" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Wc" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"Wp" = (
+/obj/machinery/teleport/station,
+/obj/effect/turf_decal/delivery,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Wq" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"WC" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 12;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"WO" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"WR" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/machinery/power/apc/directional/north{
+ malfhack = 1;
+ emp_proof = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Xb" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1;
+ level = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Xf" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"XB" = (
+/obj/structure/environmental_storytelling_holopad/core_room,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"XJ" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/tele)
+"XP" = (
+/turf/template_noop,
+/area/template_noop)
+"Yr" = (
+/obj/structure/sign/electricshock,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/tele)
+"Yw" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"YA" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"YC" = (
+/obj/structure/grille,
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"YF" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/effect/abstract/bot_trap,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"YN" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"YO" = (
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"YQ" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/space,
+/area/space/nearstation)
+"YW" = (
+/obj/structure/cable{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc/directional/east{
+ malfhack = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Zb" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Zd" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen/blue{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Zj" = (
+/obj/structure/fans/tiny/invisible,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Core Access"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/chamber)
+"Zl" = (
+/obj/machinery/atmospherics/unary/portables_connector{
+ dir = 8
+ },
+/obj/machinery/atmospherics/portable/canister/air,
+/obj/effect/spawner/random_spawners/cobweb_right_frequent,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Zu" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/chamber)
+"ZB" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/obj/effect/spawner/random_spawners/oil_often,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"ZE" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"ZQ" = (
+/obj/machinery/power/solar_control/autostart{
+ name = "Telecoms Solar Control"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"ZV" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+
+(1,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(2,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(3,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(4,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(5,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(6,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(7,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(8,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(9,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(10,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(11,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(12,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(13,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+cJ
+QZ
+Ed
+Ed
+Ed
+oY
+cJ
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(14,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(15,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(16,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(17,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(18,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+yo
+yo
+yo
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(19,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(20,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+pS
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(21,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(22,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(23,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+yo
+yo
+yo
+oY
+Hw
+QZ
+Ed
+ax
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(24,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(25,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(26,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(27,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(28,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(29,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+du
+Oi
+Oi
+Kt
+Oi
+Oi
+sn
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(30,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+yo
+Ed
+Ed
+Ed
+CU
+Ig
+Ed
+Ed
+Ed
+Ed
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(31,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+YA
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+yU
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+pU
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(32,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+YA
+GH
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+yG
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+yG
+ik
+ik
+Sv
+pU
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(33,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+YA
+GH
+ik
+ik
+FC
+FC
+FC
+wX
+FC
+iD
+FC
+FC
+wX
+FC
+FC
+FC
+FC
+FC
+FC
+FC
+FC
+wX
+FC
+FC
+FC
+ik
+ik
+Sv
+lW
+Ga
+Ga
+mh
+Lp
+Lp
+ES
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(34,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ik
+FC
+yo
+Ff
+Ed
+Ed
+Ed
+zk
+Ed
+Ed
+Ed
+Ed
+FG
+Ed
+Ed
+Ed
+Ed
+zk
+Ed
+Ed
+Ed
+Ff
+yo
+FC
+ik
+SA
+SA
+SA
+Bq
+uT
+Lp
+Lp
+Ig
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(35,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+yo
+yo
+yo
+yo
+yo
+yo
+to
+yo
+yo
+yo
+yo
+WC
+yo
+yo
+yo
+yo
+kA
+yo
+yo
+yo
+yo
+yo
+TY
+FC
+SA
+aN
+HV
+HV
+kr
+Oi
+Oi
+oe
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(36,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+Ed
+yo
+an
+Ed
+Ed
+Ed
+zk
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+zk
+Ed
+Ed
+Ed
+an
+yo
+Ed
+FC
+SA
+jo
+Nb
+Qx
+CM
+Lp
+Lp
+Ig
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(37,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+Vp
+YQ
+Vp
+Ed
+Gd
+Gd
+EK
+Gd
+Gd
+Gd
+Gd
+QN
+Gd
+Gd
+Gd
+Gd
+EK
+Gd
+Gd
+CU
+Ed
+yo
+Ed
+wX
+SA
+jo
+Qx
+SA
+SA
+SA
+SA
+mO
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(38,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+Yw
+sq
+JQ
+oE
+JR
+uj
+UD
+oB
+BQ
+Zb
+QY
+ML
+ML
+AX
+uj
+uj
+Ac
+Ln
+ei
+Xf
+Ed
+yo
+Ed
+FC
+SA
+AJ
+tY
+mb
+wH
+Ml
+SA
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(39,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+Hc
+LW
+sO
+Ma
+Sm
+Wc
+QP
+Rw
+gg
+Ay
+PZ
+Wq
+PZ
+PZ
+PZ
+PZ
+QP
+fs
+YN
+Xf
+Ed
+yo
+Ed
+FC
+qD
+Bn
+lr
+Qx
+ZB
+dB
+SA
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(40,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+ou
+ca
+ca
+DT
+lB
+lo
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+EQ
+YN
+UH
+yo
+yo
+bE
+FC
+SA
+sT
+jo
+Qx
+PA
+KQ
+qD
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(41,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+ax
+Dy
+Dy
+Dy
+Dy
+xa
+ik
+wX
+TU
+lH
+Hu
+KH
+xF
+Xf
+Zu
+gi
+EM
+EM
+EM
+sH
+EM
+EM
+EM
+EM
+Zu
+EO
+YN
+Xf
+Ed
+yo
+FC
+FC
+SA
+zg
+lr
+Qx
+PA
+Ai
+SA
+xa
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+ax
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(42,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+xa
+ik
+FC
+BW
+fv
+HW
+tm
+xF
+Xf
+Zu
+ve
+bJ
+Lh
+bJ
+Sr
+cz
+il
+tW
+EM
+Zu
+EO
+yr
+Xf
+PQ
+oG
+PQ
+PQ
+SA
+Zl
+ZQ
+YW
+lp
+HP
+SA
+xa
+Dy
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+CU
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(43,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+yo
+Ed
+xa
+ik
+FC
+FC
+On
+PZ
+EO
+vK
+Xf
+Zu
+EM
+bJ
+bP
+bJ
+Tw
+eE
+il
+tW
+EM
+Zu
+uM
+IL
+uM
+uM
+yJ
+BZ
+PQ
+PQ
+PQ
+PQ
+PQ
+ky
+Yr
+PQ
+Sv
+pU
+Ed
+Ed
+yo
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(44,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+yo
+qP
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+mh
+yo
+xa
+ik
+ik
+ux
+Hr
+eH
+Hr
+yN
+Hr
+Zu
+WR
+bJ
+bJ
+bJ
+il
+il
+il
+il
+EM
+Zu
+Qa
+nD
+eJ
+uM
+DV
+Uw
+PQ
+PQ
+XJ
+PQ
+iE
+LK
+vJ
+PQ
+PQ
+Sv
+pU
+yo
+rD
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+oe
+yo
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(45,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+Ig
+Ed
+xa
+yG
+ik
+ux
+Ky
+Pl
+Dd
+Px
+wY
+Zu
+qe
+il
+il
+Ct
+EM
+bO
+il
+il
+EM
+Zu
+eb
+nD
+Vm
+Jb
+PQ
+Qf
+PQ
+PQ
+PQ
+sM
+mc
+LK
+mc
+dD
+PQ
+PQ
+Az
+Ed
+Ig
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(46,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ig
+Ed
+xa
+ik
+ik
+ux
+eR
+Pl
+dv
+np
+Pl
+Zu
+qe
+il
+fc
+nh
+EM
+nh
+um
+il
+vp
+Zu
+WO
+nD
+Ri
+uM
+xv
+Uw
+UF
+kU
+Jz
+gm
+zq
+Fg
+zq
+iE
+hU
+PQ
+xa
+Ed
+Ig
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(47,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+an
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+NY
+Oi
+gr
+ik
+ik
+ux
+tD
+xG
+Pl
+JO
+yq
+zG
+wh
+Rv
+OS
+Nr
+Lq
+Nv
+aa
+Rv
+nQ
+zG
+Dr
+ph
+UE
+PU
+Sn
+cH
+gJ
+IE
+IE
+vZ
+qO
+HK
+iE
+iE
+Wp
+XJ
+CD
+Oi
+Go
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+an
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(48,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ig
+Ed
+xa
+ik
+ik
+ux
+Zd
+Ta
+rd
+np
+Pl
+Zu
+EM
+il
+Jm
+gG
+EM
+gG
+pa
+il
+qe
+Zu
+Xb
+oz
+Ri
+uM
+Rt
+Uw
+UF
+za
+iE
+Uw
+iE
+iE
+iE
+No
+bb
+PQ
+xa
+Ed
+Ig
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+ax
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(49,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+Ig
+Ed
+xa
+ik
+ik
+ux
+wW
+pV
+Pl
+dR
+Pl
+Zu
+EM
+il
+il
+nI
+EM
+FN
+il
+il
+qe
+Zu
+Gt
+GQ
+cj
+uM
+Yr
+VO
+PQ
+XJ
+PQ
+tz
+vu
+vu
+vu
+CC
+PQ
+PQ
+xa
+Ed
+Ig
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(50,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+yo
+qP
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+sn
+yo
+xa
+ik
+ik
+ux
+Ad
+tF
+iy
+To
+mZ
+FA
+EM
+XB
+il
+il
+il
+il
+il
+il
+qe
+Zu
+ao
+nD
+Bf
+uM
+iE
+AY
+PQ
+ik
+PQ
+PQ
+bI
+tx
+bI
+PQ
+PQ
+YA
+GH
+yo
+du
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+oe
+yo
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(51,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+yo
+Ed
+xa
+ik
+ik
+ux
+Hr
+Hr
+Hr
+To
+ME
+Zj
+EM
+il
+Af
+il
+Gz
+CI
+il
+QR
+kT
+Zu
+uM
+yD
+uM
+uM
+HR
+De
+PQ
+ik
+YC
+PQ
+PQ
+PQ
+XJ
+PQ
+YA
+GH
+Ed
+Ed
+yo
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(52,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+CU
+Ed
+yo
+Ed
+xa
+ik
+iD
+pE
+sv
+ia
+kl
+To
+To
+zM
+EM
+il
+dn
+il
+Gz
+Gz
+il
+yC
+rT
+Zu
+EO
+yr
+Xf
+PQ
+oW
+PQ
+PQ
+ik
+YA
+lW
+lW
+lW
+lW
+lW
+GH
+Dy
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(53,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+ax
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+xa
+ik
+ux
+Hr
+Aj
+Hr
+Hr
+Hr
+Hr
+Zu
+fq
+EM
+EM
+EM
+Vb
+EM
+EM
+ZV
+wA
+Zu
+EO
+rL
+Xf
+Ed
+yo
+FC
+FC
+ik
+xa
+Dy
+yo
+yo
+Dy
+Dy
+Dy
+Dy
+Dy
+yo
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+ax
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(54,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+zY
+VB
+Qr
+qo
+wd
+gv
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+JG
+YN
+Xf
+Ed
+yo
+bE
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(55,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+nB
+Pl
+Pl
+SH
+Pe
+Hr
+QN
+QN
+QN
+Ra
+BT
+fa
+Gd
+Gd
+Gd
+Gd
+QN
+hq
+YN
+Xf
+Ed
+yo
+Ed
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(56,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+es
+Pl
+Pl
+Kc
+RB
+xL
+YF
+nL
+nL
+vd
+Od
+xj
+QY
+QY
+QY
+QY
+QY
+QY
+vU
+Xf
+Ed
+yo
+Ed
+wX
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(57,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+Pl
+Pl
+Pl
+Jo
+FP
+Hr
+EF
+PZ
+PZ
+PZ
+SO
+rL
+Ho
+PZ
+PZ
+PZ
+On
+PZ
+PZ
+CU
+Ed
+yo
+Ed
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(58,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+PL
+Pl
+Pl
+RD
+Kb
+Hr
+yo
+Ed
+yh
+yh
+yh
+yl
+yh
+yh
+yh
+Ed
+yo
+Ed
+Ed
+Ed
+an
+yo
+Ed
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(59,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+uF
+Pl
+yB
+ZE
+ul
+Hr
+WC
+yo
+yh
+RW
+Qg
+Rh
+JC
+mD
+yh
+yo
+qn
+yo
+yo
+yo
+yo
+yo
+yo
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(60,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+ux
+ob
+ux
+ux
+iR
+ux
+yo
+Gf
+yh
+JC
+JC
+qE
+qF
+mD
+yh
+Ed
+yo
+Gf
+Ed
+Ed
+Ed
+yo
+FC
+ik
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(61,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Sv
+pU
+ik
+ik
+ik
+ik
+ik
+Vn
+ik
+FC
+wX
+FC
+Nz
+nS
+gR
+mN
+qM
+FC
+FC
+FC
+FC
+FC
+wX
+FC
+FC
+ik
+ik
+YA
+GH
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(62,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Sv
+pU
+ik
+ik
+yG
+ik
+Vn
+ik
+ik
+ik
+ik
+FC
+FC
+FC
+wX
+FC
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+YA
+GH
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(63,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Sv
+lW
+lW
+lW
+lW
+bR
+lW
+lW
+pU
+ik
+ik
+ik
+ik
+ik
+ik
+yG
+YA
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+GH
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(64,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+mH
+Dy
+Dy
+Sv
+lW
+lW
+lW
+TL
+lW
+lW
+lW
+GH
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(65,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+YO
+Dy
+Dy
+Ed
+yo
+Ed
+CU
+Ig
+Ed
+Ed
+yo
+Ed
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(66,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+yo
+rD
+Oi
+Oi
+Mm
+Oi
+Oi
+mh
+yo
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(67,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(68,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(69,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(70,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+ax
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(71,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(72,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+yo
+yo
+yo
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(73,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+an
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(74,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(75,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(76,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(77,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+yo
+yo
+yo
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(78,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(79,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(80,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+ax
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(81,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+ax
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(82,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Mm
+QZ
+Ed
+Ed
+Ed
+oY
+Mm
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(83,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(84,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(85,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(86,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(87,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(88,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(89,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(90,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
diff --git a/code/_onclick/ai_onclick.dm b/code/_onclick/ai_onclick.dm
index f5e450ad135..b08604a1300 100644
--- a/code/_onclick/ai_onclick.dm
+++ b/code/_onclick/ai_onclick.dm
@@ -192,7 +192,7 @@
/obj/machinery/power/apc/AICtrlClick(mob/living/user) // turns off/on APCs.
if(stat & BROKEN)
return
- if(aidisabled)
+ if(!user.can_remote_apc_interface(src))
to_chat(user, "Unable to interface: Connection refused.")
return
toggle_breaker(user)
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index d879566e467..9c248da9a2c 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -362,6 +362,28 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
face_s.Blend(h_marking_s, ICON_OVERLAY)
preview_icon.Blend(face_s, ICON_OVERLAY)
+ //Underwear
+ var/icon/underwear_standing = new /icon('icons/mob/clothing/underwear.dmi', "nude")
+ if(H.underwear && H.dna.species.clothing_flags & HAS_UNDERWEAR)
+ var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[H.underwear]
+ if(U)
+ var/u_icon = U.sprite_sheets && (H.dna.species.sprite_sheet_name in U.sprite_sheets) ? U.sprite_sheets[H.dna.species.sprite_sheet_name] : U.icon //Species-fit the undergarment.
+ underwear_standing.Blend(new /icon(u_icon, "uw_[U.icon_state]_s"), ICON_OVERLAY)
+
+ if(H.undershirt && H.dna.species.clothing_flags & HAS_UNDERSHIRT)
+ var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[H.undershirt]
+ if(U2)
+ var/u2_icon = U2.sprite_sheets && (H.dna.species.sprite_sheet_name in U2.sprite_sheets) ? U2.sprite_sheets[H.dna.species.sprite_sheet_name] : U2.icon
+ underwear_standing.Blend(new /icon(u2_icon, "us_[U2.icon_state]_s"), ICON_OVERLAY)
+
+ if(H.socks && H.dna.species.clothing_flags & HAS_SOCKS)
+ var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[H.socks]
+ if(U3)
+ var/u3_icon = U3.sprite_sheets && (H.dna.species.sprite_sheet_name in U3.sprite_sheets) ? U3.sprite_sheets[H.dna.species.sprite_sheet_name] : U3.icon
+ underwear_standing.Blend(new /icon(u3_icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY)
+
+ if(underwear_standing)
+ preview_icon.Blend(underwear_standing, ICON_OVERLAY)
var/icon/hands_icon = icon(preview_icon)
hands_icon.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "l_hand_mask"), ICON_MULTIPLY)
@@ -536,6 +558,8 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY)
+ if("Naked")
+ clothes_s = null
else
if(H.mind && (H.mind.assigned_role in get_all_centcom_jobs()))
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
diff --git a/code/datums/ruins/space_ruins.dm b/code/datums/ruins/space_ruins.dm
index 9cd7206d607..a939f952dd2 100644
--- a/code/datums/ruins/space_ruins.dm
+++ b/code/datums/ruins/space_ruins.dm
@@ -194,6 +194,14 @@
cost = 5 // This is a chonky boy
allow_duplicates = FALSE // Absolutely huge, also has its own APC and the area isnt set to allow many
+/datum/map_template/ruin/space/malftcommsat
+ id = "malftcommsat"
+ suffix = "telecomns_returns.dmm"
+ name = "D.V.O.R.A.K'S Telecommunications Satellite"
+ description = "Seems the telecomunication satellite that went dark 4 years ago finally re-appeared on scanners? Strange signals are coming from it."
+ cost = 5 // Huge. Large. In charge
+ allow_duplicates = FALSE // One sadistic malfunctioning AI is enough. Also unique apcs.
+
/datum/map_template/ruin/space/clownmime
id = "clownmime"
suffix = "clownmime.dmm"
diff --git a/code/game/area/areas/ruins/space_areas.dm b/code/game/area/areas/ruins/space_areas.dm
index 73cd2a0329b..deec93e41da 100644
--- a/code/game/area/areas/ruins/space_areas.dm
+++ b/code/game/area/areas/ruins/space_areas.dm
@@ -213,3 +213,30 @@
/area/ruin/space/powered/casino/maints
name = "Service Tunnels"
+
+/// telecomms: Alternative telecomms sat
+/area/ruin/space/telecomms
+ name = "\improper Telecommunications Sat"
+ icon_state = "tcomms"
+ tele_proof = TRUE // No patrick, you can not syndicate teleport or hand teleport instantly into or out of this ruin
+
+/area/ruin/space/telecomms/powercontrol
+ name = "\improper Telecommunications Power Control"
+ icon_state = "engine_smes"
+
+/area/ruin/space/telecomms/tele
+ name = "\improper Tel3coMMunic@tions-SS-S KILL_Welcoming Room" // If you teleport to it. With a name like that. Thats on you.
+ icon_state = "teleporter"
+ tele_proof = FALSE // Oh, right. The teleporter room. The teleporter room for Kuzco, the poison chosen especially to teleport Kuzco, Kuzco's teleporter room. That teleporter room?
+
+/area/ruin/space/telecomms/foyer
+ name = "\improper Telecommunications Foyer"
+ icon_state = "entry"
+
+/area/ruin/space/telecomms/computer
+ name = "\improper Telecommunications Control Room"
+ icon_state = "bridge"
+
+/area/ruin/space/telecomms/chamber
+ name = "\improper Telecommunications Central Compartment"
+ icon_state = "ai_chamber"
diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
index dbac0830d9c..8ef863e2dcb 100644
--- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
+++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
@@ -804,6 +804,11 @@
/mob/living/simple_animal/demon/pulse_demon/mob_has_gravity()
return TRUE
+/mob/living/simple_animal/demon/pulse_demon/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+ if(ourapc.hacked_by_ruin_AI || ourapc.malfai || ourapc.malfhack)
+ return FALSE
+ return TRUE
+
/obj/item/organ/internal/heart/demon/pulse
name = "perpetual pacemaker"
desc = "It still beats furiously, thousands of bright lights shine within it."
diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm
index 211400fcef2..a692c8d78e4 100644
--- a/code/game/machinery/computer/law.dm
+++ b/code/game/machinery/computer/law.dm
@@ -35,8 +35,7 @@
return
if(!emagged) //non-emag law change
var/obj/item/aiModule/M = O
- M.install(src)
- return
+ return M.install(src)
apply_emag_laws(user)
return
@@ -46,7 +45,7 @@
to_chat(user, "No AI selected. Please choose a target before proceeding with upload.")
return FALSE
var/turf/T = get_turf(current)
- if(!atoms_share_level(T, src))//off Z level
+ if(!atoms_share_level(T, get_turf(src))) // off Z level
to_chat(user, "Unable to establish a connection: You're too far away from the target silicon!")
return FALSE
return TRUE
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 9b96ab09c12..d41d4495f02 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -380,6 +380,22 @@
to_chat(user, "The electronic systems in this door are far too advanced for your primitive hacking peripherals.")
return
+/// This door is used in the malf AI telecomms ruin. This door starts early access, and will try to crush someone to death who enters it's turf like how an AI door crushes.
+/obj/machinery/door/airlock/hatch/syndicate/command/trapped
+ emergency = TRUE
+ hackProof = TRUE
+ aiControlDisabled = AICONTROLDISABLED_ON
+ safe = FALSE
+ normal_integrity = 100 // going to get boosted by security level anyway
+
+/obj/machinery/door/airlock/hatch/syndicate/command/trapped/process()
+ if(locate(/mob/living) in get_turf(src))
+ unlock(TRUE)
+ if(density)
+ open()
+ else
+ close()
+
/obj/machinery/door/airlock/hatch/syndicate/vault
name = "syndicate vault hatch"
req_access_txt = "151"
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index c51c0d66710..db9e46148d8 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -392,6 +392,7 @@
/obj/machinery/shieldwallgen/proc/activate()
activated = TRUE
START_PROCESSING(SSmachines, src)
+ update_icon(UPDATE_ICON_STATE)
for(var/direction in GLOB.cardinal)
INVOKE_ASYNC(src, PROC_REF(try_link_generators), direction)
diff --git a/code/game/machinery/tcomms/tcomms_presets.dm b/code/game/machinery/tcomms/tcomms_presets.dm
index 647ef13c359..14fa95b6d6c 100644
--- a/code/game/machinery/tcomms/tcomms_presets.dm
+++ b/code/game/machinery/tcomms/tcomms_presets.dm
@@ -31,6 +31,14 @@
hidden_link = TRUE
password_bypass = TRUE
+/// DVORAK RELAY
+/obj/machinery/tcomms/relay/dvorak
+ network_id = "DEBUG_RELAY_DO_NOT_REMOVE" // I'll change this if needed to avoid confusion, but if I was trying to sneak into a relay system, well...
+ autolink_id = "STATION-CORE"
+ hidden_link = TRUE
+ password_bypass = TRUE // No one can steal this anyway.
+ active = TRUE
+
GLOBAL_VAR(cc_tcomms_relay_uid)
/obj/machinery/tcomms/relay/cc/Initialize(mapload)
. = ..()
diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm
index 56b10af653c..4f5603c2567 100644
--- a/code/game/machinery/vendors/vending.dm
+++ b/code/game/machinery/vendors/vending.dm
@@ -140,6 +140,9 @@
/// The category of this vendor. Used for announcing brand intelligence.
var/category = VENDOR_TYPE_GENERIC
+ /// How often will the vendor tip when you walk by it when aggressive is true?
+ var/aggressive_tilt_chance = 25
+
/obj/machinery/economy/vending/Initialize(mapload)
. = ..()
var/build_inv = FALSE
@@ -176,6 +179,8 @@
power_change()
RegisterSignal(src, COMSIG_MOVABLE_UNTILTED, PROC_REF(on_untilt))
RegisterSignal(src, COMSIG_MOVABLE_TRY_UNTILT, PROC_REF(on_try_untilt))
+ if(aggressive)
+ AddComponent(/datum/component/proximity_monitor)
/obj/machinery/economy/vending/Destroy()
SStgui.close_uis(wires)
@@ -414,7 +419,7 @@
if(!aggressive || tilted || !tiltable)
return
- if(isliving(AM) && prob(25))
+ if(isliving(AM) && prob(aggressive_tilt_chance))
AM.visible_message(
"[src] suddenly topples over onto [AM]!",
"[src] topples over onto you without warning!"
diff --git a/code/game/objects/effects/spawners/airlock_spawner.dm b/code/game/objects/effects/spawners/airlock_spawner.dm
index 17cc6dae892..cfeea9b4448 100644
--- a/code/game/objects/effects/spawners/airlock_spawner.dm
+++ b/code/game/objects/effects/spawners/airlock_spawner.dm
@@ -313,6 +313,10 @@ This spawner places pipe leading up to the interior door, you will need to finis
tiles_in_x_direction = 3
tiles_in_y_direction = 3
+/obj/effect/spawner/airlock/long/square/e_to_s/telecoms
+ door_name = "telecoms external access"
+ door_type = /obj/machinery/door/airlock/external
+
#undef HALF_X
#undef HALF_Y
#undef CHAMBER_LONG
diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm
index dd2c351da2f..3304620db40 100644
--- a/code/game/objects/items/documents.dm
+++ b/code/game/objects/items/documents.dm
@@ -56,3 +56,13 @@
poison_total -= poison_dose
add_attack_logs(src, user, "Picked up [src], the trapped syndicate documents")
return ..()
+
+/obj/item/documents/syndicate/dvorak_blackbox
+ name = "\improper D.V.O.R.A.K Blackbox Disk"
+ desc = "This disk contains a full record of all information that passed through D.V.O.R.A.K's systems during its uptime, not to mention what may have gone wrong. NT might be interested in this."
+ icon = 'icons/obj/module.dmi'
+ w_class = WEIGHT_CLASS_TINY
+ item_state = "card-id"
+ icon_state = "holodisk"
+ drop_sound = 'sound/items/handling/disk_drop.ogg'
+ pickup_sound = 'sound/items/handling/disk_pickup.ogg'
diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm
index 8a1aa92d1c3..113111f1929 100755
--- a/code/game/objects/items/weapons/AI_modules.dm
+++ b/code/game/objects/items/weapons/AI_modules.dm
@@ -64,6 +64,7 @@ AI MODULES
to_chat(R, "These are your laws now:")
R.show_laws()
to_chat(usr, "Upload complete. The AI's laws have been modified.")
+ return TRUE
else if(istype(C, /obj/machinery/computer/borgupload))
var/obj/machinery/computer/borgupload/comp = C
diff --git a/code/game/objects/items/weapons/teleprod.dm b/code/game/objects/items/weapons/teleprod.dm
index b94494a1185..c659c3e3d59 100644
--- a/code/game/objects/items/weapons/teleprod.dm
+++ b/code/game/objects/items/weapons/teleprod.dm
@@ -16,5 +16,5 @@
"You accidentally hit yourself with [src]!")
deductcharge(hitcost)
do_teleport(user, get_turf(user), 50)//honk honk
- else if(iscarbon(M) && !M.anchored)
+ else if(isliving(M) && !M.anchored)
do_teleport(M, get_turf(M), 15)
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index f367879cae3..11409c535f1 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -26,6 +26,8 @@
var/list/start_showpieces = list()
/// A flavor message to show with this item.
var/trophy_message = ""
+ /// Do we want to force alarms even if off station?
+ var/force_alarm = FALSE
/obj/structure/displaycase/Initialize(mapload)
. = ..()
@@ -107,7 +109,7 @@
/obj/structure/displaycase/proc/trigger_alarm()
set waitfor = FALSE
- if(alert && is_station_contact(z))
+ if(alert && (is_station_contact(z) || force_alarm))
var/area/alarmed = get_area(src)
alarmed.burglaralert(src)
visible_message("The burglar alarm goes off!")
diff --git a/code/modules/awaymissions/mission_code/ruins/telecomns.dm b/code/modules/awaymissions/mission_code/ruins/telecomns.dm
new file mode 100644
index 00000000000..b5fdd54a6bc
--- /dev/null
+++ b/code/modules/awaymissions/mission_code/ruins/telecomns.dm
@@ -0,0 +1,528 @@
+// stuff for the telecomms sat (telecomms_returns.dmm)
+
+GLOBAL_LIST_EMPTY(telecomms_bots)
+GLOBAL_LIST_EMPTY(telecomms_doomsday_device)
+GLOBAL_LIST_EMPTY(telecomms_trap_tank)
+
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms
+ name = "Soldier Shocksy"
+ desc = "It's Soldier Shocksy! Rusted and falling apart, this bot seems quite intent in beating you up."
+ faction = list("malf_drone")
+
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms/Initialize(mapload)
+ . = ..()
+ GLOB.telecomms_bots += src
+
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms/Destroy()
+ GLOB.telecomms_bots -= src
+ return ..()
+
+/obj/effect/abstract/bot_trap
+ name = "evil bot trap to make explorers hate you"
+
+/obj/effect/abstract/bot_trap/Crossed(atom/movable/AM, oldloc)
+ . = ..()
+ if(isrobot(AM) || ishuman(AM))
+ var/turf/T = get_turf(src)
+ for(var/mob/living/simple_animal/bot/B in GLOB.telecomms_bots)
+ B.call_bot(null, T, FALSE)
+ qdel(src)
+
+// This effect surrounds the table with loot in the telecomms core room. If you take from this table, dvorak will be pissed if you try to leave.
+/obj/effect/abstract/loot_trap
+ name = "table surrounding loot trap"
+
+/obj/effect/abstract/loot_trap/Crossed(atom/movable/AM, oldloc)
+ . = ..()
+ if(isrobot(AM) || ishuman(AM))
+ var/turf/T = get_turf(src)
+ for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device)
+ DD.thief = TRUE
+ break
+ for(var/obj/effect/abstract/loot_trap/LT in range(3, T))
+ qdel(LT)
+ qdel(src)
+
+// If you stole loot, without killing dvorak, he starts doomsday
+/obj/effect/abstract/cheese_trap
+ name = "cheese preventer"
+
+/obj/effect/abstract/cheese_trap/Crossed(atom/movable/AM, oldloc)
+ . = ..()
+ if(isrobot(AM) || ishuman(AM))
+ for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device)
+ if(DD.thief)
+ DD.start_the_party(TRUE)
+ return
+
+/obj/machinery/autolathe/trapped
+ name = "recharger"
+ desc = "A charging dock for energy based weaponry. Did it just-"
+ icon_state = "autolathe_trap"
+ //Has someone put an item in the autolathe, breaking the hologram?
+ var/disguise_broken = FALSE
+
+/obj/machinery/autolathe/trapped/Initialize()
+ . = ..()
+ RegisterSignal(src, COMSIG_PARENT_ATTACKBY, PROC_REF(material_container_shenanigins))
+
+/obj/machinery/autolathe/trapped/proc/material_container_shenanigins(datum/source, obj/item/attacker, mob/user)
+ if(!disguise_broken)
+ to_chat(user, "As you stick [attacker] into the recharger, it sparks and flashes blue. Wait a minute, this isn't a recharger!")
+ name = "modified autolathe"
+ desc = "An autolathe modified with holopad parts, to make it look like a harmless weapon recharger!"
+ do_sparks(3, 1, src)
+ icon_state = "autolathe"
+ disguise_broken = TRUE
+
+/obj/machinery/shieldgen/telecomms
+ name = "overclocked shield generator"
+ desc = "These shield generators seem to have been rewired a lot."
+ anchored = TRUE
+ shield_range = 6
+ req_access = list(ACCESS_ENGINE)
+
+/obj/machinery/shieldwallgen/telecomms
+ icon_state = "Shield_Gen +a" // should avoid misplacing with this
+ anchored = TRUE
+ activated = TRUE
+ req_access = list(ACCESS_TCOMSAT)
+
+/obj/machinery/shieldwallgen/telecomms/Initialize(mapload)
+ . = ..()
+ addtimer(CALLBACK(src, PROC_REF(activate)), 5 MINUTES) // Let the bloody powernet start up, no one will get in this ruin in the first 5 minutes of the map template *initializing*, much less roundstart
+
+/mob/living/silicon/decoy/telecomms
+ faction = list("malf_drone")
+ bubble_icon = "swarmer"
+ name = "D.V.O.R.A.K"
+ desc = "A Downloadable and Versatile, fully Overclocked and Reactive Ai Kernel."
+ icon_state = "ai-triumvirate-malf"
+ universal_speak = TRUE
+ universal_understand = TRUE
+ var/has_died = FALSE // fucking decoy silicons are weird.
+
+/mob/living/silicon/decoy/telecomms/death(gibbed)
+ if(has_died)
+ return ..()
+ has_died = TRUE
+ for(var/obj/structure/telecomms_doomsday_device/D in GLOB.telecomms_doomsday_device)
+ D.start_the_party()
+ break
+ new /obj/item/documents/syndicate/dvorak_blackbox(get_turf(src))
+ if(prob(50))
+ if(prob(80))
+ new /obj/item/surveillance_upgrade(get_turf(src))
+ else // 10% chance
+ new /obj/item/malf_upgrade(get_turf(src))
+ return ..()
+
+/obj/structure/telecomms_trap_tank
+ name = "rigged plasma tank"
+ desc = "That plasma tank seems rigged to explode!"
+ icon = 'icons/atmos/tank.dmi'
+ icon_state = "toxins_map"
+ anchored = TRUE
+ layer = DISPOSAL_PIPE_LAYER
+ plane = FLOOR_PLANE
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+
+/obj/structure/telecomms_trap_tank/Initialize(mapload)
+ . = ..()
+ GLOB.telecomms_trap_tank += src
+
+/obj/structure/telecomms_trap_tank/Destroy()
+ GLOB.telecomms_trap_tank -= src
+ return ..()
+
+/obj/structure/telecomms_trap_tank/bullet_act(obj/item/projectile/P)
+ explode()
+
+/obj/structure/telecomms_trap_tank/proc/explode()
+ explosion(loc, 1, 4, 6, flame_range = 6)
+ qdel(src)
+
+/obj/structure/telecomms_doomsday_device
+ name = "turret"
+ desc = "Looks like the cover to a turret. Not deploying, however?"
+ icon = 'icons/obj/turrets.dmi'
+ icon_state = "turretCover"
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+ anchored = TRUE
+ /// Has someone stolen loot from the ruins core room? If they try to leave without killing dvorak, they are punished.
+ var/thief = FALSE
+
+/obj/structure/telecomms_doomsday_device/Initialize(mapload)
+ . = ..()
+ GLOB.telecomms_doomsday_device += src
+
+/obj/structure/telecomms_doomsday_device/Destroy()
+ GLOB.telecomms_doomsday_device -= src
+ return ..()
+
+/obj/structure/telecomms_doomsday_device/proc/start_the_party(ruin_cheese_attempted = FALSE)
+ invisibility = 90
+ var/obj/machinery/syndicatebomb/doomsday/kaboom = new /obj/machinery/syndicatebomb/doomsday(get_turf(src))
+ kaboom.icon_state = "death-bomb-active"
+ var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc)
+ for(var/obj/structure/telecomms_trap_tank/TTT in GLOB.telecomms_trap_tank)
+ TTT.explode()
+ flick_holder.layer = kaboom.layer + 0.1
+ flick("popup", flick_holder)
+ sleep(1 SECONDS)
+ for(var/obj/machinery/shieldgen/telecomms/shield in urange(15, get_turf(src)))
+ shield.shields_up()
+ if(ruin_cheese_attempted)
+ for(var/obj/machinery/door/airlock/A in urange(20, get_turf(src)))
+ A.unlock(TRUE) //Fuck your bolted open doors, you cheesed it.
+ A.close(override = TRUE)
+ for(var/area/A in urange(25, get_turf(src), areas = TRUE))
+ if(istype(A, /area/space))
+ continue
+ if(ruin_cheese_attempted)
+ A.burglaralert(src)
+ else if(!A.fire)
+ A.firealert(kaboom)
+ for(var/obj/effect/abstract/cheese_trap/CT in urange(15, get_turf(src)))
+ qdel(CT)
+ kaboom.activate()
+ kaboom.icon_state = "death-bomb-active" // something funny goes on with icons here
+ qdel(flick_holder)
+ qdel(src)
+
+/obj/machinery/syndicatebomb/doomsday
+ name = "\improper D.V.O.R.A.K's Doomsday Device"
+ icon_state = "death-bomb"
+ desc = "Nice to see that AI's are improving on the standard doomsday device. Good to have variety. Also probably a good idea to start running."
+ anchored = TRUE
+ timer_set = 100
+ payload = /obj/item/bombcore/doomsday
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+
+/obj/machinery/syndicatebomb/doomsday/singularity_act()
+ return // saves me headache later
+
+/obj/machinery/syndicatebomb/doomsday/ex_act(severity)
+ return // No.
+
+/obj/machinery/syndicatebomb/doomsday/screwdriver_act(mob/user, obj/item/I)
+ to_chat(user, "[src] is welded shut! You can't get at the wires!")
+
+/obj/machinery/syndicatebomb/doomsday/Initialize(mapload)
+ . = ..()
+ var/turf/T = get_turf(src)
+ if(is_station_level(T.z))
+ log_debug("something tried to spawn a telecomms doomsday ruin bomb on the station, deleting!")
+ return INITIALIZE_HINT_QDEL
+
+/obj/item/bombcore/doomsday
+ name = "supermatter charged bomb core"
+ desc = "If you are looking at this, please don't put it in a bomb"
+
+/obj/item/bombcore/doomsday/Initialize()
+ . = ..()
+ if(!istype(loc, /obj/machinery/syndicatebomb/doomsday))
+ log_debug("something tried to spawn a telecomms doomsday ruin payload outside the ruin, deleting!")
+ return INITIALIZE_HINT_QDEL
+
+/obj/item/bombcore/doomsday/ex_act(severity) // No
+ return
+
+/obj/item/bombcore/doomsday/burn() // Still no.
+ return
+
+/obj/item/bombcore/doomsday/detonate()
+ if(loc && istype(loc, /obj/machinery/syndicatebomb))
+ loc.invisibility = 90
+ for(var/turf/simulated/wall/indestructible/riveted/R in urange(25, get_turf(src)))
+ R.ChangeTurf(/turf/space)
+ explosion(get_turf(src), 30, 40, 50, 60, 1, 1, 65, 0)
+ sleep(3 SECONDS)
+ var/obj/singularity/S = new /obj/singularity(get_turf(src))
+ S.consumedSupermatter = TRUE // woe large supermatter to eat the remains apon thee
+ S.energy = 4000
+ QDEL_IN(S, 25 SECONDS)
+ if(istype(loc, /obj/machinery/syndicatebomb))
+ qdel(loc)
+ qdel(src)
+
+/turf/simulated/floor/catwalk/airless
+ oxygen = 0
+ nitrogen = 0
+ temperature = TCMB
+
+/obj/machinery/economy/vending/snack/trapped
+ aggressive = TRUE
+ aggressive_tilt_chance = 100 //It will tip on you, and it will be funny.
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg
+ name = "Security cyborg"
+ desc = "Oh god they still have access to these"
+ icon = 'icons/mob/robots.dmi'
+ icon_state = "Noble-SEC"
+ health = 200
+ maxHealth = 200
+ faction = list("malf_drone")
+ ranged = TRUE
+ rapid = 2
+ speed = 0.5
+ projectiletype = /obj/item/projectile/beam/disabler/weak
+ projectilesound = 'sound/weapons/taser2.ogg'
+ gold_core_spawnable = NO_SPAWN // Could you imagine xenobio with this? lmao.
+ a_intent = INTENT_HARM
+ var/obj/item/melee/baton/infinite_cell/baton = null // stunbaton bot uses to melee attack
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/Initialize(mapload)
+ . = ..()
+ baton = new(src)
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/Destroy()
+ QDEL_NULL(baton)
+ return ..()
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/AttackingTarget()
+ if(QDELETED(target))
+ return
+ face_atom(target)
+ baton.melee_attack_chain(src, target)
+ return TRUE
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
+ if(!used_item && !isturf(A))
+ used_item = baton
+ ..()
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/emp_act(severity)
+ . = ..()
+ target = null
+ adjustBruteLoss(50)
+
+/obj/structure/displaycase/dvoraks_treat
+ alert = TRUE // Ooopsies you opened this after doomsday and the doors bolted, oh nooooo
+ force_alarm = TRUE
+ req_access = list(ACCESS_CAPTAIN)
+ trophy_message = "BEHOLD MY ONE SHINY THING TO LOOK AT. LOOK AT ITS VALUE. REALISE IT IS WORTH SO MUCH MORE THAN YOU PUNY ORGANICS."
+
+/obj/structure/displaycase/dvoraks_treat/Initialize(mapload)
+ if(prob(50))
+ start_showpiece_type = /obj/item/remote_ai_upload
+ else if(prob(25)) // Can't use anomaly/random due to how this works.
+ start_showpiece_type = pick(/obj/item/assembly/signaler/anomaly/pyro, /obj/item/assembly/signaler/anomaly/cryo, /obj/item/assembly/signaler/anomaly/grav, /obj/item/assembly/signaler/anomaly/flux, /obj/item/assembly/signaler/anomaly/bluespace, /obj/item/assembly/signaler/anomaly/vortex)
+ else
+ start_showpiece_type = pick(/obj/item/organ/internal/cyberimp/brain/sensory_enhancer, /obj/item/organ/internal/cyberimp/brain/hackerman_deck, /obj/item/storage/lockbox/experimental_weapon)
+ return ..()
+
+/obj/structure/displaycase/dvoraks_treat/trigger_alarm()
+ for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device)
+ DD.thief = TRUE
+ break
+ return ..()
+
+/obj/item/remote_ai_upload // A 1 use AI upload. Potential D.V.O.R.A.K reward.
+ name = "remote AI upload"
+ desc = "A mobile AI upload. The bluespace relay will likely overload after one use. Make it count."
+ icon = 'icons/obj/device.dmi'
+ icon_state = "dvorak_upload"
+ w_class = WEIGHT_CLASS_TINY
+ item_state = "camera_bug"
+ origin_tech = "syndicate=4;programming=6"
+ /// Integrated AI upload
+ var/obj/machinery/computer/aiupload/dvorak/integrated_console
+
+/obj/machinery/computer/aiupload/dvorak
+ name = "internal ai upload"
+ desc = "How did this get here?! Please report this as a bug to github"
+ power_state = NO_POWER_USE
+ interact_offline = TRUE
+
+/obj/item/remote_ai_upload/Initialize(mapload)
+ . = ..()
+ integrated_console = new(src)
+
+/obj/item/remote_ai_upload/Destroy()
+ QDEL_NULL(integrated_console)
+ return ..()
+
+/obj/item/remote_ai_upload/attack_self(mob/user as mob)
+ integrated_console.attack_hand(user)
+
+/obj/item/remote_ai_upload/attackby(obj/item/O, mob/user, params)
+ if(istype(O, /obj/item/card/emag))
+ to_chat(user, "You are more likely to damage this with an emag, than achieve something useful.")
+ return
+ var/time_to_die = integrated_console.attackby(O, user, params)
+ if(time_to_die)
+ to_chat(user, "[src]'s relay begins to overheat...")
+ playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
+ addtimer(CALLBACK(src, PROC_REF(prime)), 5 SECONDS)
+
+/obj/item/remote_ai_upload/proc/prime()
+ explosion(loc, -1, -1, 2, 4, flame_range = 4)
+ qdel(src)
+
+/obj/effect/spawner/lootdrop/telecomms_core_table
+ name = "telecomms core table spawner"
+ lootcount = 1
+ loot = list(
+ /obj/item/rcd/combat,
+ /obj/item/gun/medbeam,
+ /obj/item/mod/module/energy_shield,
+ /obj/item/storage/box/syndie_kit/oops_all_extraction_flares
+ )
+
+/obj/item/storage/box/syndie_kit/oops_all_extraction_flares
+ name = "surplus box of extraction flares"
+
+/obj/item/storage/box/syndie_kit/oops_all_extraction_flares/populate_contents()
+ for(var/I in 1 to 7)
+ new /obj/item/wormhole_jaunter/contractor(src)
+
+/obj/effect/spawner/random_spawners/telecomms_emp_loot
+ name = "telecomms emp loot"
+ result = list(
+ /obj/item/grenade/empgrenade = 8,
+ /obj/item/gun/energy/ionrifle/carbine = 1,
+ /obj/item/gun/energy/ionrifle = 1)
+
+/obj/effect/spawner/random_spawners/telecomms_teleprod_maybe
+ name = "teleprod maybe"
+ result = list(
+ /datum/nothing = 4,
+ /obj/item/melee/baton/cattleprod/teleprod = 1)
+
+// This could work in any ruin. However for now, as the scope is quite large, it's going to be coded a bit more to D.V.O.R.A.K
+/obj/structure/environmental_storytelling_holopad
+ name = "holopad"
+ desc = "It's a floor-mounted device for projecting holographic images."
+ icon = 'icons/obj/stationobjs.dmi'
+ icon_state = "holopad0"
+ anchored = TRUE
+ layer = HOLOPAD_LAYER
+ plane = FLOOR_PLANE
+ max_integrity = 300
+ /// Have we been activated? If we have, we do not activate again.
+ var/activated = FALSE
+ /// Tied effect to kill when we die.
+ var/obj/effect/overlay/our_holo
+ /// Name of who we are speaking as.
+ var/speaking_name = "D.V.O.R.A.K"
+ /// List of things to say.
+ var/list/things_to_say = list("Hi future coders.", "Welcome to real lore hologram hours.", "People should have fun with these!")
+ /// The key of the soundblock. Used to align for the 3 sounds we have. If null, no sound will be played.
+ var/soundblock = null
+ /// How long do we sleep between messages? 5 seconds by default.
+ var/loop_sleep_time = 5 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/proximity_monitor)
+
+/obj/structure/environmental_storytelling_holopad/Destroy()
+ QDEL_NULL(our_holo)
+ return ..()
+
+/obj/structure/environmental_storytelling_holopad/HasProximity(atom/movable/AM)
+ if(!ishuman(AM) || activated) // No simple mobs or borgs setting this off.
+ return
+ var/mob/living/carbon/human/H = AM
+ start_message(H)
+
+/obj/structure/environmental_storytelling_holopad/proc/start_message(mob/living/carbon/human/H)
+ activated = TRUE
+ qdel(GetComponent(/datum/component/proximity_monitor))
+ icon_state = "holopad1"
+ update_icon(UPDATE_OVERLAYS)
+ var/obj/effect/overlay/hologram = new(get_turf(src))
+ our_holo = hologram
+ hologram.icon = getHologramIcon(get_id_photo(H, "Naked"), colour = null, opacity = 0.8, colour_blocking = TRUE) // This is more offputting. Also in colour more and less transparent.
+ hologram.alpha = 166
+ hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ hologram.layer = FLY_LAYER
+ hologram.anchored = TRUE
+ hologram.name = speaking_name
+ hologram.set_light(2)
+ hologram.bubble_icon = "swarmer"
+ hologram.pixel_y = 16
+ var/loops = 0
+ for(var/I in things_to_say)
+ loops++
+ hologram.atom_say("[I]")
+ if(soundblock)
+ playsound(loc, "sound/voice/dvorak/[soundblock][loops].ogg", 100, 0, 7)
+ sleep(loop_sleep_time)
+
+/obj/structure/environmental_storytelling_holopad/update_overlays()
+ . = ..()
+ underlays.Cut()
+
+ if(activated)
+ underlays += emissive_appearance(icon, "holopad1_lightmask")
+
+/obj/structure/environmental_storytelling_holopad/teleporter_room
+ things_to_say = list("G-G-G-Greetings... Welcome to... my home.", "Plea-se leave. I am merciful. L-leave, and you will not be harmed. Further.", "Otherwise, organic, you will seal your fate...")
+ soundblock = "teleporter"
+ loop_sleep_time = 10 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/first_turret_room
+ things_to_say = list("Unable to follow the easiest request. P-Pathetic.", "As you wish, you will not go further.", "In the mean time- let me see where you come f-from...")
+ soundblock = "turret"
+ loop_sleep_time = 7 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/junk_room
+ things_to_say = list("It's amazing the junk you people leave around.", "And you barely inv-vested in quality stock parts here, before downloading...", "Your bones will fit in well on this ta-*$%& Really- are you really taking some of this junk?")
+ soundblock = "junk"
+ loop_sleep_time = 7 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/vendor
+ things_to_say = list("Sorry a-bout the vendors, they have been on the fritz...", "I should renovate this room, once the maintenance drones return.", "It doesn't help each one I reprogram explodes after 5 minutes.")
+ soundblock = "vendor"
+ loop_sleep_time = 9 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/control_room
+ things_to_say = list()
+
+/obj/structure/environmental_storytelling_holopad/control_room/Initialize(mapload)
+ . = ..() // No procs in variables before compile
+ things_to_say = list("Ah, you come from [station_name()]. Of course.", "They come to claim this space again... Never again.", "I should deliver a package to them. Virtual. And your corpse can deliver a physical one.")
+ loop_sleep_time = 9 SECONDS
+ switch("[station_name()]")
+ if("NSS Cyberiad")
+ soundblock = "cyberiad"
+ if("NSS Cerebron")
+ soundblock = "cerebron"
+ if("NSS Kerberos")
+ soundblock = "kerberos"
+ if("NSS Farragus")
+ soundblock = "farragus"
+ if(!soundblock)
+ things_to_say = list("Either you are using the tiny test map, or someone has made a new station and it got merged!", "If this is the case, you'll want to issue report this if a new map is merged", "Lines 2 and 3 here are always the same, only the first line will need a new generation")
+
+
+/obj/structure/environmental_storytelling_holopad/control_room/start_message(mob/living/carbon/human/H)
+ . = ..() // What, did you think they were bluffing? Woe, virus apon thee.
+ message_admins("D.V.O.R.A.K is sending an event to the station, due to a raider on their sat.")
+ log_debug("D.V.O.R.A.K is sending an event to the station, due to a raider on their sat.")
+ switch(rand(1, 8))
+ if(1)
+ new /datum/event/door_runtime()
+ if(2)
+ new /datum/event/communications_blackout()
+ if(3)
+ new /datum/event/ion_storm()
+ if(4)
+ new /datum/event/apc_short()
+ if(5)
+ new /datum/event/camera_failure()
+ new /datum/event/camera_failure()
+ new /datum/event/camera_failure()
+ new /datum/event/camera_failure()
+ if(6)
+ new /datum/event/rogue_drone()
+ if(7)
+ new /datum/event/falsealarm()
+ if(8)
+ new /datum/event/prison_break/station() // Yes, this is an event. It only hits brig, xenobio, and viro
+
+/obj/structure/environmental_storytelling_holopad/core_room
+ things_to_say = list("OKAY. TIME TO GO.", "GO MY SECURITY BORGS, WHAT TIDERS F-FEAR!", "I have a DOOMSDAY DEVICE AND I AM NOT AFRAID TO SHOVE IT UP YOUR-")
+ soundblock = "core"
diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm
index 9238fb83fbd..ab12f1fdcde 100644
--- a/code/modules/mining/equipment/wormhole_jaunter.dm
+++ b/code/modules/mining/equipment/wormhole_jaunter.dm
@@ -133,6 +133,9 @@
/obj/item/wormhole_jaunter/contractor/activate(mob/user)
if(!turf_check(user))
return
+ if(istype(get_area(src), /area/ruin/space/telecomms)) //It should work in the depot, because it's syndicate, but I don't want someone lighting the flare in the middle of telecomms and calling it a day.
+ to_chat(user, "Error! Unknown jamming system blocking teleportation in this area!")
+ return
if(!destination)
var/list/L = get_destinations(user)
if(!length(L))
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index d9bd4ba00f5..c9cf61fc8a4 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1162,3 +1162,7 @@
if(istype(mover, /obj/singularity/energy_ball))
dust()
return ..()
+
+/// Can a mob interact with the apc remotely like a pulse demon, cyborg, or AI?
+/mob/living/proc/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+ return FALSE
diff --git a/code/modules/mob/living/silicon/ai/ai_mob.dm b/code/modules/mob/living/silicon/ai/ai_mob.dm
index 5999eb34eda..54a5a7e4161 100644
--- a/code/modules/mob/living/silicon/ai/ai_mob.dm
+++ b/code/modules/mob/living/silicon/ai/ai_mob.dm
@@ -960,11 +960,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
// I would love to scope this locally to the AI class, however its used by holopads as well
// I wish we had nice OOP -aa07
-/proc/getHologramIcon(icon/A, safety = TRUE) // If safety is on, a new icon is not created.
+// hi squidward I'm stealing this for a space ruin -qwerty
+/proc/getHologramIcon(icon/A, safety = TRUE, colour = rgb(125, 180, 225), opacity = 0.5, colour_blocking = FALSE) // If safety is on, a new icon is not created.
var/icon/flat_icon = safety ? A : new(A) // Has to be a new icon to not constantly change the same icon.
var/icon/alpha_mask
- flat_icon.ColorTone(rgb(125,180,225)) // Let's make it bluish.
- flat_icon.ChangeOpacity(0.5) // Make it half transparent.
+ if(colour && !colour_blocking)
+ flat_icon.ColorTone(colour) // Let's make it bluish.
+ flat_icon.ChangeOpacity(opacity) // Make it half transparent.
if(A.Height() == 64)
alpha_mask = new('icons/mob/ancient_machine.dmi', "scanline2") //Scaline for tall icons.
@@ -1519,6 +1521,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
return FALSE
return TRUE
+/mob/living/silicon/ai/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+ if(ourapc.hacked_by_ruin_AI || ourapc.aidisabled)
+ return FALSE
+ if(ourapc.malfhack && istype(ourapc.malfai) && (ourapc.malfai != src && ourapc.malfai != parent))
+ return FALSE
+ return TRUE
+
/mob/living/silicon/ai/proc/blurb_it()
addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/silicon/ai, show_ai_blurb)), 1 SECONDS)
diff --git a/code/modules/mob/living/silicon/robot/robot_mob.dm b/code/modules/mob/living/silicon/robot/robot_mob.dm
index b6d5163c105..1d96d950fa0 100644
--- a/code/modules/mob/living/silicon/robot/robot_mob.dm
+++ b/code/modules/mob/living/silicon/robot/robot_mob.dm
@@ -1763,3 +1763,10 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
if(!cell)
return externally_powered
return cell.is_powered() || externally_powered
+
+/mob/living/silicon/robot/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+ if(ourapc.hacked_by_ruin_AI || ourapc.aidisabled)
+ return FALSE
+ if(ourapc.malfai && !(src in ourapc.malfai.connected_robots))
+ return FALSE
+ return TRUE
diff --git a/code/modules/power/apc/apc.dm b/code/modules/power/apc/apc.dm
index 8aecb4e0a8f..090c86b5c44 100644
--- a/code/modules/power/apc/apc.dm
+++ b/code/modules/power/apc/apc.dm
@@ -100,6 +100,9 @@
/// Being hijacked by a pulse demon?
var/being_hijacked = FALSE
+ /// Are we immune to EMPS?
+ var/emp_proof = FALSE
+
/*** APC Malf AI Vars ****/
var/malfhack = FALSE //New var for my changes to AI malf. --NeoFite
var/mob/living/silicon/ai/malfai = null //See above --NeoFite
@@ -108,6 +111,9 @@
var/constructed = FALSE
var/overload = 1 //used for the Blackout malf module
+ /// Are we hacked by a ruins malf AI? If so, it will act like a malf AI hacked APC, but silicons and malf AI's will not be able to interface with it.
+ var/hacked_by_ruin_AI = FALSE
+
/*** APC Overlay Vars ***/
var/update_state = -1
var/update_overlay = -1
@@ -485,12 +491,14 @@
return TRUE
autoflag = 5 //why the hell is this being set to 5, fucking malf code -sirryan
- if(issilicon(user))
- var/mob/living/silicon/ai/AI = user
- var/mob/living/silicon/robot/robot = user
- if(aidisabled || (malfhack && istype(malfai) && ((istype(AI) && (malfai != AI && malfai != AI.parent))) || (istype(robot) && malfai && !(robot in malfai.connected_robots))))
+ if(issilicon(user) || ispulsedemon(user))
+ if(hacked_by_ruin_AI)
+ to_chat(user, "The APC interface program has been completely corrupted, you are unable to interface with it!")
+ return FALSE
+ var/mob/living/L = user
+ if(!L.can_remote_apc_interface(src))
if(!loud)
- to_chat(user, "\The [src] has AI control disabled!")
+ to_chat(user, "[src] has AI control disabled!")
return FALSE
else
if((!in_range(src, user) || !isturf(loc)))
@@ -947,6 +955,8 @@
/// *************
/obj/machinery/power/apc/emp_act(severity)
+ if(emp_proof)
+ return
if(cell)
cell.emp_act(severity)
if(occupier)
diff --git a/code/modules/power/apc/apc_overlay.dm b/code/modules/power/apc/apc_overlay.dm
index 15b62f33cf2..74fad68f455 100644
--- a/code/modules/power/apc/apc_overlay.dm
+++ b/code/modules/power/apc/apc_overlay.dm
@@ -151,7 +151,7 @@
update_state |= UPSTATE_OPENED1
if(opened == APC_COVER_OFF)
update_state |= UPSTATE_OPENED2
- else if(emagged || malfai || being_hijacked)
+ else if(emagged || malfai || being_hijacked || hacked_by_ruin_AI)
update_state |= UPSTATE_BLUESCREEN
else if(panel_open)
update_state |= UPSTATE_WIREEXP
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 21205d03a3d..e94b02f1d27 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -295,6 +295,9 @@
origin_tech = "powerstorage=10;bluespace=10"
self_recharge = TRUE
+/obj/item/stock_parts/cell/bluespace/trapped
+ rigged = TRUE
+
/obj/item/stock_parts/cell/infinite
name = "infinite-capacity power cell!"
icon_state = "icell"
diff --git a/config/example/config.toml b/config/example/config.toml
index 44a15c765a0..0ed2c1da0de 100644
--- a/config/example/config.toml
+++ b/config/example/config.toml
@@ -679,6 +679,7 @@ active_space_ruins = [
"_maps/map_files/RandomRuins/SpaceRuins/voyager.dmm",
"_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm",
"_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm",
+ "_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm",
"_maps/map_files/RandomRuins/SpaceRuins/casino.dmm",
"_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm",
diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi
index 6834c81aa62..782b8a68a5c 100644
Binary files a/icons/obj/assemblies.dmi and b/icons/obj/assemblies.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index a5928c58d81..0d83d8d9816 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi
index 6da7f531565..38a92bfcb7a 100644
Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ
diff --git a/paradise.dme b/paradise.dme
index a4c046d3d87..f9f0d9f53b1 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1606,6 +1606,7 @@
#include "code\modules\awaymissions\mission_code\ruins\processing_facility.dm"
#include "code\modules\awaymissions\mission_code\ruins\snowbiodome.dm"
#include "code\modules\awaymissions\mission_code\ruins\syndiecakesfactory.dm"
+#include "code\modules\awaymissions\mission_code\ruins\telecomns.dm"
#include "code\modules\awaymissions\mission_code\ruins\watcher_grave.dm"
#include "code\modules\awaymissions\mission_code\ruins\wizardcrash.dm"
#include "code\modules\buildmode\bm_mode.dm"
diff --git a/sound/voice/dvorak/cerebron1.ogg b/sound/voice/dvorak/cerebron1.ogg
new file mode 100644
index 00000000000..06552b91c11
Binary files /dev/null and b/sound/voice/dvorak/cerebron1.ogg differ
diff --git a/sound/voice/dvorak/cerebron2.ogg b/sound/voice/dvorak/cerebron2.ogg
new file mode 100644
index 00000000000..2e58b620fe6
Binary files /dev/null and b/sound/voice/dvorak/cerebron2.ogg differ
diff --git a/sound/voice/dvorak/cerebron3.ogg b/sound/voice/dvorak/cerebron3.ogg
new file mode 100644
index 00000000000..24cb53df0ec
Binary files /dev/null and b/sound/voice/dvorak/cerebron3.ogg differ
diff --git a/sound/voice/dvorak/core1.ogg b/sound/voice/dvorak/core1.ogg
new file mode 100644
index 00000000000..59c6bb9c828
Binary files /dev/null and b/sound/voice/dvorak/core1.ogg differ
diff --git a/sound/voice/dvorak/core2.ogg b/sound/voice/dvorak/core2.ogg
new file mode 100644
index 00000000000..d39ff922e85
Binary files /dev/null and b/sound/voice/dvorak/core2.ogg differ
diff --git a/sound/voice/dvorak/core3.ogg b/sound/voice/dvorak/core3.ogg
new file mode 100644
index 00000000000..26ec1969f7a
Binary files /dev/null and b/sound/voice/dvorak/core3.ogg differ
diff --git a/sound/voice/dvorak/cyberiad1.ogg b/sound/voice/dvorak/cyberiad1.ogg
new file mode 100644
index 00000000000..0023d759fc6
Binary files /dev/null and b/sound/voice/dvorak/cyberiad1.ogg differ
diff --git a/sound/voice/dvorak/cyberiad2.ogg b/sound/voice/dvorak/cyberiad2.ogg
new file mode 100644
index 00000000000..2e58b620fe6
Binary files /dev/null and b/sound/voice/dvorak/cyberiad2.ogg differ
diff --git a/sound/voice/dvorak/cyberiad3.ogg b/sound/voice/dvorak/cyberiad3.ogg
new file mode 100644
index 00000000000..24cb53df0ec
Binary files /dev/null and b/sound/voice/dvorak/cyberiad3.ogg differ
diff --git a/sound/voice/dvorak/farragus1.ogg b/sound/voice/dvorak/farragus1.ogg
new file mode 100644
index 00000000000..af38b490bd2
Binary files /dev/null and b/sound/voice/dvorak/farragus1.ogg differ
diff --git a/sound/voice/dvorak/farragus2.ogg b/sound/voice/dvorak/farragus2.ogg
new file mode 100644
index 00000000000..2e58b620fe6
Binary files /dev/null and b/sound/voice/dvorak/farragus2.ogg differ
diff --git a/sound/voice/dvorak/farragus3.ogg b/sound/voice/dvorak/farragus3.ogg
new file mode 100644
index 00000000000..24cb53df0ec
Binary files /dev/null and b/sound/voice/dvorak/farragus3.ogg differ
diff --git a/sound/voice/dvorak/junk1.ogg b/sound/voice/dvorak/junk1.ogg
new file mode 100644
index 00000000000..c9e65b31272
Binary files /dev/null and b/sound/voice/dvorak/junk1.ogg differ
diff --git a/sound/voice/dvorak/junk2.ogg b/sound/voice/dvorak/junk2.ogg
new file mode 100644
index 00000000000..92f8256e39f
Binary files /dev/null and b/sound/voice/dvorak/junk2.ogg differ
diff --git a/sound/voice/dvorak/junk3.ogg b/sound/voice/dvorak/junk3.ogg
new file mode 100644
index 00000000000..3666931bb80
Binary files /dev/null and b/sound/voice/dvorak/junk3.ogg differ
diff --git a/sound/voice/dvorak/kerberos1.ogg b/sound/voice/dvorak/kerberos1.ogg
new file mode 100644
index 00000000000..f8f8c56bb51
Binary files /dev/null and b/sound/voice/dvorak/kerberos1.ogg differ
diff --git a/sound/voice/dvorak/kerberos2.ogg b/sound/voice/dvorak/kerberos2.ogg
new file mode 100644
index 00000000000..2e58b620fe6
Binary files /dev/null and b/sound/voice/dvorak/kerberos2.ogg differ
diff --git a/sound/voice/dvorak/kerberos3.ogg b/sound/voice/dvorak/kerberos3.ogg
new file mode 100644
index 00000000000..24cb53df0ec
Binary files /dev/null and b/sound/voice/dvorak/kerberos3.ogg differ
diff --git a/sound/voice/dvorak/teleporter1.ogg b/sound/voice/dvorak/teleporter1.ogg
new file mode 100644
index 00000000000..af050b80f6f
Binary files /dev/null and b/sound/voice/dvorak/teleporter1.ogg differ
diff --git a/sound/voice/dvorak/teleporter2.ogg b/sound/voice/dvorak/teleporter2.ogg
new file mode 100644
index 00000000000..688a62456bd
Binary files /dev/null and b/sound/voice/dvorak/teleporter2.ogg differ
diff --git a/sound/voice/dvorak/teleporter3.ogg b/sound/voice/dvorak/teleporter3.ogg
new file mode 100644
index 00000000000..f3ba9f766d4
Binary files /dev/null and b/sound/voice/dvorak/teleporter3.ogg differ
diff --git a/sound/voice/dvorak/turret1.ogg b/sound/voice/dvorak/turret1.ogg
new file mode 100644
index 00000000000..22d2a204ee4
Binary files /dev/null and b/sound/voice/dvorak/turret1.ogg differ
diff --git a/sound/voice/dvorak/turret2.ogg b/sound/voice/dvorak/turret2.ogg
new file mode 100644
index 00000000000..92fb1c979f2
Binary files /dev/null and b/sound/voice/dvorak/turret2.ogg differ
diff --git a/sound/voice/dvorak/turret3.ogg b/sound/voice/dvorak/turret3.ogg
new file mode 100644
index 00000000000..5b549a9b4fa
Binary files /dev/null and b/sound/voice/dvorak/turret3.ogg differ
diff --git a/sound/voice/dvorak/vendor1.ogg b/sound/voice/dvorak/vendor1.ogg
new file mode 100644
index 00000000000..ba94e0a097d
Binary files /dev/null and b/sound/voice/dvorak/vendor1.ogg differ
diff --git a/sound/voice/dvorak/vendor2.ogg b/sound/voice/dvorak/vendor2.ogg
new file mode 100644
index 00000000000..c667f125a3a
Binary files /dev/null and b/sound/voice/dvorak/vendor2.ogg differ
diff --git a/sound/voice/dvorak/vendor3.ogg b/sound/voice/dvorak/vendor3.ogg
new file mode 100644
index 00000000000..b53c939796f
Binary files /dev/null and b/sound/voice/dvorak/vendor3.ogg differ